Skip to content

Commit d2693d1

Browse files
Bobbins228openshift-merge-bot[bot]
authored andcommittedApr 19, 2024
Removed ca generation from SDK
1 parent d994331 commit d2693d1

File tree

8 files changed

+8
-208
lines changed

8 files changed

+8
-208
lines changed
 

‎src/codeflare_sdk/cluster/cluster.py

-13
Original file line numberDiff line numberDiff line change
@@ -665,13 +665,6 @@ def _delete_resources(
665665
plural="rayclusters",
666666
name=name,
667667
)
668-
elif resource["kind"] == "Secret":
669-
name = resource["metadata"]["name"]
670-
secret_instance = client.CoreV1Api(api_config_handler())
671-
secret_instance.delete_namespaced_secret(
672-
namespace=namespace,
673-
name=name,
674-
)
675668

676669

677670
def _create_resources(yamls, namespace: str, api_instance: client.CustomObjectsApi):
@@ -684,12 +677,6 @@ def _create_resources(yamls, namespace: str, api_instance: client.CustomObjectsA
684677
plural="rayclusters",
685678
body=resource,
686679
)
687-
elif resource["kind"] == "Secret":
688-
secret_instance = client.CoreV1Api(api_config_handler())
689-
secret_instance.create_namespaced_secret(
690-
namespace=namespace,
691-
body=resource,
692-
)
693680

694681

695682
def _check_aw_exists(name: str, namespace: str) -> bool:

‎src/codeflare_sdk/templates/base-template.yaml

-12
Original file line numberDiff line numberDiff line change
@@ -264,15 +264,3 @@ spec:
264264
- key: odh-ca-bundle.crt
265265
path: odh-ca-bundle.crt
266266
optional: true
267-
- replicas: 1
268-
generictemplate:
269-
apiVersion: v1
270-
data:
271-
ca.crt: generated_crt
272-
ca.key: generated_key
273-
kind: Secret
274-
metadata:
275-
name: ca-secret-deployment-name
276-
labels:
277-
# allows me to return name of service that Ray operator creates
278-
odh-ray-cluster-service: deployment-name-head-svc

‎src/codeflare_sdk/utils/generate_yaml.py

