首页 文章

从Helm中的文件中读取秘密

提问于
浏览
3

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

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 }}

该文件位于 secrets 目录下 . 当我运行安装时, broker.ks 秘密不在那里 . 但是秘密在 secrets 文件夹下 . 任何的想法?

这里是dir结构

├── Chart.yaml
├── README.md
├── secrets
│   ├── broker.ks
│   ├── broker_cert
│   ├── client.ks
│   └── client.ts
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl
└── values.yaml

2 回答

  • 2

    根据docs,解决方法是:

    {{- $root := . -}}
    {{- range $path, $bytes := .Files.Glob "secrets/broker.ks" }}
    {{ base $path }}: '{{ $root.Files.Get $path | b64enc }}'
    {{- end }}
    

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

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

  • 0

    您可以通过KUBECTL使用必要的选项从文件中创建一个秘密

    语法:kubectl < - 使用auth定义集群/命名空间的通用参数> create secret <.type> <.secret-name> --from-file=<.file-location>

    例如 - kubectl --username = xxxxxx --password = yyyy --server = zzzzz.com --namespace = com-test-sample create secret generic sample-secret --from-file = secrets / broker.ks

    您可以在kubernetes集群中单独创建密钥,然后通过部署下的卷安装将它们安装到您的Microservice Container中

相关问题