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

如何用Kustomize的PrefixSuffixTransformer仅作用于指定资源

解决方案:精准匹配资源的PrefixSuffixTransformer配置

要实现仅对my-secret-1添加前缀、my-secret-2保持原样的需求,核心是利用Kustomize的资源匹配规则,让PrefixSuffixTransformer只作用于目标资源。以下是两种可行方案:

方案1:修改Base资源添加匹配标签(适用于Base可编辑场景)

1. 给Base中的目标资源加专属标签

在base/my-secret-1.yaml的metadata中添加自定义标签,用于后续Transformer匹配:

apiVersion: spv.no/v2beta1
kind: AzureKeyVaultSecret
metadata:
  name: my-secret-1
  labels:
    apply-prefix: "true"  # 唯一标识需要加前缀的资源
spec:
  vault:
    name: my-vault
    object:
      name: secret1
      type: secret

my-secret-2.yaml保持原有配置,无需添加该标签。

2. 在Dev目录创建Transformer配置

在dev/prefix-transformer.yaml中定义仅匹配带指定标签的资源:

apiVersion: builtin
kind: PrefixSuffixTransformer
metadata:
  name: add-dev-prefix
spec:
  targets:
    - kind: AzureKeyVaultSecret
      labels:
        apply-prefix: "true"  # 只匹配带该标签的资源
  prefix: "dev-"  # 要添加的前缀内容
  fieldSpecs:
    - path: metadata/name
      create: false  # 资源名称已存在,无需创建新字段

3. 配置Dev目录的kustomization.yaml

将Base资源和Transformer关联:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - ../base
transformers:
  - prefix-transformer.yaml

方案2:通过Patch给目标资源临时加标签(适用于Base不可编辑场景)

如果Base是公共资源无法修改,可以在Dev目录中通过Patch给my-secret-1临时添加匹配标签:

1. 创建Patch文件

在dev/add-label-patch.yaml中定义给my-secret-1加标签的补丁:

apiVersion: spv.no/v2beta1
kind: AzureKeyVaultSecret
metadata:
  name: my-secret-1
patches:
  - op: add
    path: /metadata/labels/apply-prefix
    value: "true"

2. 更新Dev的kustomization.yaml

同时配置Patch和Transformer:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - ../base
# 先给目标资源加标签
patches:
  - path: add-label-patch.yaml
    target:
      kind: AzureKeyVaultSecret
      name: my-secret-1
# 再用Transformer匹配标签添加前缀
transformers:
  - prefix-transformer.yaml

验证效果

执行以下命令生成最终清单:

kustomize build dev

输出结果中,my-secret-1会被重命名为dev-my-secret-1,my-secret-2的名称保持不变,且所有资源通过单次Build生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 10:52:22