Лучшие практики для управления несколькими средами с помощью 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

Другие вопросы по тегам