Да, в Helm существует способ задания порядка деплоя Helm charts. Для этого можно использовать модуль зависимости (dependency) в файле Chart.yaml
и аннотацию helm.sh/hook-weight
в манифесте для каждого ресурса.
Модуль зависимости позволяет указать, от чего зависит текущий Helm chart. В файле Chart.yaml
необходимо добавить секцию dependencies
, в которой указать список зависимостей в формате:
dependencies: - name: chart1 version: 1.0.0 repository: https://example.com/charts - name: chart2 version: 1.2.0 repository: https://example.com/charts
Здесь name
- это название зависимого Helm chart, version
- версия зависимого Helm chart, repository
- URL-адрес репозитория, из которого загружается зависимый Helm chart.
Затем необходимо установить зависимости, выполнив команду helm dependency update
. Это загрузит зависимые charts в папку charts
внутри текущего Helm chart.
Когда зависимости заданы, можно задать порядок деплоя с помощью аннотации helm.sh/hook-weight
. Эта аннотация может быть добавлена к любому ресурсу в манифесте Helm chart. Большее значение helm.sh/hook-weight
указывает, что ресурс должен быть развернут позже.
Например, если вы хотите, чтобы ресурс из первого зависимого Helm chart развернулся раньше остальных, вы можете добавить аннотацию helm.sh/hook-weight: "1"
для этого ресурса в его манифесте. Аннотацию можно добавить в различные типы ресурсов, включая Deployment, Service и другие.
apiVersion: v1 kind: Service metadata: name: my-service annotations: helm.sh/hook-weight: "1" ...
При обновлении Helm chart с учетом аннотаций helm.sh/hook-weight
Helm будет следовать порядку деплоя, установленному в зависимости от значений аннотаций.