У нас есть репозиторий GitHub, содержащий все файлы YAML кластера Kubernetes. Когда мы хотим обновить развертывание, мы просто редактируем YAML и отправляем его на GitHub.
К сожалению, нам тогда придетсяkubectl apply -f file.yaml
Как можно автоматизировать развертывание с помощью чего-то вроде ArgoCD или, возможно, другого CD Tool?
Мы надеемся создать триггер рабочего процесса, который автоматически применит изменения файла YAML к кластеру после отправки на GitHub.
Проблема, с которой мы сталкиваемся, заключается в том, что репозиторий GitHub не является уникальным для конкретного развертывания и, как упоминалось выше, содержит все файлы YAML для всего кластера.
В настоящее время мы считаем, что единственным вариантом будет применение kubectl ко всему репозиторию GitHub, но разве это не имеет смысла, если изменился только один файл?
решение1
Я бы посмотрел наПоток. Вы можете указать Flux на корень вашего репозитория (или на определенный каталог), и он позаботится о развертывании определенных вами манифестов. Он также обнаруживает изменения, поэтому, если вы отправили изменение в свой репозиторий, Flux выкатит изменения.
ArgoCD тоже подойдет. Но поскольку вы упомянули, что репозиторий не является уникальным для конкретного развертывания и содержит манифесты для всего кластера, Flux может подойти в этом случае лучше.
Лучше всего попробовать оба или любой другой инструмент и посмотреть, что лучше всего подходит для ваших рабочих процессов.