Kubernetes-Python-Client ändert den Namen von ConfigMap

Kubernetes-Python-Client ändert den Namen von ConfigMap

Ich habe die folgende Bereitstellungsspezifikation:

spec:
  template:
    spec:
      volumes:
        - name: config-web
          configMap:
            name: config-web-2-5

Ich möchte den Kubernetes-Python-Client verwenden, um den Namen von ConfigMap von config-web-2-5 in config-web-3-0 zu ändern

def kubernetes_update_cm():
    v1 = client.AppsV1beta1Api()
    body = [{"op":"replace","path":"/spec/template/spec/volumes/0/config_map/name", "value": "config-web-3-0"}]
    ret = v1.patch_namespaced_deployment(name="my-app", namespace="default", body=body)
    return ret

Der Client gibt jedoch den folgenden Fehler zurück:

"message":"jsonpatch replace operation does not apply: doc is missing path: /spec/template/spec/volumes/0/config_map/name"

Anhand der Client-Quelle kann ich erkennen, dass dieser Fehler auftritt, wenn der Pfad im Bereitstellungsobjekt nicht gefunden wird.

Ist dies der richtige Pfad? In der Bereitstellung ist nur 1 Volume vorhanden.

Antwort1

Der Pfad ist nicht korrekt.

Der richtige Pfad ist:

/spec/template/spec/volumes/0/configMap/name

nicht

/spec/template/spec/volumes/0/config_map/name

verwandte Informationen