Создавайте индивидуальные секреты 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