8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何使用 Helm Charts 从 kubernetes 中提取机密并将其作为 Spring Boot 应用程序的环境变量引用

Tran To 2月前

17 0

我是 helm chart 和 spring boot 应用程序开发的新手。我的 spring boot 应用程序的敏感详细信息存储在 AWS 机密管理器中,如下所示,basic.auth-role.ROLE_API_PROXY_ADMI...

我是 helm chart 和 spring boot 应用程序开发的新手。

我的 Spring Boot 应用程序的敏感详细信息存储在 AWS Secrets Manager 中,如下所示,

basic.auth-role.ROLE_API_PROXY_ADMIN.[0].用户名

basic.auth-role.ROLE_API_PROXY_ADMIN.[0].密码

basic.auth-role.ROLE_API_PROXY_CONSUMER.[0].用户名

basic.auth-角色.ROLE_API_PROXY_CONSUMER.[0].密码

使用 Helm Charts,我从 AWS Secrets Manager 中检索这些信息,并将其存储在我可以执行此操作的 kubernetes Secrets 中。PFB 代码片段,

来自 helm values.yaml 的代码片段

externalSecret:
  # Create an external secret resource.
  create: true
  # Name of the secret store.
  name: "integration-hub-service-external-secrets"
  # Target name for the external secret.
  targetName: &externalSecret-targetName integration-hub-service-secrets
  secrets:
    # Define the secrets to be pulled from AWS Secrets Manager.
    - secretKey: &basic_auth-role_ROLE_API_PROXY_ADMIN_0_username basic_auth-role_ROLE_API_PROXY_ADMIN_0_username
      remoteRef:
        key: "/DSC/UAT/BLUE/INTEGRATION-HUB-SERVICE"
        property: basic.auth-role.ROLE_API_PROXY_ADMIN.[0].username
    - secretKey: &basic_auth-role_ROLE_API_PROXY_ADMIN_0_password basic_auth-role_ROLE_API_PROXY_ADMIN_0_password
      remoteRef:
        key: "/DSC/UAT/BLUE/INTEGRATION-HUB-SERVICE"
        property: basic.auth-role.ROLE_API_PROXY_ADMIN.[0].password
    - secretKey: &basic_auth-role_ROLE_API_PROXY_CONSUMER_0_username basic_auth-role_ROLE_API_PROXY_CONSUMER_0_username
      remoteRef:
        key: "/DSC/UAT/BLUE/INTEGRATION-HUB-SERVICE"
        property: basic.auth-role.ROLE_API_PROXY_CONSUMER.[0].username
    - secretKey: &basic_auth-role_ROLE_API_PROXY_CONSUMER_0_password basic_auth-role_ROLE_API_PROXY_CONSUMER_0_password
      remoteRef:
        key: "/DSC/UAT/BLUE/INTEGRATION-HUB-SERVICE"
        property: basic.auth-role.ROLE_API_PROXY_CONSUMER.[0].password

使用 helm anchor 和别名,我能够从 externalSecret 获取值并在 env 中引用它,如下所述。

现在,这里的问题是,我在“ROLE_API_PROXY_CONSUMER”和“ROLE_API_PROXY_ADMIN”中加了下划线。所以,你能帮我说明一下在这种情况下如何提及环境变量名称吗?

    env:
      - name: "SPRING_PROFILES_ACTIVE"
        value: "local"
      - name: "???"
        valueFrom:
          secretKeyRef:
            name: *externalSecret-targetName
            key: *basic_auth-role_ROLE_API_PROXY_ADMIN_0_username
      - name: "???"
        valueFrom:
          secretKeyRef:
            name: *externalSecret-targetName
            key: *basic_auth-role_ROLE_API_PROXY_ADMIN_0_password
帖子版权声明 1、本帖标题:如何使用 Helm Charts 从 kubernetes 中提取机密并将其作为 Spring Boot 应用程序的环境变量引用
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Tran To在本站《spring-boot》版块原创发布, 转载请注明出处!
最新回复 (0)
  • Spring Boot 将环境变量绑定到 Spring 属性 包含在 Spring Boot 文档中:给定属性名称,将点替换为下划线,删除所有破折号,然后转换为大写。对于列表类型的值,您可以直接在环境变量名称中包含索引,而无需下划线。

    鉴于这些规则,如果您的 Spring 属性名称是

    basic.auth-role.ROLE_API_PROXY_ADMIN.[0].username
    

    那么它将被绑定到环境变量

    BASIC_AUTHROLE_ROLE_API_PROXY_ADMIN_0_USERNAME
    
  • 在您的问题中,您讨论了 YAML 锚点。我不太清楚它们在这里是如何使用的。特别是,我会避免尝试直接将 Kubernetes YAML 写为 Helm 值;而是在模板代码中构造 env: 块。您可以根据需要生成 Secret 的名称。看起来您的 ExternalSecret 定义相当死记硬背,您也可以在代码中构造它。

返回
作者最近主题: