Создавайте индивидуальные секреты Kubernetes из каталога текстовых файлов в Kustomize

У меня есть несколько секретных "переменных среды", которые я хочу добавить в кластер kubernetes. В настоящее время у меня есть каталог этих секретов, где у каждого var есть соответствующий файл, названный так же, как и переменная, которой он должен быть назначен. С помощью docker-composeэто дает мне сценарий, как for secret in .secrets/*; do export "$(basename $secret)"="$(cat $secret)" ; done

Я надеюсь избежать явного указания каждого из этих секретов в файлах kustomize. Есть ли простой способ создать один секрет на файл, указав только каталог?

1 ответ

Вот один из способов сделать это за пределами Kustomize.

Секреты могут быть использованы в качестве переменных среды в спецификации Pod с использованием valueFrom ключевое слово. Документация по этому вопросу находится по адресу https://kubernetes.io/docs/concepts/configuration/secret/.

Зная это, вы можете изменить свой скрипт для создания главного секрета и ключа для файла. Пример (не проверенный) может выглядеть примерно так:

for secret in .secrets/*; do
    literals="$literals --from-literal=$(basename $secret)=$(cat $secret)"
done

kubectl create secret generic prod-secrets "$literals"

Затем в ваших спецификациях укажите конкретный ключ из этого секрета, чтобы получить соответствующую переменную среды. Предполагая, что один из них был SECRET_USERNAME:

apiVersion: v1
kind: Pod
metadata:
  name: secret-env-pod
spec:
  containers:
  - name: mycontainer
    image: redis
    env:
      - name: SECRET_USERNAME
        valueFrom:
          secretKeyRef:
            name: prod-secrets
            key: SECRET_USERNAME
  restartPolicy: Never
Другие вопросы по тегам