【发布时间】:2018-05-12 05:54:19
【问题描述】:
我创建了一些秘密,我正在尝试以这种方式导入文件:
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 文件夹下。有什么想法吗?
这里是目录结构
├── Chart.yaml
├── README.md
├── secrets
│ ├── broker.ks
│ ├── broker_cert
│ ├── client.ks
│ └── client.ts
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
└── values.yaml
【问题讨论】:
-
当您尝试
helm upgrade时,错误消息究竟是什么?图表的目录树是什么样的? -
升级过程中没有错误。
-
{{ .Files.Get "secrets/broker.ks" | b64enc | indent 2 }}有效吗?或者你需要一个 glob 模式来定位更多的秘密文件? -
对不起。误读了秘密地图。您希望整个内容作为键/值对。忘记我之前的评论。
-
glob .asSecrets 机制是否不会为每个匹配模式的文件创建一个密钥,该密钥的值是文件的内容?在这种情况下,您真的可以尝试
broker.ks: {{ .Files.Get "secrets/broker.ks" | b64enc }}- 无论secrets/broker.ks的内容是什么,都会得到相同的结果。
标签: kubernetes kubernetes-helm