21
21
parent = Path (__file__ ).resolve ().parents [1 ]
22
22
sys .path .append (str (parent ) + "/src" )
23
23
24
+ from kubernetes import client
24
25
from codeflare_sdk .cluster .awload import AWManager
25
26
from codeflare_sdk .cluster .cluster import (
26
27
Cluster ,
@@ -2017,17 +2018,25 @@ def test_generate_ca_cert():
2017
2018
assert cert_pub_key_bytes == private_pub_key_bytes
2018
2019
2019
2020
2021
+ def secret_ca_retreival (secret_name , namespace ):
2022
+ ca_private_key_bytes , ca_cert = generate_ca_cert ()
2023
+ data = {"ca.crt" : ca_cert , "ca.key" : ca_private_key_bytes }
2024
+ assert secret_name == "ca-secret-cluster"
2025
+ assert namespace == "namespace"
2026
+ return client .models .V1Secret (data = data )
2027
+
2028
+
2020
2029
def test_generate_tls_cert (mocker ):
2021
2030
"""
2022
2031
test the function codeflare_sdk.utils.generate_ca_cert generates the correct outputs
2023
2032
"""
2024
- ca_private_key_bytes , ca_cert = generate_ca_cert ()
2025
- mocker .patch ("openshift.invoke" , return_value = openshift .Result ("fake" ))
2026
- mocker .patch ("openshift.Result.out" , return_value = ca_private_key_bytes )
2033
+ mocker .patch ("kubernetes.config.load_kube_config" , return_value = "ignore" )
2034
+ mocker .patch (
2035
+ "kubernetes.client.CoreV1Api.read_namespaced_secret" ,
2036
+ side_effect = secret_ca_retreival ,
2037
+ )
2038
+
2027
2039
generate_tls_cert ("cluster" , "namespace" )
2028
- with open (os .path .join ("tls-cluster-namespace" , "ca.crt" ), "w" ) as f :
2029
- f .write (base64 .b64decode (ca_cert ).decode ("utf-8" ))
2030
- # verify the required files exist
2031
2040
assert os .path .exists ("tls-cluster-namespace" )
2032
2041
assert os .path .exists (os .path .join ("tls-cluster-namespace" , "ca.crt" ))
2033
2042
assert os .path .exists (os .path .join ("tls-cluster-namespace" , "tls.crt" ))
@@ -2036,16 +2045,28 @@ def test_generate_tls_cert(mocker):
2036
2045
# verify the that the signed tls.crt is issued by the ca_cert (root cert)
2037
2046
with open (os .path .join ("tls-cluster-namespace" , "tls.crt" ), "r" ) as f :
2038
2047
tls_cert = load_pem_x509_certificate (f .read ().encode ("utf-8" ))
2039
- root_cert = load_pem_x509_certificate (base64 .b64decode (ca_cert ))
2040
- assert tls_cert .verify_directly_issued_by (root_cert ) == None
2048
+ with open (os .path .join ("tls-cluster-namespace" , "ca.crt" ), "r" ) as f :
2049
+ root_cert = load_pem_x509_certificate (f .read ().encode ("utf-8" ))
2050
+ assert tls_cert .verify_directly_issued_by (root_cert ) == None
2041
2051
2042
2052
2043
2053
def test_export_env ():
2044
2054
"""
2045
2055
test the function codeflare_sdk.utils.export_ev generates the correct outputs
2046
2056
"""
2047
- export_env ("cluster_name" , "namespace" )
2057
+ tls_dir = "cluster"
2058
+ ns = "namespace"
2059
+ export_env (tls_dir , ns )
2048
2060
assert os .environ ["RAY_USE_TLS" ] == "1"
2061
+ assert os .environ ["RAY_TLS_SERVER_CERT" ] == os .path .join (
2062
+ os .getcwd (), f"tls-{ tls_dir } -{ ns } " , "tls.crt"
2063
+ )
2064
+ assert os .environ ["RAY_TLS_SERVER_KEY" ] == os .path .join (
2065
+ os .getcwd (), f"tls-{ tls_dir } -{ ns } " , "tls.key"
2066
+ )
2067
+ assert os .environ ["RAY_TLS_CA_CERT" ] == os .path .join (
2068
+ os .getcwd (), f"tls-{ tls_dir } -{ ns } " , "ca.crt"
2069
+ )
2049
2070
2050
2071
2051
2072
# Make sure to keep this function and the following function at the end of the file
0 commit comments