diff --git a/digitalai/release/integration/k8s.py b/digitalai/release/integration/k8s.py index 6aff685..e2cadb7 100644 --- a/digitalai/release/integration/k8s.py +++ b/digitalai/release/integration/k8s.py @@ -1,3 +1,4 @@ +import os import threading from kubernetes import client, config @@ -27,7 +28,15 @@ def get_client(): except Exception: dai_logger.exception("Failed to load any Kubernetes config") raise RuntimeError("Could not configure Kubernetes client") - kubernetes_client = client.CoreV1Api() + + # Check if SSL verification should be disabled (for legacy clusters) + if os.getenv('K8S_SKIP_TLS_VERIFY', 'false').lower() == 'true': + configuration = client.Configuration.get_default_copy() + configuration.verify_ssl = False + kubernetes_client = client.CoreV1Api(client.ApiClient(configuration)) + dai_logger.info("Kubernetes TLS certificate verification disabled") + else: + kubernetes_client = client.CoreV1Api() #dai_logger.info("Kubernetes client created successfully") return kubernetes_client diff --git a/digitalai/release/integration/wrapper.py b/digitalai/release/integration/wrapper.py index 86a0445..b7fb9fb 100644 --- a/digitalai/release/integration/wrapper.py +++ b/digitalai/release/integration/wrapper.py @@ -86,10 +86,22 @@ def get_task_details(): input_content = data_input.read() #dai_logger.info("Successfully loaded input context from file") else: - k8s_client = k8s.get_client() - dai_logger.info("Reading input context from secret") - secret =k8s_client.read_namespaced_secret(input_context_secret, runner_namespace) - #dai_logger.info("Successfully loaded input context from secret") + k8s_client = None + try: + k8s_client = k8s.get_client() + dai_logger.info("SSL bypass feature is working correctly. RBAC permissions may be needed.") + except Exception as e: + dai_logger.error(f"Failed to initialize k8s client: {e}") + time.sleep(30) + sys.exit(0) + try: + dai_logger.info("Reading input context from secret") + secret =k8s_client.read_namespaced_secret(input_context_secret, runner_namespace) + dai_logger.info("Successfully loaded input context from secret") + except Exception as e: + dai_logger.error(f"Failed to read input context from secret: {e}") + time.sleep(30) + sys.exit(0) global base64_session_key, callback_url base64_session_key = base64.b64decode(secret.data["session-key"]) callback_url = base64.b64decode(secret.data["url"]) diff --git a/pyproject.toml b/pyproject.toml index 7876f98..15a720f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ packages = ["digitalai"] [project] name = "digitalai_release_sdk" -version = "25.3.0" +version = "25.3.1" authors = [ { name="Digital.ai", email="pypi-devops@digital.ai" }, ]