azure - 使用 azure 秘密提供程序类进行自定义
问题描述
我为我的 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 进行资源管理、特定配置的补丁和覆盖。
推荐阅读
- linux - 在linux目录中的所有文件中运行脚本
- html - 当前课堂主题
- javascript - 在场景中的 Mapbox-gl 中“单击”时不会触发“mouseDown”事件
- typescript - 定义对象键但推断值
- javascript - 在 Google 表格中的表格顶部添加 fow
- html - 将宽度设置为 100% 以上后,div 水平向右移动
- javascript - 仅向弹出图像添加文本
- .htaccess - 尝试使用 .htaccess 进行 www 和 https 重定向
- javascript - 合并两个具有相同键的对象并将值转换为数组
- google-cloud-platform - Google Cloud Shell 一直停留在“配置您的 Cloud Shell 机器”上好几个小时了