Создавайте индивидуальные секреты Kubernetes из каталога текстовых файлов в Kustomize - PullRequest
0 голосов
/ 02 июля 2019

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

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

1 Ответ

4 голосов
/ 02 июля 2019

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

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

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

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
...