Переопределить values.yml, используя расширение helm для ansible - PullRequest
0 голосов
/ 01 марта 2019

Я хочу создать книгу игр для установки внешних рулевых карт, предоставляемых архивом ZIP от IBM.Нам необходимо переопределить некоторые значения из values.yml пользовательскими (например, реестр хоста в докер.

Пример из значений IBMs .yml

image:
  pullPolicy: IfNotPresent
  repository: artifactory.swg.usma.ibm.com:6562

Поскольку был установлен непубличный репозиторийIBM, я загрузил изображения (загруженные из выпусков IBM) в свой настраиваемый реестр registry.example.com и хочу установить его в моей книге игр:

- name: CNX Bootstrap
  helm:
    # Port forwarding from tiller to localhost
    host: localhost
    state: present
    name: bootstrap-test
    namespace: "{{namespace}}"
    chart: 
      name: bootstrap
      source:
        type: directory
        location: /install/component-pack/IC-ComponentPack-6.0.0.7/microservices_connections/hybridcloud/helmbuilds/bootstrap
    values: 
      image.repository: "registry.example.com"

Это не работает, журналы модуля говорят:

Не удалось получить изображение "artifactory.swg.usma.ibm.com:6562/bootstrap:20190204-022029": ошибка rpc: code = Unknown desc = Get https://artifactory.swg.usma.ibm.com:6562/v1/_ping: Служба недоступна

Таким образом, он все еще использует неправильный реестр, и мой пользовательский values, похоже, игнорируется. Используя helm cli, я могу переопределить, используя переключатель --set, например:

helm install --name=bootstrap /install/component-pack/IC-ComponentPack-6.0.0.7/microservices_connections/hybridcloud/helmbuilds/bootstrap-0.1.0-20190204-022029.tgz --set image.repository=registry.example.com

Как я могу переопределить значения диаграммы, как переключатель --set в Ansible?

Документация для модуля не предоставляет никакой информации. Я только нашел, что pyhelm используется. Но я не мог найти способ переопределитьде значения по умолчанию.

1 Ответ

0 голосов
/ 07 апреля 2019

Когда PyHelm получает значения, переданные из определения диаграммы Ansible, он передается как словарь, который преобразуется в yaml.Tiller (серверный компонент Helm) ожидает, что передаваемые значения yaml останутся вложенными.Таким образом, вам нужно хранить их как вложенный словарь в ваших определениях Ansible.

В вашем случае это будет выглядеть примерно так:

- name: CNX Bootstrap
  helm:
    # Port forwarding from tiller to localhost
    host: localhost
    state: present
    name: bootstrap-test
    namespace: "{{namespace}}"
    chart: 
      name: bootstrap
      source:
        type: directory
        location: /install/component-pack/IC-ComponentPack-6.0.0.7/microservices_connections/hybridcloud/helmbuilds/bootstrap
    values: 
      image:
        repository: "registry.example.com"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...