aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Crute <mike@crute.us>2020-05-30 12:14:48 -0700
committerMike Crute <mike@crute.us>2020-05-30 12:14:48 -0700
commitb804d174b36603d5d74ddea4d95917e7f911eb94 (patch)
treeae0d4f14c3c40573e5c1a8d18bb2392033f7c9f1
parentdf53323de95796a71ff23a323dfb34dd7214272e (diff)
downloadalpine-ec2-ami-b804d174b36603d5d74ddea4d95917e7f911eb94.tar.bz2
alpine-ec2-ami-b804d174b36603d5d74ddea4d95917e7f911eb94.tar.xz
alpine-ec2-ami-b804d174b36603d5d74ddea4d95917e7f911eb94.zip
Allow building without broker
-rwxr-xr-xscripts/builder.py24
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")