pass the AWS credentials through the Concourse source data
Concourse pipelines dont have a way of setting environment variables, and this is consistent with how https://github.com/concourse/s3-resource works.
This commit is contained in:
parent
5dcef5d5f1
commit
f1a98f3e9a
6 changed files with 24 additions and 19 deletions
|
@ -1,3 +0,0 @@
|
|||
# http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html#cli-signup
|
||||
AWS_ACCESS_KEY_ID=<key>
|
||||
AWS_SECRET_ACCESS_KEY=<secret>
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1 +1 @@
|
|||
.env
|
||||
config.json
|
||||
|
|
13
README.md
13
README.md
|
@ -10,11 +10,8 @@ TODO
|
|||
|
||||
Requires Docker.
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
|
||||
# modify .env
|
||||
|
||||
# exclude the `s3://` prefix/protocol for the `bucket`
|
||||
./script/run </full/path/to/dir/or/file> <bucket>
|
||||
```
|
||||
1. Run `cp config.example.json config.json`.
|
||||
1. Modify `config.json`.
|
||||
* See [the instructions for getting your AWS credentials](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html#cli-signup).
|
||||
* Exclude the `s3://` prefix/protocol for the `bucket`.
|
||||
1. Run `./script/run </full/path/to/dir/or/file>`.
|
||||
|
|
|
@ -20,12 +20,18 @@ fi
|
|||
payload=`cat`
|
||||
bucket=$(echo "$payload" | jq -r '.source.bucket')
|
||||
|
||||
|
||||
echo "Uploading to S3..."
|
||||
# credentials are provided via environment variables
|
||||
|
||||
# http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-environment
|
||||
export AWS_ACCESS_KEY_ID=$(echo "$payload" | jq -r '.source.access_key_id')
|
||||
export AWS_SECRET_ACCESS_KEY=$(echo "$payload" | jq -r '.source.secret_access_key')
|
||||
|
||||
aws s3 sync $source "s3://$bucket"
|
||||
|
||||
echo "...done."
|
||||
|
||||
|
||||
# use the current UNIX time as the version
|
||||
# https://github.com/concourse/git-resource/blob/6fcfbd4/assets/out#L133-L136
|
||||
jq -n "{
|
||||
|
|
7
config.example.json
Normal file
7
config.example.json
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"source": {
|
||||
"access_key_id": "",
|
||||
"secret_access_key": "",
|
||||
"bucket": ""
|
||||
}
|
||||
}
|
10
script/run
10
script/run
|
@ -3,19 +3,17 @@
|
|||
set -e
|
||||
|
||||
source=$1
|
||||
bucket=$2
|
||||
|
||||
if [ -z "$source" ] || [ -z "$bucket" ]; then
|
||||
echo "usage: $0 </full/path/to/dir/or/file> <bucket>"
|
||||
if [ -z "$source" ]; then
|
||||
echo "usage: $0 </full/path/to/dir/or/file>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
json=$(cat .env.json)
|
||||
|
||||
docker build -t 18fgsa/s3-resource-simple .
|
||||
|
||||
json="{\"source\": {\"bucket\": \"$bucket\"}}"
|
||||
|
||||
echo $json | docker run \
|
||||
--env-file .env \
|
||||
-i \
|
||||
--rm \
|
||||
-v $source:/tmp/input \
|
||||
|
|
Loading…
Reference in a new issue