Лучшие практики для управления несколькими средами с помощью Helm
Мне неясно, каковы лучшие практики для управления приложением с несколькими средами, которые совместно используют шаблоны файлов, но имеют разные переменные для каждой среды. Например, мы разворачиваем среду разработки, подготовки и производства. Они используют одни и те же шаблоны управления, но у меня разные переменные для каждой среды.
Текущая структура файла:
helm/
├── templates/
│ ├── _helpers.tpl
│ ├── deploy.yaml
│ └── ingress.yaml
│ └── service.yaml
│ └── managed-certs.yaml
│ └── NOTES.txt
├── Chart.yaml
├── values-production.yaml
├── values-staging.yaml
├── values-develop.yaml
Сейчас у меня есть два разных файла значений для каждой среды, и я передаю следующееhelm install . --values=values-production.yaml
Однако мы не можем правильно управлять версиями с помощью вышеизложенного.
Я не могу найти какой-либо надежной документации о том, как лучше всего управлять несколькими средами для приложения. Я наткнулся helmfile
который, кажется, решает эту проблему, но их документация неясна. Экосистема для управления kubernetes озадачивает, любая помощь приветствуется.
1 ответ
Weave Flux - отличный способ управлять версиями вашего изображения и графиков. Он использует подход, основанный на gitops, где все управляется через обновления в вашем хранилище кода (для управления версиями диаграмм) или в хранилище изображений (для управления версиями приложений).
Weave Flux: https://github.com/weaveworks/flux
Обсуждение Gitops на сайте Weaveworks: https://www.weave.works/technologies/gitops/
Пример реализации с использованием helm и нескольких сред: https://github.com/stefanprodan/gitops-helm/blob/master/README.md