试图修补kubernetes配置映射的数据部分中的字符串值,但遇到错误。
kubectl patch configmap cm-example -n example-ns -p '{"data":{"application.yml":{"keycloak":{"auth-server-url":"https://server-url.domain.com/auth/"}}}}'
得到下面的错误
The request is invalid: patch: Invalid value: "map[data:map[application.yml:map[keycloak:map[auth-server-url:https://server-url.domain.com/auth/]]]]": unrecognized type: string
当我试图在我的configmap map上运行补丁时,我也遇到了同样的问题,该补丁包含一个应该是yaml文件的文件。
问题是,部署,pod,作业-它们是yaml或json。但是配置映射中的文件只是一个字符串。补丁将不知道该怎么做,你将需要发送整个字符串,这不是很有用。另一种方法是尝试sed
。但是它并没有给pod, deployment等运行补丁的同样的体验-这些文件都是真正的yaml或json。