Skip to content

Commit 323e1ae

Browse files
fix(generate_cert.py): add get_secret_name function to solve issues with autogenerated secret names
Signed-off-by: Bobbins228 <[email protected]>
1 parent 261da3f commit 323e1ae

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

src/codeflare_sdk/utils/generate_cert.py

+24-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import datetime
2222
from ..cluster.auth import config_check, api_config_handler
2323
from kubernetes import client, config
24+
from .kube_api_helpers import _kube_api_error_handling
2425

2526

2627
def generate_ca_cert(days: int = 30):
@@ -74,6 +75,24 @@ def generate_ca_cert(days: int = 30):
7475
return key, certificate
7576

7677

78+
def get_secret_name(cluster_name, namespace, api_instance):
79+
label_selector = f"ray.openshift.ai/cluster-name={cluster_name}"
80+
try:
81+
secrets = api_instance.list_namespaced_secret(
82+
namespace, label_selector=label_selector
83+
)
84+
for secret in secrets.items:
85+
if (
86+
f"{cluster_name}-ca-secret-" in secret.metadata.name
87+
): # Oauth secret share the same label this conditional is to make things more specific
88+
return secret.metadata.name
89+
else:
90+
continue
91+
raise KeyError(f"Unable to gather secret name for {cluster_name}")
92+
except Exception as e: # pragma: no cover
93+
return _kube_api_error_handling(e)
94+
95+
7796
def generate_tls_cert(cluster_name, namespace, days=30):
7897
# Create a folder tls-<cluster>-<namespace> and store three files: ca.crt, tls.crt, and tls.key
7998
tls_dir = os.path.join(os.getcwd(), f"tls-{cluster_name}-{namespace}")
@@ -85,7 +104,11 @@ def generate_tls_cert(cluster_name, namespace, days=30):
85104
# oc get secret ca-secret-<cluster-name> -o template='{{index .data "ca.crt"}}'|base64 -d > ${TLSDIR}/ca.crt
86105
config_check()
87106
v1 = client.CoreV1Api(api_config_handler())
88-
secret = v1.read_namespaced_secret(f"ca-secret-{cluster_name}", namespace).data
107+
108+
# Secrets have a suffix appended to the end so we must list them and gather the secret that includes cluster_name-ca-secret-
109+
secret_name = get_secret_name(cluster_name, namespace, v1)
110+
secret = v1.read_namespaced_secret(secret_name, namespace).data
111+
89112
ca_cert = secret.get("ca.crt")
90113
ca_key = secret.get("ca.key")
91114

0 commit comments

Comments
 (0)