@@ -85,20 +85,6 @@ def update_names(yaml, item, appwrapper_name, cluster_name, namespace):
8585 lower_meta ["labels" ]["workload.codeflare.dev/appwrapper" ] = appwrapper_name
8686 lower_meta ["name" ] = cluster_name
8787 lower_meta ["namespace" ] = namespace
88- lower_spec = item .get ("generictemplate" , {}).get ("spec" )
89- if is_openshift_cluster ():
90- cookie_secret_env_var = {
91- "name" : "COOKIE_SECRET" ,
92- "valueFrom" : {
93- "secretKeyRef" : {
94- "key" : "cookie_secret" ,
95- "name" : f"{ cluster_name } -oauth-config" ,
96- }
97- },
98- }
99- lower_spec ["headGroupSpec" ]["template" ]["spec" ]["containers" ][0 ]["env" ].append (
100- cookie_secret_env_var
101- )
10288
10389
10490def update_labels (yaml , instascale , instance_types ):
@@ -291,44 +277,13 @@ def update_ca_secret(ca_secret_item, cluster_name, namespace):
291277 data ["ca.key" ], data ["ca.crt" ] = generate_cert .generate_ca_cert (365 )
292278
293279
294- def enable_local_interactive (resources , cluster_name , namespace ): # pragma: no cover
295- from ..cluster .cluster import _get_ingress_domain
296-
297- ca_secret_item = resources ["resources" ].get ("GenericItems" )[1 ]
280+ def enable_local_interactive (resources ): # pragma: no cover
298281 item = resources ["resources" ].get ("GenericItems" )[0 ]
299- update_ca_secret (ca_secret_item , cluster_name , namespace )
300- # update_ca_secret_volumes
301- item ["generictemplate" ]["spec" ]["headGroupSpec" ]["template" ]["spec" ]["volumes" ][0 ][
302- "secret"
303- ]["secretName" ] = f"ca-secret-{ cluster_name } "
304- item ["generictemplate" ]["spec" ]["workerGroupSpecs" ][0 ]["template" ]["spec" ][
305- "volumes"
306- ][0 ]["secret" ]["secretName" ] = f"ca-secret-{ cluster_name } "
307- # update_tls_env
308- item ["generictemplate" ]["spec" ]["headGroupSpec" ]["template" ]["spec" ]["containers" ][
309- 0
310- ]["env" ][1 ]["value" ] = "1"
311- item ["generictemplate" ]["spec" ]["workerGroupSpecs" ][0 ]["template" ]["spec" ][
312- "containers"
313- ][0 ]["env" ][1 ]["value" ] = "1"
314- # update_init_container
315- command = item ["generictemplate" ]["spec" ]["headGroupSpec" ]["template" ]["spec" ][
316- "initContainers"
317- ][0 ].get ("command" )[2 ]
318-
319- command = command .replace ("deployment-name" , cluster_name )
320-
321- domain = "" ## FIX - We can't retrieve ingress domain - move init container to CFO
322282
323- command = command .replace ("server-name" , domain )
324283 item ["generictemplate" ]["metadata" ]["annotations" ][
325284 "sdk.codeflare.dev/local_interactive"
326285 ] = "True"
327286
328- item ["generictemplate" ]["spec" ]["headGroupSpec" ]["template" ]["spec" ][
329- "initContainers"
330- ][0 ].get ("command" )[2 ] = command
331-
332287
333288def del_from_list_by_name (l : list , target : typing .List [str ]) -> list :
334289 return [x for x in l if x ["name" ] not in target ]
@@ -392,75 +347,6 @@ def write_user_appwrapper(user_yaml, output_file_name):
392347 print (f"Written to: { output_file_name } " )
393348
394349
395- def enable_openshift_oauth (user_yaml , cluster_name , namespace ):
396- config_check ()
397- k8_client = api_config_handler () or client .ApiClient ()
398- tls_mount_location = "/etc/tls/private"
399- oauth_port = 8443
400- oauth_sa_name = f"{ cluster_name } -oauth-proxy"
401- tls_secret_name = f"{ cluster_name } -proxy-tls-secret"
402- tls_volume_name = "proxy-tls-secret"
403- port_name = "oauth-proxy"
404- oauth_sidecar = _create_oauth_sidecar_object (
405- namespace ,
406- tls_mount_location ,
407- oauth_port ,
408- oauth_sa_name ,
409- tls_volume_name ,
410- port_name ,
411- )
412- tls_secret_volume = client .V1Volume (
413- name = tls_volume_name ,
414- secret = client .V1SecretVolumeSource (secret_name = tls_secret_name ),
415- )
416- # allows for setting value of Cluster object when initializing object from an existing AppWrapper on cluster
417- user_yaml ["metadata" ]["annotations" ] = user_yaml ["metadata" ].get ("annotations" , {})
418- ray_headgroup_pod = user_yaml ["spec" ]["resources" ]["GenericItems" ][0 ][
419- "generictemplate"
420- ]["spec" ]["headGroupSpec" ]["template" ]["spec" ]
421- ray_headgroup_pod ["serviceAccount" ] = oauth_sa_name
422- ray_headgroup_pod ["volumes" ] = ray_headgroup_pod .get ("volumes" , [])
423-
424- # we use a generic api client here so that the serialization function doesn't need to be mocked for unit tests
425- ray_headgroup_pod ["volumes" ].append (
426- client .ApiClient ().sanitize_for_serialization (tls_secret_volume )
427- )
428- ray_headgroup_pod ["containers" ].append (
429- client .ApiClient ().sanitize_for_serialization (oauth_sidecar )
430- )
431-
432-
433- def _create_oauth_sidecar_object (
434- namespace : str ,
435- tls_mount_location : str ,
436- oauth_port : int ,
437- oauth_sa_name : str ,
438- tls_volume_name : str ,
439- port_name : str ,
440- ) -> client .V1Container :
441- return client .V1Container (
442- args = [
443- f"--https-address=:{ oauth_port } " ,
444- "--provider=openshift" ,
445- f"--openshift-service-account={ oauth_sa_name } " ,
446- "--upstream=http://localhost:8265" ,
447- f"--tls-cert={ tls_mount_location } /tls.crt" ,
448- f"--tls-key={ tls_mount_location } /tls.key" ,
449- "--cookie-secret=$(COOKIE_SECRET)" ,
450- f'--openshift-delegate-urls={{"/":{{"resource":"pods","namespace":"{ namespace } ","verb":"get"}}}}' ,
451- ],
452- image = "registry.redhat.io/openshift4/ose-oauth-proxy@sha256:1ea6a01bf3e63cdcf125c6064cbd4a4a270deaf0f157b3eabb78f60556840366" ,
453- name = "oauth-proxy" ,
454- ports = [client .V1ContainerPort (container_port = oauth_port , name = port_name )],
455- resources = client .V1ResourceRequirements (limits = None , requests = None ),
456- volume_mounts = [
457- client .V1VolumeMount (
458- mount_path = tls_mount_location , name = tls_volume_name , read_only = True
459- )
460- ],
461- )
462-
463-
464350def get_default_kueue_name (namespace : str ):
465351 # If the local queue is set, use it. Otherwise, try to use the default queue.
466352 try :
@@ -620,12 +506,13 @@ def generate_appwrapper(
620506 )
621507
622508 if local_interactive :
623- enable_local_interactive (resources , cluster_name , namespace )
624- else :
625- disable_raycluster_tls (resources ["resources" ])
509+ enable_local_interactive (resources )
626510
627- if is_openshift_cluster ():
628- enable_openshift_oauth (user_yaml , cluster_name , namespace )
511+ # else:
512+ # disable_raycluster_tls(resources["resources"])
513+
514+ ca_secret_item = resources ["resources" ].get ("GenericItems" )[1 ]
515+ update_ca_secret (ca_secret_item , cluster_name , namespace )
629516
630517 directory_path = os .path .expanduser ("~/.codeflare/resources/" )
631518 outfile = os .path .join (directory_path , appwrapper_name + ".yaml" )
0 commit comments