【问题标题】:kustomize with azure secret provider class使用 azure 秘密提供程序类进行自定义
【发布时间】:2021-10-29 04:53:46
【问题描述】:

我为我的 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 可以吗?

【问题讨论】:

    标签: azure kubernetes azure-aks kustomize


    【解决方案1】:

    不幸的是 - 您尝试访问的值不是另一个嵌套的 YAML 数组 - YAML 中行尾的管道符号表示后面的任何缩进文本都应解释为多行标量值

    使用 kustomize 您可能需要替换整个 /spec/parameters/objects

    如果你还没有开始使用 kustomize,你可以考虑像 Helm 这样的模板引擎,它应该允许你替换这个字符串中的值

    ...或者您可以结合使用 Helm 进行模板和 Kustomize 进行资源管理、特定配置的补丁和覆盖。

    【讨论】:

    • 谢谢,我已经开始使用 Kustomize,因为我认为我不需要 keyvault 集成。考虑到这一点,Helm 肯定是适合我的方式,我希望像 Kustomize 这样更简单的东西就足够了,但我不能逃避 Helm。感谢您确认我的疑问!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2016-05-26
    • 2020-07-29
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    相关资源
    最近更新 更多