Есть ли способ задать порядок деплоя helm charts?

Да, в 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 будет следовать порядку деплоя, установленному в зависимости от значений аннотаций.