Я пытаюсь использовать диаграмму управления, чтобы развернуть свои секреты как запечатанные секреты, я создал шаблон для запечатанных секретов.
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
name: {{ include "api.fullname" . }}
namespace: api
spec:
template:
metadata:
name: {{ include "api.fullname" . }}
encryptedData:
{{- range $key, $val := .Values.encryptedData }}
{{ $key }}: {{ $val }}
{{- end }}
и в моем развертывании я устанавливаю секретные значения как переменные env
env:
{{- range $key, $val := .Values.encryptedData }}
- name: {{ $key }}
valueFrom:
secretKeyRef:
name: {{ include "sealedsecret.bitnami.com/api.fullname" $ }}
key: {{ $key }}
{{- end }}
Проблема в том, что когда я устанавливаю диаграмму, запечатанный секретный файл находится в sealsecret.bitnami.com/api.
как можно ссылаться на это во включаемой части secretKeyRef
Ошибка, которую я получаю при установке диаграммы
Error: template: joe-api/templates/deployment.yaml:42:25: executing "api/templates/deployment.yaml" at <include "sealedsecret.bitnami.com/api.fullname" $>: error calling include: template: no template "sealedsecret.bitnami.com/api.fullname" associated with template "gotpl"
любая помощь будет оценена
SealedSecret создает Secret в вашем кластере с тем же именем, что и он сам, см. https://github.com/bitnami-labs/sealed-secrets#overview
Ваше имя SealedSecret происходит от шаблона полного имени диаграммы - {{ include "api.fullname" . }}
, но при развертывании вы включаете неопределенный шаблон с именем sealedsecret.bitnami.com/api.fullname
(вы можете проверить доступные шаблоны в файле templates/_helpers.tpl
, если хотите)
Таким образом, приведенный ниже фрагмент должен работать:
env:
{{- range $key, $val := .Values.encryptedData }}
- name: {{ $key }}
valueFrom:
secretKeyRef:
name: {{ include "api.fullname" $ }}
key: {{ $key }}
{{- end }}
Ах, я всегда забываю область внутри range
, заменил .
на $
, нужно исправить, см. stackoverflow.com/questions/61297149/…
Я все еще получаю сообщение об ошибке
Как вы создали свою диаграмму? Вы использовали helm create api
для создания шаблонной диаграммы? У вас есть файл templates/_helpers.tpl
? У вас есть шаблон api.fullname
, определенный внутри него?
да, я создал его с помощью helm create, и у меня есть _helpers.tpl, а там есть api.fullname
извините, у меня была опечатка, теперь это работает. Спасибо
Спасибо за ответ, однако я все еще получаю шаблон ошибки: api/templates/deployment.yaml:41:25: выполнение "api/templates/deployment.yaml" в <include "api.fullname".>: ошибка вызова включают: шаблон: нет шаблона "api.fullname", связанного с шаблоном "gotpl"