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

Kustomize覆盖层替换ConfigMap值后ExternalSecret未同步更新

解决Kustomize Overlay替换ConfigMap后Replacements未同步到ExternalSecret的问题

问题核心

在Kustomize v4.5.7中,base目录定义的replacements会优先读取base环境下的ConfigMap值,之后才会应用overlay的behavior: replace配置替换ConfigMap,导致ExternalSecret的remoteRef.key无法同步到overlay的新值。

解决步骤

将replacements逻辑从base迁移到overlay中,确保ConfigMap替换完成后再执行值同步:

  1. 移除base/kustomization.yaml中的replacements配置
  2. 在overlay/kustomization.yaml中添加replacements配置,示例如下:
resources:
- ../base

# 替换ConfigMap(需与base中ConfigMapGenerator的name一致)
configMapGenerator:
- name: my-config
  files:
  - env.properties
  behavior: replace

# 同步ConfigMap值到ExternalSecret
replacements:
- source:
    kind: ConfigMap
    name: my-config
    fieldPath: data.KEY
  targets:
  - select:
      kind: ExternalSecret
      name: my-external-secret
    fieldPaths:
    - spec.remoteRef.key
- source:
    kind: ConfigMap
    name: my-config
    fieldPath: data.KEY2
  targets:
  - select:
      kind: ExternalSecret
      name: my-external-secret
    fieldPaths:
    - spec.remoteRef.key2
- source:
    kind: ConfigMap
    name: my-config
    fieldPath: data.KEY3
  targets:
  - select:
      kind: ExternalSecret
      name: my-external-secret
    fieldPaths:
    - spec.remoteRef.key3

原理说明

Kustomize的执行顺序为:

  1. 加载base目录下的所有资源和transformers(包括replacements)
  2. 加载overlay目录下的资源和transformers,并覆盖base配置

将replacements移到overlay后,会在overlay替换ConfigMap完成后再执行值同步,此时读取的是替换后的ConfigMap数据,就能正确更新ExternalSecret的remoteRef.key字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:45:48