Ложное условие зависимости файла Kubernetes Helm для диаграммы. Yaml - PullRequest
0 голосов
/ 08 июня 2018

Я использую файл Kubernetes Helm needs.yaml для добавления зависимостей.Основываясь на условии values.yaml, он создаст модули зависимостей.

Здесь я хочу выполнить необходимые зависимости, когда apache.enabled == false

values.yaml

external_apache:
  enabled: false

Файл needs.yaml

dependencies:
- name:
  version:
  repository:
  condition: external_apache.enabled

Как добавить ложное условие?

Я пробовал описанное ниже условие, но оно не работает:

condition: external_apache.enabled == false

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

Исходя из документации и ответа @VAS, ответ на ваш вопрос невозможно использовать отрицание условия в require.yaml .

0 голосов
/ 29 декабря 2018

Версия руля v2.2.2 работала, а v2.10.0 - нет.

0 голосов
/ 08 июня 2018

Какую версию Helm вы используете?

Была похожая проблема в репозитории Kubernetes на GitHub:

Невозможно использовать условие в 'require.yaml' # 2111

Решением было обновить Helm до v2.2.0 +.В этой версии была добавлена ​​поддержка условий.

В документации Helm или репозиторий есть объяснение того, как работает условие: (Я добавил несколькокомментарии для облегчения чтения)

Условие - поле условия содержит один или несколько путей YAML (разделенных запятыми).Теги. Поле тегов представляет собой список меток YAML, которые нужно связать с этой диаграммой.

# parentchart/requirements.yaml
dependencies:
      - name: subchart1
        repository: http://localhost:10191
        version: 0.1.0
        condition: subchart1.enabled, global.subchart1.enabled
        tags:
          - front-end        #(chart should be disabled because the tags.front-end is “false” in values.yaml file , but ...)
          - subchart1        #(subchart1.enabled condition path is present in values.yaml file and it has "true" value...)
                             #(this condition, so it overrides tag front-end and this chart will be enabled)

      - name: subchart2
        repository: http://localhost:10191
        version: 0.1.0
        condition: subchart2.enabled,global.subchart2.enabled
                  #(as soon as no one from these paths is exists in values.yaml this condition has ho effect)

        tags:
          - back-end        #(chart should be enabled because the tags.back-end is “true” in values.yaml file)
          - subchart2       #(and there is no condition path found in values.yaml to override it)

Если этот путь условия существует в values верхнего родительского элемента и разрешается в логическое значениеграфик будет включен или отключен на основе этого логического значения.Оценивается только первый действительный путь, найденный в списке, и , если путей не существует, условие не действует .

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

# parentchart/values.yaml

subchart1:
  enabled: true          #(this could be found from requirements as subchart1.enabled and override tags in this case)
tags:
  front-end: false      #(this disables charts with tag front-end)
  back-end: true        #(this enables charts with tag back-end)

Логика и последовательность условий и тегов описаны в Теги и разрешение условий :

  • Условия (если они установлены в значениях) всегда имеют приоритет над тегами .Первый существующий путь условия выигрывает, а последующие для этой диаграммы игнорируются.
  • Теги оцениваются как «если какой-либо из тегов диаграммы верен, тогда включите диаграмму».
  • Теги и условиязначения должны быть установлены в значениях верхнего родителя.
  • Теги: ключ в значениях должен быть ключом верхнего уровня. Глобальные и вложенные теги: таблицы в настоящее время не поддерживаются.

Вы также можете установить теги и условия в командной строке:

helm install --set tags.front-end=true --set subchart2.enabled=false
...