Как добавить файл 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

Другие вопросы по тегам