Как добавить файл seal-secret.yaml в диаграмму Helm?
У меня есть специальная диаграмма руля, которую я написал, которая имеетdeployment.yaml
,service.yaml
и другие ямлы. Теперь я хочу включить в него файл шаблона seal-secret.yaml, например:
{{- if .Values.sealedSecrets -}}
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
creationTimestamp: null
name: {{ include "mychart.fullname" . }}-sealedsecret
namespace: {{ .Release.Namespace }}
labels:
{{- include "mychart.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": pre-install
spec:
encryptedData:
{{- range .Values.sealedSecrets }}
{{ .key }}: {{ .value }}
{{- end }}
template:
data: null
metadata:
creationTimestamp: null
name: {{ include "mychart.fullname" . }}-sealedsecret
namespace: {{ .Release.Namespace }}
{{- end }}
Однако, когда я устанавливаю свое приложение с помощью диаграммы Helm, я не вижу генерируемого секрета. Я также проверил манифест Helm для развернутого приложения и не вижу в нем файла seal-secret.yaml.
Нужно ли мне делать что-то особенное для запечатанного секрета?
1 ответ
Надеюсь, этот пример вам поможет :)@Katlock
создайте новую диаграмму:
$ cd /tmp
$ helm create mychart
просмотреть исходные файлы диаграмм
$ find mychart/
mychart/
mychart/charts
mychart/templates
mychart/templates/tests
mychart/templates/tests/test-connection.yaml
mychart/templates/_helpers.tpl
mychart/templates/NOTES.txt
mychart/templates/hpa.yaml
mychart/templates/serviceaccount.yaml
mychart/templates/service.yaml
mychart/templates/deployment.yaml
mychart/templates/ingress.yaml
mychart/.helmignore
mychart/values.yaml
mychart/Chart.yaml
удалите ненужные файлы для тестирования
$ rm -rf mychart/templates/test
$ rm -f mychart/templates/*.yaml
создать файл шаблона шлема SealedSecret
$ cat <<EOF > mychart/templates/sealedsecret.yaml
> {{- if .Values.sealedSecrets -}}
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
creationTimestamp: null
name: {{ include "mychart.fullname" . }}-sealedsecret
namespace: {{ .Release.Namespace }}
labels:
{{- include "mychart.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": pre-install
spec:
encryptedData:
{{- range .Values.sealedSecrets }}
{{ .key }}: {{ .value }}
{{- end }}
template:
data: null
metadata:
creationTimestamp: null
name: {{ include "mychart.fullname" . }}-sealedsecret
namespace: {{ .Release.Namespace }}
{{- end }}
EOF
создайте файлvalues.yaml для секретов значений ключа
$ cat <<EOF > values.yaml
> sealedSecrets:
- key: my_key
value: my_value
- key: my_second_key
value: my_second_value
EOF
посмотреть статус последнего файла
$ find mychart/
mychart/
mychart/charts
mychart/templates
mychart/templates/sealedsecret.yaml
mychart/templates/NOTES.txt
mychart/templates/_helpers.tpl
mychart/.helmignore
mychart/values.yaml
mychart/Chart.yaml
запустите команду шаблона helm, чтобы увидеть созданный объект SealedSecret k8s
helm template my-chart mychart/ -f values.yaml
---
# Source: mychart/templates/sealedsecret.yaml
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
creationTimestamp: null
name: my-chart-mychart-sealedsecret
namespace: my-namespace
labels:
helm.sh/chart: mychart-0.1.0
app.kubernetes.io/name: mychart
app.kubernetes.io/instance: my-chart
app.kubernetes.io/version: "1.16.0"
app.kubernetes.io/managed-by: Helm
annotations:
"helm.sh/hook": pre-install
spec:
encryptedData:
my_key: my_value
my_second_key: my_second_value
template:
data: null
metadata:
creationTimestamp: null
name: my-chart-mychart-sealedsecret
namespace: my-namespace