diff options
author | Mike Crute <mike@crute.us> | 2020-05-28 12:48:59 -0700 |
---|---|---|
committer | Mike Crute <mike@crute.us> | 2020-05-28 17:57:13 -0700 |
commit | 41f127d77b8d386244bf5f617711ed884df5df4f (patch) | |
tree | b5cbf932f73e8e0e91014baeb764866651efcb87 | |
parent | bfc4bf99bf9b508bff7da385577460fc370fdc3c (diff) | |
download | alpine-ec2-ami-41f127d77b8d386244bf5f617711ed884df5df4f.tar.bz2 alpine-ec2-ami-41f127d77b8d386244bf5f617711ed884df5df4f.tar.xz alpine-ec2-ami-41f127d77b8d386244bf5f617711ed884df5df4f.zip |
Authenticate per-region for make-amis
-rw-r--r-- | scripts/builder.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/scripts/builder.py b/scripts/builder.py index 0263308..de95bdb 100644 --- a/scripts/builder.py +++ b/scripts/builder.py | |||
@@ -214,6 +214,8 @@ class MakeAMIs: | |||
214 | 214 | ||
215 | @staticmethod | 215 | @staticmethod |
216 | def add_args(parser): | 216 | def add_args(parser): |
217 | parser.add_argument("--region", "-r", default="us-west-2", | ||
218 | help="region to use for build") | ||
217 | parser.add_argument("profile", help="name of profile to build") | 219 | parser.add_argument("profile", help="name of profile to build") |
218 | parser.add_argument("builds", nargs="*", | 220 | parser.add_argument("builds", nargs="*", |
219 | help="name of builds within a profile to build") | 221 | help="name of builds within a profile to build") |
@@ -232,6 +234,7 @@ class MakeAMIs: | |||
232 | print(f"Build dir '{build_dir}' does not exist") | 234 | print(f"Build dir '{build_dir}' does not exist") |
233 | break | 235 | break |
234 | 236 | ||
237 | creds = IdentityBrokerClient().get_credentials(args.region) | ||
235 | out = io.StringIO() | 238 | out = io.StringIO() |
236 | 239 | ||
237 | res = subprocess.Popen([ | 240 | res = subprocess.Popen([ |
@@ -239,7 +242,13 @@ class MakeAMIs: | |||
239 | "build", | 242 | "build", |
240 | f"-var-file={build_dir}/vars.json", | 243 | f"-var-file={build_dir}/vars.json", |
241 | "packer.json" | 244 | "packer.json" |
242 | ], stdout=subprocess.PIPE, encoding="utf-8") | 245 | ], stdout=subprocess.PIPE, encoding="utf-8", env={ |
246 | "PATH": os.environ.get("PATH"), | ||
247 | "AWS_ACCESS_KEY_ID": creds["access_key"], | ||
248 | "AWS_SECRET_ACCESS_KEY": creds["secret_key"], | ||
249 | "AWS_SESSION_TOKEN": creds["session_token"], | ||
250 | "AWS_DEFAULT_REGION": args.region, | ||
251 | }) | ||
243 | 252 | ||
244 | while res.poll() is None: | 253 | while res.poll() is None: |
245 | text = res.stdout.readline() | 254 | text = res.stdout.readline() |