배포 사양은 다음과 같습니다.
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