@@ -308,6 +308,24 @@ def get_default_kueue_name(namespace: str):
308
308
)
309
309
310
310
311
+ def local_queue_exists (namespace , local_queue_name : str ):
312
+ try :
313
+ config_check ()
314
+ api_instance = client .CustomObjectsApi (api_config_handler ())
315
+ local_queues = api_instance .list_namespaced_custom_object (
316
+ group = "kueue.x-k8s.io" ,
317
+ version = "v1beta1" ,
318
+ namespace = namespace ,
319
+ plural = "localqueues" ,
320
+ )
321
+ except Exception as e : # pragma: no cover
322
+ return _kube_api_error_handling (e )
323
+ for lq in local_queues ["items" ]:
324
+ if lq ["metadata" ]["name" ] == local_queue_name :
325
+ return True
326
+ return False
327
+
328
+
311
329
def write_components (
312
330
user_yaml : dict ,
313
331
output_file_name : str ,
@@ -324,24 +342,29 @@ def write_components(
324
342
open (output_file_name , "w" ).close ()
325
343
lq_name = local_queue or get_default_kueue_name (namespace )
326
344
cluster_labels = labels
327
- with open (output_file_name , "a" ) as outfile :
328
- for component in components :
329
- if "generictemplate" in component :
330
- if (
331
- "workload.codeflare.dev/appwrapper"
332
- in component ["generictemplate" ]["metadata" ]["labels" ]
333
- ):
334
- del component ["generictemplate" ]["metadata" ]["labels" ][
345
+ if local_queue_exists (namespace , lq_name ):
346
+ with open (output_file_name , "a" ) as outfile :
347
+ for component in components :
348
+ if "generictemplate" in component :
349
+ if (
335
350
"workload.codeflare.dev/appwrapper"
336
- ]
337
- labels = component ["generictemplate" ]["metadata" ]["labels" ]
338
- labels .update ({"kueue.x-k8s.io/queue-name" : lq_name })
339
- labels .update (cluster_labels )
340
- outfile .write ("---\n " )
341
- yaml .dump (
342
- component ["generictemplate" ], outfile , default_flow_style = False
343
- )
344
- print (f"Written to: { output_file_name } " )
351
+ in component ["generictemplate" ]["metadata" ]["labels" ]
352
+ ):
353
+ del component ["generictemplate" ]["metadata" ]["labels" ][
354
+ "workload.codeflare.dev/appwrapper"
355
+ ]
356
+ labels = component ["generictemplate" ]["metadata" ]["labels" ]
357
+ labels .update ({"kueue.x-k8s.io/queue-name" : lq_name })
358
+ labels .update (cluster_labels )
359
+ outfile .write ("---\n " )
360
+ yaml .dump (
361
+ component ["generictemplate" ], outfile , default_flow_style = False
362
+ )
363
+ print (f"Written to: { output_file_name } " )
364
+ else :
365
+ raise ValueError (
366
+ "local_queue provided does not exist. Please provide the correct local_queue name in Cluster Configuration"
367
+ )
345
368
346
369
347
370
def load_components (
@@ -355,26 +378,31 @@ def load_components(
355
378
components = user_yaml .get ("spec" , "resources" )["resources" ].get ("GenericItems" )
356
379
lq_name = local_queue or get_default_kueue_name (namespace )
357
380
cluster_labels = labels
358
- for component in components :
359
- if "generictemplate" in component :
360
- if (
361
- "workload.codeflare.dev/appwrapper"
362
- in component ["generictemplate" ]["metadata" ]["labels" ]
363
- ):
364
- del component ["generictemplate" ]["metadata" ]["labels" ][
381
+ if local_queue_exists (namespace , lq_name ):
382
+ for component in components :
383
+ if "generictemplate" in component :
384
+ if (
365
385
"workload.codeflare.dev/appwrapper"
366
- ]
367
- labels = component ["generictemplate" ]["metadata" ]["labels" ]
368
- labels .update ({"kueue.x-k8s.io/queue-name" : lq_name })
369
- labels .update (cluster_labels )
370
- component_list .append (component ["generictemplate" ])
371
-
372
- resources = "---\n " + "---\n " .join (
373
- [yaml .dump (component ) for component in component_list ]
374
- )
375
- user_yaml = resources
376
- print (f"Yaml resources loaded for { name } " )
377
- return user_yaml
386
+ in component ["generictemplate" ]["metadata" ]["labels" ]
387
+ ):
388
+ del component ["generictemplate" ]["metadata" ]["labels" ][
389
+ "workload.codeflare.dev/appwrapper"
390
+ ]
391
+ labels = component ["generictemplate" ]["metadata" ]["labels" ]
392
+ labels .update ({"kueue.x-k8s.io/queue-name" : lq_name })
393
+ labels .update (cluster_labels )
394
+ component_list .append (component ["generictemplate" ])
395
+
396
+ resources = "---\n " + "---\n " .join (
397
+ [yaml .dump (component ) for component in component_list ]
398
+ )
399
+ user_yaml = resources
400
+ print (f"Yaml resources loaded for { name } " )
401
+ return user_yaml
402
+ else :
403
+ raise ValueError (
404
+ "local_queue provided does not exist. Please provide the correct local_queue name in Cluster Configuration"
405
+ )
378
406
379
407
380
408
def load_appwrapper (user_yaml : dict , name : str ):
0 commit comments