使用 azure secret 提供程序进行自定义 class
kustomize with azure secret provider class
我为我的 Azure Kubernetes 服务部署定义了一个 secretsProviderClass 资源,它允许我从 Azure Key Vault 创建机密。我想将 Kustomize 与它一起使用,以便统一我在多个环境中的部署。这是我的清单:
apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
name: azure-kvname
spec:
provider: azure
secretObjects:
- data:
- key: dbuser
objectName: db-user
- key: dbpassword
objectName: db-pass
- key: admin
objectName: admin-user
- key: adminpass
objectName: admin-password
secretName: secret
type: Opaque
parameters:
usePodIdentity: "true"
keyvaultName: "dev-keyvault"
cloudName: ""
objects: |
array:
- |
objectName: db-user
objectType: secret
objectVersion: ""
- |
objectName: db-pass
objectType: secret
objectVersion: ""
- |
objectName: admin-user
objectType: secret
objectVersion: ""
- |
objectName: admin-password
objectType: secret
objectVersion: ""
tenantId: "XXXXXXXXXXXX"
这是我用作基础的清单。我想对此使用覆盖并根据我要部署到的环境应用值。具体来说,我想修改 objectName
属性。我尝试应用 Json6902 补丁:
- op: replace
path: /spec/parameters/objects/array/0/objectName
value: "dev-db-user"
- op: replace
path: /spec/parameters/objects/array/1/objectName
value: "dev-db-password"
- op: replace
path: /spec/parameters/objects/array/2/objectName
value: "dev-admin-user"
- op: replace
path: /spec/parameters/objects/array/3/objectName
value: "dev-admin-password"
不幸的是,它没有用,也没有替换值。 Kustomize 可以吗?
不幸的是 - 您尝试访问的值不是另一个嵌套的 YAML 数组 - YAML 中一行末尾的管道符号表示后面的任何缩进文本都应解释为多行标量值
使用 kustomize,您可能需要替换整个 /spec/parameters/objects
值
如果您还没有开始使用 kustomize,您可以考虑像 Helm 这样的模板引擎,它应该允许您替换此字符串中的值
...或者您可以结合使用 Helm 进行模板化和 Kustomize 进行资源管理、特定配置的补丁和覆盖。
我为我的 Azure Kubernetes 服务部署定义了一个 secretsProviderClass 资源,它允许我从 Azure Key Vault 创建机密。我想将 Kustomize 与它一起使用,以便统一我在多个环境中的部署。这是我的清单:
apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
name: azure-kvname
spec:
provider: azure
secretObjects:
- data:
- key: dbuser
objectName: db-user
- key: dbpassword
objectName: db-pass
- key: admin
objectName: admin-user
- key: adminpass
objectName: admin-password
secretName: secret
type: Opaque
parameters:
usePodIdentity: "true"
keyvaultName: "dev-keyvault"
cloudName: ""
objects: |
array:
- |
objectName: db-user
objectType: secret
objectVersion: ""
- |
objectName: db-pass
objectType: secret
objectVersion: ""
- |
objectName: admin-user
objectType: secret
objectVersion: ""
- |
objectName: admin-password
objectType: secret
objectVersion: ""
tenantId: "XXXXXXXXXXXX"
这是我用作基础的清单。我想对此使用覆盖并根据我要部署到的环境应用值。具体来说,我想修改 objectName
属性。我尝试应用 Json6902 补丁:
- op: replace
path: /spec/parameters/objects/array/0/objectName
value: "dev-db-user"
- op: replace
path: /spec/parameters/objects/array/1/objectName
value: "dev-db-password"
- op: replace
path: /spec/parameters/objects/array/2/objectName
value: "dev-admin-user"
- op: replace
path: /spec/parameters/objects/array/3/objectName
value: "dev-admin-password"
不幸的是,它没有用,也没有替换值。 Kustomize 可以吗?
不幸的是 - 您尝试访问的值不是另一个嵌套的 YAML 数组 - YAML 中一行末尾的管道符号表示后面的任何缩进文本都应解释为多行标量值
使用 kustomize,您可能需要替换整个 /spec/parameters/objects
值
如果您还没有开始使用 kustomize,您可以考虑像 Helm 这样的模板引擎,它应该允许您替换此字符串中的值
...或者您可以结合使用 Helm 进行模板化和 Kustomize 进行资源管理、特定配置的补丁和覆盖。