Автоматический поворот сгенерированного случайного пароля - PullRequest
2 голосов
/ 15 апреля 2020

Я создал secret.yaml для генерации случайного пароля или моего приложения, и он отлично работает.

{{- if .Values.useSecurity -}}
apiVersion: v1
kind: Secret
metadata:
  name: {{ template "couchdb.fullname" . }}
  labels:
type: Opaque
data:
  {{ if .Values.adminPassword -}}
  couchdb-admin-password: {{ .Values.adminPassword | b64enc | quote }}
  {{ else -}}
  couchdb-admin-password: {{ randAlphaNum 10 | b64enc | quote }}
  {{ end -}}
  couchdb-admin-user: {{ .Values.adminUser | b64enc | quote }}
{{- end }}

Но когда пользователь вошел в систему через несколько дней, ротация пароля должна происходить с использованием Кронджоб. Было бы здорово, если бы кто-нибудь помог мне достичь этого.

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Ваш CronJob файл должен выглядеть примерно так:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: demo-cronjob
spec:
  schedule: "0 0 */1 * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: demo-cron
            image: demo-image:latest
            envFrom:  
            - secretRef:  
              name: "{{ template "couchdb.fullname" . }}"
              # in your case pass here helm install  command - to run your script
              command: [ "/bin/sh" ]
              args: [ "/var/httpd-init/croyscript.sh" ]
          restartPolicy: OnFailure

Выше CronJob будет создаваться демо-cron с именем, который будет работать каждый день в 00:00 часах (формат cron "0 0 */1 * *"). Вы можете указать расписание, например, sh: "0 0 * * 0 " - запускаться раз в неделю в полночь в воскресенье утром. После того, как модуль создан, я добавил ссылку на ваш секрет - {{ template "couchdb.fullname" . }}. В приведенном выше примере определена команда, которая будет запускать скрипт bash, который будет выполняться в модуле pod, в вашем случае вам придется изменить эти две строки командой helm install ....

Посмотрите : cronjob-пароль .

0 голосов
/ 15 апреля 2020

Вы можете периодически запускать helm upgrade с флагом --set, чтобы изменить значение в ваших значениях yaml. Затем Хелм должен обновить ваш секрет.

helm upgrade <release_name> --set adminPassword=$(openssl rand -hex 16)

Вы можете использовать другие средства для создания вашего секрета, но мне нравится использовать openssl:

$ openssl rand -hex 16
0fec302c52e2d1d2185f404d33be91fb
...