-60
Original file line numberDiff line numberDiff line change
@@ -266,67 +266,10 @@ def update_nodes(
266266
update_resources(spec, min_cpu, max_cpu, min_memory, max_memory, gpu)
267267

268268

269-
def update_ca_secret(ca_secret_item, cluster_name, namespace):
270-
from . import generate_cert
271-
272-
metadata = ca_secret_item.get("generictemplate", {}).get("metadata")
273-
metadata["name"] = f"ca-secret-{cluster_name}"
274-
metadata["namespace"] = namespace
275-
metadata["labels"]["odh-ray-cluster-service"] = f"{cluster_name}-head-svc"
276-
data = ca_secret_item.get("generictemplate", {}).get("data")
277-
data["ca.key"], data["ca.crt"] = generate_cert.generate_ca_cert(365)
278-
279-
280269
def del_from_list_by_name(l: list, target: typing.List[str]) -> list:
281270
return [x for x in l if x["name"] not in target]
282271

283272

284-
def disable_raycluster_tls(resources):
285-
generic_template_spec = resources["GenericItems"][0]["generictemplate"]["spec"]
286-
287-
headGroupTemplateSpec = generic_template_spec["headGroupSpec"]["template"]["spec"]
288-
headGroupTemplateSpec["volumes"] = del_from_list_by_name(
289-
headGroupTemplateSpec.get("volumes", []),
290-
["ca-vol", "server-cert"],
291-
)
292-
293-
c: dict
294-
for c in generic_template_spec["headGroupSpec"]["template"]["spec"]["containers"]:
295-
c["volumeMounts"] = del_from_list_by_name(
296-
c.get("volumeMounts", []), ["ca-vol", "server-cert"]
297-
)
298-
299-
if "initContainers" in generic_template_spec["headGroupSpec"]["template"]["spec"]:
300-
del generic_template_spec["headGroupSpec"]["template"]["spec"]["initContainers"]
301-
302-
for workerGroup in generic_template_spec.get("workerGroupSpecs", []):
303-
workerGroupSpec = workerGroup["template"]["spec"]
304-
workerGroupSpec["volumes"] = del_from_list_by_name(
305-
workerGroupSpec.get("volumes", []),
306-
["ca-vol", "server-cert"],
307-
)
308-
for c in workerGroup["template"]["spec"].get("containers", []):
309-
c["volumeMounts"] = del_from_list_by_name(
310-
c.get("volumeMounts", []), ["ca-vol", "server-cert"]
311-
)
312-
313-
del generic_template_spec["workerGroupSpecs"][0]["template"]["spec"][
314-
"initContainers"
315-
]
316-
317-
updated_items = []
318-
for i in resources["GenericItems"][:]:
319-
if "rayclient-deployment-ingress" in i["generictemplate"]["metadata"]["name"]:
320-
continue
321-
if "rayclient-deployment-route" in i["generictemplate"]["metadata"]["name"]:
322-
continue
323-
if "ca-secret-deployment-name" in i["generictemplate"]["metadata"]["name"]:
324-
continue
325-
updated_items.append(i)
326-
327-
resources["GenericItems"] = updated_items
328-
329-
330273
def write_user_appwrapper(user_yaml, output_file_name):
331274
# Create the directory if it doesn't exist
332275
directory_path = os.path.dirname(output_file_name)
@@ -496,9 +439,6 @@ def generate_appwrapper(
496439
head_gpus,
497440
)
498441

499-
ca_secret_item = resources["resources"].get("GenericItems")[1]
500-
update_ca_secret(ca_secret_item, cluster_name, namespace)
501-
502442
directory_path = os.path.expanduser("~/.codeflare/resources/")
503443
outfile = os.path.join(directory_path, appwrapper_name + ".yaml")
504444

‎tests/test-case-no-mcad.yamls

-11
Original file line numberDiff line numberDiff line change
@@ -181,14 +181,3 @@ spec:
181181
name: odh-trusted-ca-bundle
182182
optional: true
183183
name: odh-ca-cert
184-
---
185-
apiVersion: v1
186-
data:
187-
ca.crt: ca-field
188-
ca.key: ca-field
189-
kind: Secret
190-
metadata:
191-
labels:
192-
odh-ray-cluster-service: unit-test-cluster-ray-head-svc
193-
name: ca-secret-unit-test-cluster-ray
194-
namespace: ns

‎tests/test-case-prio.yaml

-12
Original file line numberDiff line numberDiff line change
@@ -214,16 +214,4 @@ spec:
214214
optional: true
215215
name: odh-ca-cert
216216
replicas: 1
217-
- generictemplate:
218-
apiVersion: v1
219-
data:
220-
ca.crt: ca-field
221-
ca.key: ca-field
222-
kind: Secret
223-
metadata:
224-
labels:
225-
odh-ray-cluster-service: prio-test-cluster-head-svc
226-
name: ca-secret-prio-test-cluster
227-
namespace: ns
228-
replicas: 1
229217
Items: []

‎tests/test-case.yaml

-12
Original file line numberDiff line numberDiff line change
@@ -211,16 +211,4 @@ spec:
211211
optional: true
212212
name: odh-ca-cert
213213
replicas: 1
214-
- generictemplate:
215-
apiVersion: v1
216-
data:
217-
ca.crt: ca-field
218-
ca.key: ca-field
219-
kind: Secret
220-
metadata:
221-
labels:
222-
odh-ray-cluster-service: unit-test-cluster-head-svc
223-
name: ca-secret-unit-test-cluster
224-
namespace: ns
225-
replicas: 1
226214
Items: []

‎tests/test-default-appwrapper.yaml

-12
Original file line numberDiff line numberDiff line change
@@ -189,16 +189,4 @@ spec:
189189
optional: true
190190
name: odh-ca-cert
191191
replicas: 1
192-
- generictemplate:
193-
apiVersion: v1
194-
data:
195-
ca.crt: ca-field
196-
ca.key: ca-field
197-
kind: Secret
198-
metadata:
199-
labels:
200-
odh-ray-cluster-service: unit-test-default-cluster-head-svc
201-
name: ca-secret-unit-test-default-cluster
202-
namespace: opendatahub
203-
replicas: 1
204192
Items: []

‎tests/unit_test.py

+8-76
Original file line numberDiff line numberDiff line change
@@ -259,65 +259,9 @@ def test_config_creation():
259259
assert config.mcad == True
260260

261261

262-
def ca_secret_support(path, mcad: bool):
263-
# Given that the secret is always random we need to set it to a static value for the tests to pass
264-
if mcad:
265-
with open(path, "r") as file:
266-
try:
267-
yaml_file = yaml.safe_load(file)
268-
except yaml.YAMLError as exc:
269-
print(exc)
270-
resources = yaml_file.get("spec", "resources")
271-
ca_secret_item = resources["resources"].get("GenericItems")[1]
272-
data = ca_secret_item.get("generictemplate", {}).get("data")
273-
data["ca.key"] = "ca-field"
274-
data["ca.crt"] = "ca-field"
275-
with open(path, "w") as outfile:
276-
yaml.dump(yaml_file, outfile, default_flow_style=False)
277-
else:
278-
# Load the YAML file
279-
with open(path, "r") as f:
280-
data = list(yaml.safe_load_all(f))
281-
282-
# Find the Secret entry and update the fields
283-
for item in data:
284-
if item.get("kind") == "Secret":
285-
item["data"]["ca.crt"] = "ca-field"
286-
item["data"]["ca.key"] = "ca-field"
287-
break
288-
with open(path, "w") as f:
289-
for item in data:
290-
f.write("---\n")
291-
yaml.dump(item, f, default_flow_style=False)
292-
293-
294-
def ca_secret_support_no_write(yaml_file, mcad: bool):
295-
if mcad:
296-
file = yaml.safe_load(yaml_file)
297-
resources = file.get("spec", "resources")
298-
299-
ca_secret_item = resources["resources"].get("GenericItems")[1]
300-
data = ca_secret_item.get("generictemplate", {}).get("data")
301-
data["ca.key"] = "ca-field"
302-
data["ca.crt"] = "ca-field"
303-
return file
304-
305-
else:
306-
data = list(yaml.safe_load_all(yaml_file))
307-
for item in data:
308-
if item.get("kind") == "Secret":
309-
item["data"]["ca.crt"] = "ca-field"
310-
item["data"]["ca.key"] = "ca-field"
311-
break
312-
313-
resources = "---\n" + "---\n".join([yaml.dump(item) for item in data])
314-
return resources
315-
316-
317262
def test_cluster_creation(mocker):
318263
mocker.patch("kubernetes.client.ApisApi.get_api_versions")
319264
cluster = createClusterWithConfig(mocker)
320-
ca_secret_support(f"{aw_dir}unit-test-cluster.yaml", True)
321265
assert cluster.app_wrapper_yaml == f"{aw_dir}unit-test-cluster.yaml"
322266
assert cluster.app_wrapper_name == "unit-test-cluster"
323267
assert filecmp.cmp(
@@ -384,7 +328,6 @@ def test_cluster_creation_no_mcad(mocker):
384328

385329
assert cluster.app_wrapper_yaml == f"{aw_dir}unit-test-cluster-ray.yaml"
386330
assert cluster.app_wrapper_name == "unit-test-cluster-ray"
387-
ca_secret_support(cluster.app_wrapper_yaml, False)
388331
assert filecmp.cmp(
389332
f"{aw_dir}unit-test-cluster-ray.yaml",
390333
f"{parent}/tests/test-case-no-mcad.yamls",
@@ -406,7 +349,6 @@ def test_cluster_creation_no_mcad_local_queue(mocker):
406349
config.write_to_file = True
407350
config.local_queue = "local-queue-default"
408351
cluster = Cluster(config)
409-
ca_secret_support(cluster.app_wrapper_yaml, False)
410352
assert cluster.app_wrapper_yaml == f"{aw_dir}unit-test-cluster-ray.yaml"
411353
assert cluster.app_wrapper_name == "unit-test-cluster-ray"
412354
assert filecmp.cmp(
@@ -428,27 +370,18 @@ def test_cluster_creation_no_mcad_local_queue(mocker):
428370
machine_types=["cpu.small", "gpu.large"],
429371
image_pull_secrets=["unit-test-pull-secret"],
430372
image="quay.io/project-codeflare/ray:latest-py39-cu118",
431-
write_to_file=False,
373+
write_to_file=True,
432374
mcad=False,
433375
local_queue="local-queue-default",
434376
)
435377
cluster = Cluster(config)
436-
test_resources = []
437-
expected_resources = []
438-
439-
test_aw = yaml.load_all(
440-
ca_secret_support_no_write(cluster.app_wrapper_yaml, False),
441-
Loader=yaml.FullLoader,
442-
)
443-
for resource in test_aw:
444-
test_resources.append(resource)
445-
with open(
378+
assert cluster.app_wrapper_yaml == f"{aw_dir}unit-test-cluster-ray.yaml"
379+
assert cluster.app_wrapper_name == "unit-test-cluster-ray"
380+
assert filecmp.cmp(
381+
f"{aw_dir}unit-test-cluster-ray.yaml",
446382
f"{parent}/tests/test-case-no-mcad.yamls",
447-
) as f:
448-
default_aw = yaml.load_all(f, Loader=yaml.FullLoader)
449-
for resource in default_aw:
450-
expected_resources.append(resource)
451-
assert test_resources == expected_resources
383+
shallow=True,
384+
)
452385

453386

454387
def test_cluster_creation_priority(mocker):
@@ -466,7 +399,6 @@ def test_cluster_creation_priority(mocker):
466399
return_value={"spec": {"domain": "apps.cluster.awsroute.org"}},
467400
)
468401
cluster = Cluster(config)
469-
ca_secret_support(cluster.app_wrapper_yaml, True)
470402
assert cluster.app_wrapper_yaml == f"{aw_dir}prio-test-cluster.yaml"
471403
assert cluster.app_wrapper_name == "prio-test-cluster"
472404
assert filecmp.cmp(
@@ -488,7 +420,7 @@ def test_default_cluster_creation(mocker):
488420
mcad=True,
489421
)
490422
cluster = Cluster(default_config)
491-
test_aw = ca_secret_support_no_write(cluster.app_wrapper_yaml, True)
423+
test_aw = yaml.load(cluster.app_wrapper_yaml, Loader=yaml.FullLoader)
492424

493425
with open(
494426
f"{parent}/tests/test-default-appwrapper.yaml",

0 commit comments

Comments
 (0)
Please sign in to comment.