首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Helm图中生成领事模板

如何在Helm图中生成领事模板
EN

Stack Overflow用户
提问于 2020-10-21 13:07:46
回答 1查看 1.2K关注 0票数 3

我有一个用于Spring应用程序的Helm图表,它将由Hashicorp代理注入器注入其数据库凭据。

这是来自dev环境中生成的部署清单的片段。

代码语言:javascript
复制
      annotations:
        vault.hashicorp.com/agent-inject: "true"
        vault.hashicorp.com/role: "app"
        vault.hashicorp.com/agent-inject-secret-database.properties: "secret/data/app/dev/database"
        vault.hashicorp.com/agent-inject-template-database.properties: |
          {{ with secret "secret/data/app/dev/database" }}
          spring.datasource.username: {{ .Data.data.username }}
          spring.datasource.password: {{ .Data.data.password }}
          {{ end }}

为了能够指定values.yaml中的秘密路径和生成的机密文件的名称,我构建了以下模板:

代码语言:javascript
复制
      annotations:
        vault.hashicorp.com/agent-inject: "true"
        vault.hashicorp.com/role: "{{ .Values.vault.role }}"
        {{ print "vault.hashicorp.com/agent-inject-secret-" .Values.vault.secretFileName }}: "{{ .Values.vault.secretPath }}"
        {{ print "vault.hashicorp.com/agent-inject-template-" .Values.vault.secretFileName }}: |
          {{`
          {{ with secret "`}} {{- .Values.vault.secretPath -}}  {{`" }}
          spring.datasource.username: {{ .Data.data.username }}
          spring.datasource.password: {{ .Data.data.password }}
          {{ end }}
          `}}

它按预期工作,但我不认为它很优雅。

我也尝试过这种方法:

代码语言:javascript
复制
      annotations:
        vault.hashicorp.com/agent-inject: "true"
        vault.hashicorp.com/role: "{{ .Values.vault.role }}"
        {{ print "vault.hashicorp.com/agent-inject-secret-" .Values.vault.secretFileName }}: "{{ .Values.vault.secretPath }}"
        {{ print "vault.hashicorp.com/agent-inject-template-" .Values.vault.secretFileName }}: |
          {{ print "{{ with secret " .Values.vault.secretPath " }}" }}
          {{ print "spring.datasource.username: {{ .Data.data.username }}" }}
          {{ print "spring.datasource.password: {{ .Data.data.password }}" }}
          {{ print "{{ end }}" }}

我觉得稍微好些了,但我还是不满意。

所以我的问题是:有更好的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-14 06:05:34

我在我的掌舵图上用了这个方法

代码语言:javascript
复制
  annotations:
    vault.hashicorp.com/agent-inject: true
    vault.hashicorp.com/role: {{ $.Values.injector.role }}
    vault.hashicorp.com/agent-inject-secret-app: kv/k8s-{{ $.Values.environment }}/{{ $.Values.APP_NAME }}
    vault.hashicorp.com/agent-inject-template-app: |
      {{`{{ with secret "`}} kv/k8s-{{- $.Values.environment -}}/{{ $.Values.APP_NAME }}  {{`" }}
      {{ range $key, $value := .Data }}
      export {{ $key }}={{ $value }}
      {{ end }}`}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64464244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档