如何通过Kustomize edit命令修改ConfigMap中的数据值?
问题描述
我有一个存储在configmap.yaml文件中的ConfigMap,内容如下:
apiVersion: v1 data: key1: val1 key2: val2 key3: val3 kind: ConfigMap metadata: creationTimestamp: null name: job-inputs namespace: qa
同一目录下还有kustomization.yaml文件,内容为:
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - configmap.yaml
我希望通过kustomize edit命令行工具修改该ConfigMap中data字段下各键的值,但未找到相关文档。请问此操作是否可行?若可行,具体该如何操作?
解答
可行,以下是两种通过kustomize edit工具修改ConfigMap键值的实用方法:
方法一:用ConfigMap生成器替换原有配置
适合批量修改或完全替换ConfigMap的data字段:
- (可选)如果要完全替换原有ConfigMap资源,先移除原引用:
kustomize edit remove resource configmap.yaml
- 使用生成器命令添加新的键值对:
kustomize edit add configmap job-inputs --namespace=qa --from-literal=key1=new-val1 --from-literal=key2=new-val2 --from-literal=key3=new-val3
执行后,kustomization.yaml会自动添加ConfigMap生成器配置。运行kustomize build就能看到修改后的完整ConfigMap。
方法二:用补丁精准修改部分键值
适合只修改个别键,保留其他原有配置:
- 创建补丁文件
configmap-patch.yaml,内容如下:
apiVersion: v1 kind: ConfigMap metadata: name: job-inputs namespace: qa data: key1: updated-val1 key2: updated-val2
- 通过
kustomize edit将补丁加入配置:
kustomize edit add patch --path configmap-patch.yaml --kind ConfigMap --name job-inputs --namespace qa
执行后,kustomization.yaml会新增补丁规则。运行kustomize build时,补丁会自动应用到原ConfigMap,仅修改指定键的值。
内容的提问来源于stack exchange,提问作者Anish Nagaraj
相关产品推荐
相关产品推荐

