我已经创建了一些秘密,我试图以这种方式导入文件:
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 struct
├── Chart.yaml
├── README.md
├── secrets
│ ├── broker.ks
│ ├── broker_cert
│ ├── client.ks
│ └── client.ts
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
└── values.yaml
答案 0 :(得分:7)
根据docs,对此的解决方案如下:
{{- $root := . -}}
{{- range $path, $bytes := .Files.Glob "secrets/broker.ks" }}
{{ base $path }}: '{{ $root.Files.Get $path | b64enc }}'
{{- end }}
您还可以使用.Files.Glob "secrets/*.ks"
另外,请确保该文件夹尚未添加到.helmignore
,否则无法访问这些文件。
答案 1 :(得分:-1)
您可以使用KUBECTL
的必要选项从文件中创建一个秘密语法:kubectl< - 使用auth>定义集群/命名空间的泛型参数创建秘密< .type> < .secret-名称> --from文件= LT; .file-地点> 强>
例如 - kubectl --username = xxxxxx --password = yyyy --server = zzzzz.com --namespace = com-test-sample 创建秘密通用 sample-secret --from-file =秘密/ broker.ks
您可以在kubernetes集群中单独创建密钥,然后通过部署下的卷安装将它们安装到您的微服务容器中