Kustomize多路径补丁复用同一值的实现方法问询
在Kustomize中复用补丁值的方法
方法1:使用vars功能实现变量复用
你可以通过定义变量来避免重复输入同一值,具体配置如下:
- 先在
kustomization.yaml中添加变量的承载配置和变量定义:
# 用ConfigMap承载要复用的值 configMapGenerator: - name: app-name-config literals: - APP_NAME=svc1 # 定义变量,关联到ConfigMap中的值 vars: - name: APP_NAME objref: kind: ConfigMap name: app-name-config apiVersion: v1 fieldref: fieldpath: data.APP_NAME
- 修改补丁内容,用
$(APP_NAME)引用变量:
patches: - target: group: apps version: v1 kind: Deployment name: common-base patch: |- - op: replace path: /metadata/name value: "$(APP_NAME)" - op: replace path: /metadata/labels/app value: "$(APP_NAME)"
方法2:使用replacements批量替换(Kustomize v4.1.0+支持)
这是Kustomize专门用于批量值替换的功能,配置更直观,无需编写JSON Patch:
# 同样用ConfigMap承载复用值 configMapGenerator: - name: app-name-config literals: - APP_NAME=svc1 # 定义替换规则,一次性覆盖多个路径 replacements: - source: kind: ConfigMap name: app-name-config fieldPath: data.APP_NAME targets: - select: group: apps version: v1 kind: Deployment name: common-base fieldPaths: - metadata.name - metadata.labels.app
注意事项
vars功能默认启用,无需额外配置;replacements需要Kustomize版本不低于v4.1.0,若版本较低建议升级或选用vars方案。
内容的提问来源于stack exchange,提问作者rosepalette
相关产品推荐
相关产品推荐

