@@ -141,6 +141,13 @@ def update_image(spec, image):
141
141
container ["image" ] = image
142
142
143
143
144
+ def update_image_pull_secrets (spec , image_pull_secrets ):
145
+ template_secrets = spec .get ("imagePullSecrets" , [])
146
+ spec ["imagePullSecrets" ] = template_secrets + [
147
+ {"name" : x } for x in image_pull_secrets
148
+ ]
149
+
150
+
144
151
def update_env (spec , env ):
145
152
containers = spec .get ("containers" )
146
153
for container in containers :
@@ -178,6 +185,7 @@ def update_nodes(
178
185
image ,
179
186
instascale ,
180
187
env ,
188
+ image_pull_secrets ,
181
189
):
182
190
if "generictemplate" in item .keys ():
183
191
head = item .get ("generictemplate" ).get ("spec" ).get ("headGroupSpec" )
@@ -193,6 +201,7 @@ def update_nodes(
193
201
for comp in [head , worker ]:
194
202
spec = comp .get ("template" ).get ("spec" )
195
203
update_affinity (spec , appwrapper_name , instascale )
204
+ update_image_pull_secrets (spec , image_pull_secrets )
196
205
update_image (spec , image )
197
206
update_env (spec , env )
198
207
if comp == head :
@@ -295,6 +304,7 @@ def generate_appwrapper(
295
304
instance_types : list ,
296
305
env ,
297
306
local_interactive : bool ,
307
+ image_pull_secrets : list ,
298
308
):
299
309
user_yaml = read_template (template )
300
310
appwrapper_name , cluster_name = gen_names (name )
@@ -318,6 +328,7 @@ def generate_appwrapper(
318
328
image ,
319
329
instascale ,
320
330
env ,
331
+ image_pull_secrets ,
321
332
)
322
333
update_dashboard_route (route_item , cluster_name , namespace )
323
334
if local_interactive :
@@ -409,6 +420,12 @@ def main(): # pragma: no cover
409
420
default = False ,
410
421
help = "Enable local interactive mode" ,
411
422
)
423
+ parser .add_argument (
424
+ "--image-pull-secrets" ,
425
+ required = False ,
426
+ default = [],
427
+ help = "Set image pull secrets for private registries" ,
428
+ )
412
429
413
430
args = parser .parse_args ()
414
431
name = args .name
@@ -425,6 +442,7 @@ def main(): # pragma: no cover
425
442
namespace = args .namespace
426
443
local_interactive = args .local_interactive
427
444
env = {}
445
+ image_pull_secrets = args .image_pull_secrets
428
446
429
447
outfile = generate_appwrapper (
430
448
name ,
@@ -441,6 +459,7 @@ def main(): # pragma: no cover
441
459
instance_types ,
442
460
local_interactive ,
443
461
env ,
462
+ image_pull_secrets ,
444
463
)
445
464
return outfile
446
465
0 commit comments