从 helm chart 中的 deployment.yaml 访问密封的秘密

问题描述 投票:0回答:1

我正在尝试使用 helm chart 将我的秘密部署为密封的秘密,我已经为密封的秘密创建了一个模板

apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
  name: {{ include "api.fullname" . }}
  namespace: api
  
spec:
  template:
    metadata: 
      name: {{ include "api.fullname" . }}
  encryptedData:
    {{- range $key, $val := .Values.encryptedData }}
    {{ $key }}: {{ $val }}
    {{- end }}

在我的部署中,我将秘密值设置为环境变量

env:        
{{- range $key, $val := .Values.encryptedData }}
- name: {{ $key }}
  valueFrom:
    secretKeyRef:
      name: {{ include "sealedsecret.bitnami.com/api.fullname" $ }}
      key: {{ $key }}
{{- end }} 

问题是当我安装图表时,密封的秘密文件位于 sealedsecret.bitnami.com/api

如何在 secretKeyRef 的包含部分引用它

安装图表时出现的错误

Error: template: joe-api/templates/deployment.yaml:42:25: executing "api/templates/deployment.yaml" at <include "sealedsecret.bitnami.com/api.fullname" $>: error calling include: template: no template "sealedsecret.bitnami.com/api.fullname" associated with template "gotpl"

任何帮助将不胜感激

kubernetes deployment yaml kubernetes-helm kubernetes-secrets
1个回答
0
投票

SealedSecret 在您的集群中创建与自己同名的 Secret,参见 https://github.com/bitnami-labs/sealed-secrets#overview

您的 SealedSecret 名称来自图表全名模板 -

{{ include "api.fullname" . }}
,但在部署中您包括未定义的模板,名为
sealedsecret.bitnami.com/api.fullname
(如果需要,您可以在
templates/_helpers.tpl
文件中检查可用模板)

所以下面的代码片段应该有效:

env:        
{{- range $key, $val := .Values.encryptedData }}
- name: {{ $key }}
  valueFrom:
    secretKeyRef:
      name: {{ include "api.fullname" $ }}
      key: {{ $key }}
{{- end }} 
© www.soinside.com 2019 - 2024. All rights reserved.