From 607730e78166dfc97dc8b9fc30dc09b4190ea31d Mon Sep 17 00:00:00 2001 From: Alexandr Bogomyakov Date: Mon, 18 Mar 2024 20:36:07 +0200 Subject: [PATCH] fix V1 api define --- k8s.py | 37 ++++++++++++++++++++----------------- lib.py | 12 ++++++------ 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/k8s.py b/k8s.py index 921c717..395b833 100755 --- a/k8s.py +++ b/k8s.py @@ -2,7 +2,7 @@ import base64 import json import yaml import logging -from kubernetes import client, config +from kubernetes import client, config as kube_config from kubernetes.client.rest import ApiException logging.basicConfig( @@ -51,25 +51,28 @@ CONFIG = None V1 = None try: - config.load_incluster_config() + kube_config.load_incluster_config() V1 = client.CoreV1Api() - with open("/var/run/secrets/kubernetes.io/serviceaccount/namespace") as f: - NAMESPACE = f.read().strip() - log.info(f"Found Kubernetes environment. Deployed to namespace '{NAMESPACE}'") - CONFIG = yaml.safe_load(V1.read_namespaced_config_map(name="config-outfleet", namespace=NAMESPACE).data['config.yaml']) - log.info(f"ConfigMap config.yaml loaded from Kubernetes API. Servers: {len(CONFIG['servers'])}, Clients: {len(CONFIG['clients'])}") - + try: + with open("/var/run/secrets/kubernetes.io/serviceaccount/namespace") as f: + NAMESPACE = f.read().strip() + log.info(f"Found Kubernetes environment. Deployed to namespace '{NAMESPACE}'") + try: + CONFIG = yaml.safe_load(V1.read_namespaced_config_map(name="config-outfleet", namespace=NAMESPACE).data['config.yaml']) + log.info(f"ConfigMap loaded from Kubernetes API. Servers: {len(CONFIG['servers'])}, Clients: {len(CONFIG['clients'])}") + except Exception as e: + log.error("ConfigMap not found. {e}") + except: + pass except: log.info("Kubernetes environment not detected") + try: - CONFIG = yaml.safe_load(V1.read_namespaced_config_map(name="config-outfleet", namespace=NAMESPACE).data['config.yaml']) - log.info(f"ConfigMap config.yaml loaded from Kubernetes API. Servers: {len(CONFIG['servers'])}, Clients: {len(CONFIG['clients'])}") -except ApiException as e: - log.warning(f"ConfigMap not found. Fisrt run?") - -if not CONFIG: - log.info(f"Creating new ConfigMap [config-outfleet]") - write_config({"clients": [], "servers": [], "ui_hostname": "accessible-address.com"}) - CONFIG = yaml.safe_load(V1.read_namespaced_config_map(name="config-outfleet", namespace=NAMESPACE).data['config.yaml']) + if not CONFIG: + log.info(f"Creating new ConfigMap [config-outfleet]") + write_config({"clients": [], "servers": [], "ui_hostname": "accessible-address.com"}) + CONFIG = yaml.safe_load(V1.read_namespaced_config_map(name="config-outfleet", namespace=NAMESPACE).data['config.yaml']) +except: + pass diff --git a/lib.py b/lib.py index 47e1054..8469bd3 100755 --- a/lib.py +++ b/lib.py @@ -23,7 +23,9 @@ parser.add_argument( args = parser.parse_args() def get_config(): - if not k8s.NAMESPACE: + if k8s.CONFIG: + return k8s.CONFIG + else: try: with open(args.config, "r") as file: config = yaml.safe_load(file) @@ -35,18 +37,16 @@ def get_config(): log.error(f"Couldn't create config. {exp}") return None return config - else: - return k8s.CONFIG def write_config(config): - if not k8s.NAMESPACE: + if k8s.CONFIG: + k8s.write_config(config) + else: try: with open(args.config, "w") as file: yaml.safe_dump(config, file) except Exception as e: log.error(f"Couldn't write Outfleet config: {e}") - else: - k8s.write_config(config) class ServerDict(TypedDict):