# HG changeset patch # User drewp@bigasterisk.com # Date 1696902664 25200 # Node ID 80e275ab2f88cc18170f69a24a1e311b14c94c6b # Parent 3b91d52b007d864b3d43fab1b863b87826ec23b2 rewrite replaceCmap, though idk if it was broken or not diff -r 3b91d52b007d -r 80e275ab2f88 k8s_ops.py --- a/k8s_ops.py Mon Oct 09 18:50:36 2023 -0700 +++ b/k8s_ops.py Mon Oct 09 18:51:04 2023 -0700 @@ -20,9 +20,7 @@ def firstPodName(selector): api_instance = client.CoreV1Api() - pod_list = api_instance.list_namespaced_pod( - namespace="default", label_selector=selector - ) + pod_list = api_instance.list_namespaced_pod(namespace="default", label_selector=selector) return pod_list.items[0].metadata.name @@ -32,14 +30,21 @@ def replaceCmap(name, dataObj): api_instance = client.CoreV1Api() - api_response = api_instance.replace_namespaced_config_map( # - name=name, - namespace="default", - body={ - "apiVersion": "v1", - "kind": "ConfigMap", - "metadata": {"name": name}, - "data": dict((fn, json.dumps(obj)) for fn, obj in dataObj.items()), - }, - ) + + data = dict((fn, json.dumps(obj)) for fn, obj in dataObj.items()) + + try: + + existing_config_map = api_instance.read_namespaced_config_map(name, 'default') + existing_config_map.data.update(data) + api_response = api_instance.replace_namespaced_config_map(name, "default", existing_config_map) + except client.rest.ApiException as e: + if e.status == 404: + config_map = client.V1ConfigMap() + config_map.metadata = client.V1ObjectMeta(name=name) + config_map.data = data + api_response = api_instance.create_namespaced_config_map('default', config_map) + else: + raise + print(f"{name} resource_version is now {api_response.metadata.resource_version}")