Рассмотрим вариант использования, когда у вас есть задание Jenkins, которое запускается каждые 5 минут, и в этом задании вы хотите обновить свою таблицу управления, но только при наличии изменений.
Если вы используете helmfile sync
который вызывает helm upgrade --install
каждые пять минут, вы в конечном итоге увеличиваете ревизию диаграммы каждые пять минут.
$ helm upgrade --install httpd bitnami/apache > /dev/null
$ helm list
NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
httpd 1 Thu Feb 13 11:27:14 2020 DEPLOYED apache-7.3.5 2.4.41 default
$ helm upgrade --install httpd bitnami/apache > /dev/null
$ helm list
NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
httpd 2 Thu Feb 13 11:28:39 2020 DEPLOYED apache-7.3.5 2.4.41 default
Таким образом, каждый helmfile sync
приведет к новой ревизии. Теперь, если вы запустите helmfile apply
, который сначала проверит различия, и только затем (если найден) вызовет helmfile sync
, что, в свою очередь, вызовет helm upgrade --install
, этого не произойдет.