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