diff options
Diffstat (limited to 'scripts/builder.py')
-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") |