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

执行kustomize build报错:无法匹配SecretProviderClass目标资源

Kustomize构建SecretProviderClass补丁匹配错误问题

执行的命令

kustomize build .\services\showcase\overlays\dev\

base目录下的secretclass.yaml内容

apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: azure-kvname-user-msi
  namespace: showcase
spec:
  provider: azure
  secretObjects:
    - secretName: connection-string
      type: kubernetes.io/tls
      data:
        - objectName: connection-str
          key: connectionstr
  parameters:
    usePodIdentity: "false"
    useVMManagedIdentity: "true" # 使用托管标识时设为true
    userAssignedIdentityID: 674a3fcb-2456-4aba-aaa9-xxxxxx # 填入用户分配托管标识的clientID
    keyvaultName: kv-arm-shared-dev-f-02 # 填入你的密钥保管库名称
    cloudName: "" # [Azure可选参数] 留空默认使用Azure公有云
    objects: |
      array:
        - |
          objectName: ConnectionStrings-showcase
          objectAlias: connection-str
          objectType: secret              # 对象类型:secret、key或cert
          objectVersion: ""               # [可选] 对象版本,留空默认使用最新版本
    tenantId: de33eaa6-4346-40a0-882c-xxxxxxxxx # 密钥保管库的租户ID

overlays/dev目录下的kustomization.yaml内容

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - ../../base

patchesStrategicMerge:
  - deployment.yaml
  - secretclass.yaml

说明:.\services\showcase\overlays\dev\下的secretclass.yaml内容与base中的完全一致。

执行命令后报错

kustomize build .\services\showcase\overlays\dev\
Error: no matches for Id SecretProviderClass.v1.secrets-store.csi.x-k8s.io/azure-kvname-user-msi.showcase; failed to find unique target for patch SecretProviderClass.v1.secrets-store.csi.x-k8s.io/azure-kvname-user-msi.showcase

问题原因与解决方法

原因

在patchesStrategicMerge中配置了与base资源完全一致的SecretProviderClass文件,Kustomize补丁机制需要明确的修改内容,当补丁与原资源无差异时,无法识别有效补丁目标,从而抛出匹配错误。

解决方法

  1. 无需修改时:直接从patchesStrategicMerge中移除secretclass.yaml,base目录下的资源会被正常加载,不需要重复补丁。
  2. 需要修改时:将补丁文件改为仅包含需要修改的字段,而非完整资源定义。例如要修改密钥保管库名称,补丁文件内容如下:
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: azure-kvname-user-msi
  namespace: showcase
spec:
  parameters:
    keyvaultName: new-kv-arm-shared-dev-f-02

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 22:23:31