@@ -161,6 +161,14 @@ <h1 class="title">Module <code>codeflare_sdk.utils.generate_yaml</code></h1>
161
161
container["image"] = image
162
162
163
163
164
+ def update_image_pull_secrets(spec, image_pull_secrets):
165
+ if image_pull_secrets:
166
+ if "imagePullSecrets" not in spec:
167
+ spec["imagePullSecrets"] = []
168
+ for image_pull_secret in image_pull_secrets:
169
+ spec["imagePullSecrets"].append({"name": image_pull_secret})
170
+
171
+
164
172
def update_env(spec, env):
165
173
containers = spec.get("containers")
166
174
for container in containers:
@@ -198,6 +206,7 @@ <h1 class="title">Module <code>codeflare_sdk.utils.generate_yaml</code></h1>
198
206
image,
199
207
instascale,
200
208
env,
209
+ image_pull_secrets,
201
210
):
202
211
if "generictemplate" in item.keys():
203
212
head = item.get("generictemplate").get("spec").get("headGroupSpec")
@@ -213,6 +222,7 @@ <h1 class="title">Module <code>codeflare_sdk.utils.generate_yaml</code></h1>
213
222
for comp in [head, worker]:
214
223
spec = comp.get("template").get("spec")
215
224
update_affinity(spec, appwrapper_name, instascale)
225
+ update_image_pull_secrets(spec, image_pull_secrets)
216
226
update_image(spec, image)
217
227
update_env(spec, env)
218
228
if comp == head:
@@ -242,6 +252,7 @@ <h1 class="title">Module <code>codeflare_sdk.utils.generate_yaml</code></h1>
242
252
instascale: bool,
243
253
instance_types: list,
244
254
env,
255
+ image_pull_secrets: list,
245
256
):
246
257
user_yaml = read_template(template)
247
258
appwrapper_name, cluster_name = gen_names(name)
@@ -265,6 +276,7 @@ <h1 class="title">Module <code>codeflare_sdk.utils.generate_yaml</code></h1>
265
276
image,
266
277
instascale,
267
278
env,
279
+ image_pull_secrets,
268
280
)
269
281
update_dashboard_route(route_item, cluster_name, namespace)
270
282
outfile = appwrapper_name + ".yaml"
@@ -346,6 +358,12 @@ <h1 class="title">Module <code>codeflare_sdk.utils.generate_yaml</code></h1>
346
358
default="default",
347
359
help="Set the kubernetes namespace you want to deploy your cluster to. Default. If left blank, uses the 'default' namespace",
348
360
)
361
+ parser.add_argument(
362
+ "--image-pull-secrets",
363
+ required=False,
364
+ default=[],
365
+ help="Set image pull secrets for private registries",
366
+ )
349
367
350
368
args = parser.parse_args()
351
369
name = args.name
@@ -361,6 +379,7 @@ <h1 class="title">Module <code>codeflare_sdk.utils.generate_yaml</code></h1>
361
379
instance_types = args.instance_types
362
380
namespace = args.namespace
363
381
env = {}
382
+ image_pull_secrets = args.image_pull_secrets
364
383
365
384
outfile = generate_appwrapper(
366
385
name,
@@ -376,6 +395,7 @@ <h1 class="title">Module <code>codeflare_sdk.utils.generate_yaml</code></h1>
376
395
instascale,
377
396
instance_types,
378
397
env,
398
+ image_pull_secrets,
379
399
)
380
400
return outfile
381
401
@@ -411,7 +431,7 @@ <h2 class="section-title" id="header-functions">Functions</h2>
411
431
</ details >
412
432
</ dd >
413
433
< dt id ="codeflare_sdk.utils.generate_yaml.generate_appwrapper "> < code class ="name flex ">
414
- < span > def < span class ="ident "> generate_appwrapper</ span > </ span > (< span > name: str, namespace: str, min_cpu: int, max_cpu: int, min_memory: int, max_memory: int, gpu: int, workers: int, template: str, image: str, instascale: bool, instance_types: list, env)</ span >
434
+ < span > def < span class ="ident "> generate_appwrapper</ span > </ span > (< span > name: str, namespace: str, min_cpu: int, max_cpu: int, min_memory: int, max_memory: int, gpu: int, workers: int, template: str, image: str, instascale: bool, instance_types: list, env, image_pull_secrets: list )</ span >
415
435
</ code > </ dt >
416
436
< dd >
417
437
< div class ="desc "> </ div >
@@ -433,6 +453,7 @@ <h2 class="section-title" id="header-functions">Functions</h2>
433
453
instascale: bool,
434
454
instance_types: list,
435
455
env,
456
+ image_pull_secrets: list,
436
457
):
437
458
user_yaml = read_template(template)
438
459
appwrapper_name, cluster_name = gen_names(name)
@@ -456,6 +477,7 @@ <h2 class="section-title" id="header-functions">Functions</h2>
456
477
image,
457
478
instascale,
458
479
env,
480
+ image_pull_secrets,
459
481
)
460
482
update_dashboard_route(route_item, cluster_name, namespace)
461
483
outfile = appwrapper_name + ".yaml"
@@ -546,6 +568,12 @@ <h2 class="section-title" id="header-functions">Functions</h2>
546
568
default="default",
547
569
help="Set the kubernetes namespace you want to deploy your cluster to. Default. If left blank, uses the 'default' namespace",
548
570
)
571
+ parser.add_argument(
572
+ "--image-pull-secrets",
573
+ required=False,
574
+ default=[],
575
+ help="Set image pull secrets for private registries",
576
+ )
549
577
550
578
args = parser.parse_args()
551
579
name = args.name
@@ -561,6 +589,7 @@ <h2 class="section-title" id="header-functions">Functions</h2>
561
589
instance_types = args.instance_types
562
590
namespace = args.namespace
563
591
env = {}
592
+ image_pull_secrets = args.image_pull_secrets
564
593
565
594
outfile = generate_appwrapper(
566
595
name,
@@ -576,6 +605,7 @@ <h2 class="section-title" id="header-functions">Functions</h2>
576
605
instascale,
577
606
instance_types,
578
607
env,
608
+ image_pull_secrets,
579
609
)
580
610
return outfile</ code > </ pre >
581
611
</ details >
@@ -715,6 +745,23 @@ <h2 class="section-title" id="header-functions">Functions</h2>
715
745
container["image"] = image</ code > </ pre >
716
746
</ details >
717
747
</ dd >
748
+ < dt id ="codeflare_sdk.utils.generate_yaml.update_image_pull_secrets "> < code class ="name flex ">
749
+ < span > def < span class ="ident "> update_image_pull_secrets</ span > </ span > (< span > spec, image_pull_secrets)</ span >
750
+ </ code > </ dt >
751
+ < dd >
752
+ < div class ="desc "> </ div >
753
+ < details class ="source ">
754
+ < summary >
755
+ < span > Expand source code</ span >
756
+ </ summary >
757
+ < pre > < code class ="python "> def update_image_pull_secrets(spec, image_pull_secrets):
758
+ if image_pull_secrets:
759
+ if "imagePullSecrets" not in spec:
760
+ spec["imagePullSecrets"] = []
761
+ for image_pull_secret in image_pull_secrets:
762
+ spec["imagePullSecrets"].append({"name": image_pull_secret})</ code > </ pre >
763
+ </ details >
764
+ </ dd >
718
765
< dt id ="codeflare_sdk.utils.generate_yaml.update_labels "> < code class ="name flex ">
719
766
< span > def < span class ="ident "> update_labels</ span > </ span > (< span > yaml, instascale, instance_types)</ span >
720
767
</ code > </ dt >
@@ -760,7 +807,7 @@ <h2 class="section-title" id="header-functions">Functions</h2>
760
807
</ details >
761
808
</ dd >
762
809
< dt id ="codeflare_sdk.utils.generate_yaml.update_nodes "> < code class ="name flex ">
763
- < span > def < span class ="ident "> update_nodes</ span > </ span > (< span > item, appwrapper_name, min_cpu, max_cpu, min_memory, max_memory, gpu, workers, image, instascale, env)</ span >
810
+ < span > def < span class ="ident "> update_nodes</ span > </ span > (< span > item, appwrapper_name, min_cpu, max_cpu, min_memory, max_memory, gpu, workers, image, instascale, env, image_pull_secrets )</ span >
764
811
</ code > </ dt >
765
812
< dd >
766
813
< div class ="desc "> </ div >
@@ -780,6 +827,7 @@ <h2 class="section-title" id="header-functions">Functions</h2>
780
827
image,
781
828
instascale,
782
829
env,
830
+ image_pull_secrets,
783
831
):
784
832
if "generictemplate" in item.keys():
785
833
head = item.get("generictemplate").get("spec").get("headGroupSpec")
@@ -795,6 +843,7 @@ <h2 class="section-title" id="header-functions">Functions</h2>
795
843
for comp in [head, worker]:
796
844
spec = comp.get("template").get("spec")
797
845
update_affinity(spec, appwrapper_name, instascale)
846
+ update_image_pull_secrets(spec, image_pull_secrets)
798
847
update_image(spec, image)
799
848
update_env(spec, env)
800
849
if comp == head:
@@ -870,6 +919,7 @@ <h1>Index</h1>
870
919
< li > < code > < a title ="codeflare_sdk.utils.generate_yaml.update_dashboard_route " href ="#codeflare_sdk.utils.generate_yaml.update_dashboard_route "> update_dashboard_route</ a > </ code > </ li >
871
920
< li > < code > < a title ="codeflare_sdk.utils.generate_yaml.update_env " href ="#codeflare_sdk.utils.generate_yaml.update_env "> update_env</ a > </ code > </ li >
872
921
< li > < code > < a title ="codeflare_sdk.utils.generate_yaml.update_image " href ="#codeflare_sdk.utils.generate_yaml.update_image "> update_image</ a > </ code > </ li >
922
+ < li > < code > < a title ="codeflare_sdk.utils.generate_yaml.update_image_pull_secrets " href ="#codeflare_sdk.utils.generate_yaml.update_image_pull_secrets "> update_image_pull_secrets</ a > </ code > </ li >
873
923
< li > < code > < a title ="codeflare_sdk.utils.generate_yaml.update_labels " href ="#codeflare_sdk.utils.generate_yaml.update_labels "> update_labels</ a > </ code > </ li >
874
924
< li > < code > < a title ="codeflare_sdk.utils.generate_yaml.update_names " href ="#codeflare_sdk.utils.generate_yaml.update_names "> update_names</ a > </ code > </ li >
875
925
< li > < code > < a title ="codeflare_sdk.utils.generate_yaml.update_nodes " href ="#codeflare_sdk.utils.generate_yaml.update_nodes "> update_nodes</ a > </ code > </ li >
0 commit comments