Развертывание Helm Charts в порядке зависимостей - PullRequest
4 голосов
/ 13 мая 2019

Я развертываю несколько вспомогательных схем руля в кластере Кубернетес через руль и руль. Как я могу убедиться, что конкретная диаграмма полностью устанавливает свои контейнеры перед началом установки других диаграмм и их контейнеров?

Я посмотрел на require.yaml и крючки, ни один из них, похоже, не может быть решением, которое я ищу.

ParentDir/
    Chart.yaml
    requirements.yaml
    values.yaml
    charts/
    |
    |
    —- App1
        Chart.yaml
        values.yaml
        templates/
    —- App2
        Chart.yaml
        values.yaml
        templates/
    .
    .
    .
    —- AppN
        Chart.yaml
        values.yaml
        templates/

У меня есть несколько вложенных диаграмм, и я хочу убедиться, что контейнеры App1 установлены и готовы, прежде чем helm установит другие диаграммы и свои контейнеры.

Ответы [ 3 ]

0 голосов
/ 14 мая 2019

Наткнулся на ту же проблему в последнее время. У меня был RabbitMQ в качестве пакета Helm и два дополнительных пакета Helm, которые я создал локально.

Я хотел собрать все три в один пакет Helm, но не нашел способа заказать установку диаграмм Helm, поскольку, например, двум другим пакетам нужны учетные данные RabbitMQ.

Я обнаружил, что использование хуков приводит к более сложному решению, чем необходимо, и я предпочел просто устанавливать их отдельно, в нужном порядке, в то время как я могу делать любые ручные изменения между шагами.

Вот статья , которая обсуждает эту тему и может быть вам интересна.

Теперь может быть способ правильно упорядочить зависимости, если вы захотите попробовать Рулевой . Я не могу судить об этом, так как я только что узнал об этом, но из его README в разделе Особенности:

Определите порядок управления выпусками: вы можете определить приоритеты, при которых выпуски управляются рулевым (полезно для зависимостей).

Здесь - соответствующая документация.

0 голосов
/ 14 мая 2019

Вы должны изучить helmfile и разбить свой стек на один helmfile для каждого приложения. Поскольку helm-файлы внутри папок применяются в алфавитном порядке, вы можете обеспечить порядок через соглашения об именах файлов.

Структура файла:

helmfile.d/
  00-app-1.yaml
  01-app-2.yaml
  02-app-n.yaml

Выполнить с помощью этой команды: helmfile -f path/to/directory

0 голосов
/ 14 мая 2019

Я не думаю, что есть что-то со стороны рулевой диаграммы, но, вероятно, вы можете решить это с помощью контейнеров init.

если в ваших диаграммах есть база данных, которая используется приложением и выходит из строя, вы можете использовать контейнер init для проверки завершения жизненного цикла модуля.

Более подробно вы можете сослаться на это: https://github.com/helm/helm/issues/1713

...