从Helm中的文件中读取秘密

Maz*_*zzy 9 kubernetes kubernetes-helm

我已经创建了一些秘密,我正试图以这种方式导入文件:

apiVersion: v1
kind: Secret
metadata:
  name: {{ template "amq.broker.fullname" . }}-tls
  labels:
    app: {{ template "amq.name" . }}
    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
    component: "{{ .Values.broker.name }}"
    release: "{{ .Release.Name }}"
    heritage: "{{ .Release.Service }}"
type: Opaque
data:
{{ (.Files.Glob "secrets/broker.ks").AsSecrets | indent 2 }}
Run Code Online (Sandbox Code Playgroud)

该文件在secretsdir下.当我运行安装时,broker.ks秘密不存在.然而秘密在secrets文件夹下.任何的想法?

这里是dir结构

??? Chart.yaml
??? README.md
??? secrets
?   ??? broker.ks
?   ??? broker_cert
?   ??? client.ks
?   ??? client.ts
??? templates
?   ??? NOTES.txt
?   ??? _helpers.tpl
??? values.yaml
Run Code Online (Sandbox Code Playgroud)

iom*_*omv 9

根据文档,解决方案如下:

{{- $root := . -}}
{{- range $path, $bytes := .Files.Glob "secrets/broker.ks" }}
{{ base $path }}: '{{ $root.Files.Get $path | b64enc }}'
{{- end }}
Run Code Online (Sandbox Code Playgroud)

您还可以使用该文件夹中的特定类型的所有文件 .Files.Glob "secrets/*.ks"

还要确保未添加该文件夹,.helmignore否则将无法访问这些文件.