Kubernetes Python クライアントの ConfigMap の名前を変更する

Kubernetes Python クライアントの ConfigMap の名前を変更する

次のような展開仕様があります:

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

Kubernetes Pythonクライアントを使用して、ConfigMapの名前をconfig-web-2-5からconfig-web-3-0に変更したい

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

ただし、クライアントは次のエラーを返します。

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

クライアント src から、デプロイメント オブジェクトにパスが見つからない場合にこのエラーが発生することがわかります。

これは使用する正しいパスですか? 展開にはボリュームが 1 つしかありません。

答え1

パスが正しくありません。

正しいパスは次のとおりです:

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

ない

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

関連情報