Я закладываю фундамент для нового проекта, в котором у нас будет приложение, работающее на Google Kubernetes Engine с несколькими средами (разработка, подготовка, производство).Каждая среда - это собственный проект GC.
Я пишу несколько файлов манифеста, и я хотел бы абстрагироваться от любых специфических для среды значений, чтобы их можно было повторно использовать в зависимости от того, какую среду (проект) обновляли / развертывалик.
Я создал значения в «Тайнах Кубернетеса», и преобразовать их в ENV просто (см. DATABASE_URL
).Однако, если бы я хотел использовать переменную для значения изображения контейнера: gcr.io/my-app-production-123:latest
, как бы я передал значение из секрета?
Является ли это правильным подходом для абстрагирования значений среды от манифестафайлы?Спасибо!
apiVersion: batch/v1
kind: Job
metadata:
name: db-migrate
spec:
completions: 1
template:
metadata:
name: db-migrate
spec:
restartPolicy: Never
containers:
- name: db-migrate
# how can I reference secret/env for the value of image:?
image: gcr.io/my-app-production-242920:latest
args: ["bundle", "exec", "rake", "db:create", "db:migrate"]
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: app-secrets
key: DATABASE_URL