diff options
author | Mike Crute <mike@crute.us> | 2020-05-30 12:14:48 -0700 |
---|---|---|
committer | Mike Crute <mike@crute.us> | 2020-05-30 12:14:48 -0700 |
commit | b804d174b36603d5d74ddea4d95917e7f911eb94 (patch) | |
tree | ae0d4f14c3c40573e5c1a8d18bb2392033f7c9f1 | |
parent | df53323de95796a71ff23a323dfb34dd7214272e (diff) | |
download | alpine-ec2-ami-b804d174b36603d5d74ddea4d95917e7f911eb94.tar.bz2 alpine-ec2-ami-b804d174b36603d5d74ddea4d95917e7f911eb94.tar.xz alpine-ec2-ami-b804d174b36603d5d74ddea4d95917e7f911eb94.zip |
Allow building without broker
-rwxr-xr-x | scripts/builder.py | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/scripts/builder.py b/scripts/builder.py index ace706d..c5f33be 100755 --- a/scripts/builder.py +++ b/scripts/builder.py | |||
@@ -247,6 +247,8 @@ class MakeAMIs: | |||
247 | def add_args(parser): | 247 | def add_args(parser): |
248 | parser.add_argument("--region", "-r", default="us-west-2", | 248 | parser.add_argument("--region", "-r", default="us-west-2", |
249 | help="region to use for build") | 249 | help="region to use for build") |
250 | parser.add_argument("--no-broker", action="store_true", | ||
251 | help="disable use of identity broker") | ||
250 | parser.add_argument("profile", help="name of profile to build") | 252 | parser.add_argument("profile", help="name of profile to build") |
251 | parser.add_argument("builds", nargs="*", | 253 | parser.add_argument("builds", nargs="*", |
252 | help="name of builds within a profile to build") | 254 | help="name of builds within a profile to build") |
@@ -265,7 +267,17 @@ class MakeAMIs: | |||
265 | print(f"Build dir '{build_dir}' does not exist") | 267 | print(f"Build dir '{build_dir}' does not exist") |
266 | break | 268 | break |
267 | 269 | ||
268 | creds = IdentityBrokerClient().get_credentials(args.region) | 270 | env = None |
271 | if not args.no_broker: | ||
272 | creds = IdentityBrokerClient().get_credentials(args.region) | ||
273 | env = { | ||
274 | "PATH": os.environ.get("PATH"), | ||
275 | "AWS_ACCESS_KEY_ID": creds["access_key"], | ||
276 | "AWS_SECRET_ACCESS_KEY": creds["secret_key"], | ||
277 | "AWS_SESSION_TOKEN": creds["session_token"], | ||
278 | "AWS_DEFAULT_REGION": args.region, | ||
279 | } | ||
280 | |||
269 | out = io.StringIO() | 281 | out = io.StringIO() |
270 | 282 | ||
271 | res = subprocess.Popen([ | 283 | res = subprocess.Popen([ |
@@ -273,13 +285,7 @@ class MakeAMIs: | |||
273 | "build", | 285 | "build", |
274 | f"-var-file={build_dir}/vars.json", | 286 | f"-var-file={build_dir}/vars.json", |
275 | "packer.json" | 287 | "packer.json" |
276 | ], stdout=subprocess.PIPE, encoding="utf-8", env={ | 288 | ], stdout=subprocess.PIPE, encoding="utf-8", env=env) |
277 | "PATH": os.environ.get("PATH"), | ||
278 | "AWS_ACCESS_KEY_ID": creds["access_key"], | ||
279 | "AWS_SECRET_ACCESS_KEY": creds["secret_key"], | ||
280 | "AWS_SESSION_TOKEN": creds["session_token"], | ||
281 | "AWS_DEFAULT_REGION": args.region, | ||
282 | }) | ||
283 | 289 | ||
284 | while res.poll() is None: | 290 | while res.poll() is None: |
285 | text = res.stdout.readline() | 291 | text = res.stdout.readline() |
@@ -643,6 +649,8 @@ class FullBuild: | |||
643 | def add_args(parser): | 649 | def add_args(parser): |
644 | parser.add_argument("--region", "-r", default="us-west-2", | 650 | parser.add_argument("--region", "-r", default="us-west-2", |
645 | help="region to use for build") | 651 | help="region to use for build") |
652 | parser.add_argument("--no-broker", action="store_true", | ||
653 | help="disable use of identity broker") | ||
646 | parser.add_argument("profile", help="name of profile to build") | 654 | parser.add_argument("profile", help="name of profile to build") |
647 | parser.add_argument("builds", nargs="*", | 655 | parser.add_argument("builds", nargs="*", |
648 | help="name of builds within a profile to build") | 656 | help="name of builds within a profile to build") |