You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Kustomize将Vault注解批量添加到多个Overlay资源

可行方案:复用Vault注解到多个Deployment

针对你的场景,推荐用Kustomize的patches字段结合通用注解patch实现批量复用,比patchesStrategicMerge更灵活,能避免配置冗余:

方案1:抽取通用注解patch(推荐)

  1. 把vault-values.yml里的Vault注解单独抽成一个通用patch文件(比如vault-annotations-patch.yml),放在Overlay目录:
# overlay/vault-annotations-patch.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    vault.hashicorp.com/agent-inject: "true"
    vault.hashicorp.com/role: "your-vault-role"
    # 其他需要的Vault相关注解
  1. 在Overlay目录的kustomization.yml中,用patches字段指定要应用该注解的所有Deployment:
# overlay/kustomization.yml
resources:
- ../base

patches:
- path: vault-annotations-patch.yml
  target:
    kind: Deployment
    name: mylogger
- path: vault-annotations-patch.yml
  target:
    kind: Deployment
    name: myjob
# 可继续添加其他需要注入Vault注解的Deployment名称

方案2:复用现有vault-values.yml

如果不想新增文件,可修改现有vault-values.yml,去掉针对mylogger的名称限制,变成通用patch:

# overlay/vault-values.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    # 保留所有原有的Vault注解
    vault.hashicorp.com/agent-inject: "true"
    ...

然后同样在kustomization.yml中用patches字段批量匹配目标Deployment:

# overlay/kustomization.yml
resources:
- ../base

patches:
- path: vault-values.yml
  target:
    kind: Deployment
    name: mylogger
- path: vault-values.yml
  target:
    kind: Deployment
    name: myjob

关于patchesStrategicMerge的说明

patchesStrategicMerge确实能给资源打补丁,但它依赖文件内的metadata.name精确匹配资源——如果用它实现批量复用,你得复制多份vault-values.yml并修改每个文件的metadata.name,会导致配置冗余,所以不推荐用在这个场景。而patches字段支持通过target规则批量匹配资源,完美适配你的复用需求。

内容的提问来源于stack exchange,提问作者jakox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 18:10:31