Tengo la siguiente especificación de implementación:
spec:
template:
spec:
volumes:
- name: config-web
configMap:
name: config-web-2-5
Quiero usar el cliente Python de Kubernetes para cambiar el nombre de ConfigMap de config-web-2-5 a 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
Sin embargo, el cliente devuelve el siguiente error:
"message":"jsonpatch replace operation does not apply: doc is missing path: /spec/template/spec/volumes/0/config_map/name"
Desde el src del cliente, puedo ver que este error ocurre cuando la ruta no se encuentra en el objeto de implementación.
¿Es esta la ruta correcta a utilizar? Solo hay 1 volumen en la implementación.
Respuesta1
El camino no es correcto.
El camino correcto es:
/spec/template/spec/volumes/0/configMap/name
no
/spec/template/spec/volumes/0/config_map/name