Spec-Zone.ru › Ansible

Модуль kubernetes.core.helm – Управление пакетами Kubernetes с помощью менеджера пакетов Helm

Примечание

Этот модуль является частью коллекции kubernetes.core (версия 3.2.0).

Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install kubernetes.core. Для использования этого модуля требуются дополнительные зависимости, см. Требования для получения подробностей.

Чтобы использовать его в книге задач, укажите: kubernetes.core.helm.

Новое в kubernetes.core 0.11.0

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Описание

  • Установка, обновление, удаление пакетов с помощью менеджера пакетов Helm.

Примечание

Этот модуль имеет соответствующий плагин действий.

Требования

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

  • helm (https://github.com/helm/helm/releases)
  • yaml (https://pypi.org/project/PyYAML/)
END_OF_DOCUMENT_MARKER

Параметры

Параметр

Комментарии

api_key

string

added in kubernetes.core 1.2.0

Токен, используемый для аутентификации с API. Может быть также указан через переменную среды K8S_AUTH_API_KEY.

atomic

boolean

Если установлено, процесс установки удаляет установку в случае сбоя.

Варианты:

  • false ← (default)
  • true

binary_path

path

Путь к исполняемому файлу helm.

ca_cert

aliases: ssl_ca_cert

path

added in kubernetes.core 1.2.0

Путь к сертификату CA, используемому для аутентификации с API. Для предотвращения ошибок проверки сертификатов необходимо указать полную цепочку сертификатов. Может быть также указан через переменную среды K8S_AUTH_SSL_CA_CERT.

chart_ref

path

Ссылка на chart в репозитории.

Путь к упакованному chart.

Путь к распакованной директории chart.

Абсолютный URL.

Обязательно, когда release_state установлен в present.

chart_repo_url

string

URL репозитория chart, где находится запрашиваемый chart.

chart_version

string

Версия chart для установки. Если не указано, устанавливается последняя версия.

context

aliases: kube_context

string

Параметр Helm для указания контекста kubeconfig для использования.

Если значение не указано в задаче, вместо него будет использовано значение переменной среды K8S_AUTH_CONTEXT.

create_namespace

boolean

added in kubernetes.core 0.11.1

Создать пространство имен для релиза, если оно отсутствует.

Варианты:

  • false ← (default)
  • true

dependency_update

aliases: dep_up

boolean

added in kubernetes.core 2.4.0

Выполнить helm dependency update CHART отдельно перед операцией.

Выполнить --dependency-update встраиваемым способом с помощью команды helm install. Эта функция пока не поддерживается с командой helm upgrade.

Поэтому следует использовать параметр dependency_update с включенным параметром replace при указании chart_repo_url.

Для параметра dependency_update требуется добавить блок dependencies в файл Chart.yaml/requirements.yaml.

Для получения дополнительной информации посетите https://helm.sh/docs/helm/helm_dependency/

Варианты:

  • false ← (default)
  • true

disable_hook

boolean

Параметр Helm для отключения хука при установке/обновлении/удалении.

Варианты:

  • false ← (default)
  • true

force

boolean

Параметр Helm для принудительной переустановки, игнорируется при новой установке.

Варианты:

  • false ← (default)
  • true

history_max

integer

added in kubernetes.core 2.2.0

Ограничение максимального количества сохраненных ревизий на релиз.

взаимоисключающий с replace.

host

string

added in kubernetes.core 1.2.0

Укажите URL для доступа к API. Может быть также указан через переменную среды K8S_AUTH_HOST.

kubeconfig

aliases: kubeconfig_path

any

Параметр Helm для указания пути к kubeconfig для использования.

Если значение не указано в задаче, вместо него будет использовано значение переменной среды K8S_AUTH_KUBECONFIG.

Конфигурация может быть предоставлена в виде словаря. Добавлено в версии 2.4.0.

post_renderer

string

added in kubernetes.core 2.4.0

Путь к исполняемому файлу, который будет использоваться для постобработки.

purge

boolean

Удалить релиз из хранилища и освободить его имя для последующего использования.

Варианты:

  • false
  • true ← (default)

имя_релиза

псевдонимы: имя

строка / обязательно

Имя релизной версии для управления.

пространство_имен_релиза

псевдонимы: пространство_имен

строка / обязательно

Пространство имен Kubernetes, в котором должен быть установлен шаблон.

состояние_релиза

псевдонимы: состояние

строка

Желаемое состояние релиза.

Выборы:

  • "present" ← (по умолчанию)
  • "absent"

значения_релиза

псевдонимы: значения

словарь

Значения для передачи шаблону.

По умолчанию: {}

заменить

логическое

добавлен в kubernetes.core 1.11.0

Использовать заданное имя только в том случае, если это имя удалённого релиза, которое сохранилось в истории.

Это небезопасно в производственной среде.

Исключительно с history_max.

Выборы:

  • false ← (по умолчанию)
  • true

сбросить_значения

логическое

добавлен в kubernetes.core 2.5.0

При обновлении пакета сбросить значения на те, что встроены в шаблон.

Выборы:

  • false
  • true ← (по умолчанию)

использовать_значения

логическое

добавлен в kubernetes.core 2.5.0

При обновлении пакета указывает, нужно ли использовать значения последнего релиза и объединить любые переопределения из параметров значения_релиза, файлы_значений или установить_значения.

Если сбросить_значения установлено в True, это игнорируется.

Выборы:

  • false
  • true

установить_значения

список / элементы=словарь

добавлен в kubernetes.core 2.4.0

Значения для передачи конфигурации шаблона

значение

строка / обязательно

Значение для передачи конфигурации шаблона (например, фаза=prod).

тип_значения

строка

Используйте raw для установки отдельных значений.

Используйте string для принудительного преобразования значения в строку.

Используйте file для установки отдельных значений из файла, когда само значение слишком длинное для командной строки или генерируется динамически.

Используйте json для установки JSON-значений (скаляры/объекты/массивы). Эта функция требует helm>=3.10.0.

Выборы:

  • "raw" ← (по умолчанию)
  • "string"
  • "json"
  • "file"

пропустить_crds

логическое

добавлен в kubernetes.core 1.2.0

Пропустить пользовательские определения ресурсов при установке или обновлении.

Выборы:

  • false ← (по умолчанию)
  • true

тайм-аут

строка

добавлен в kubernetes.core 2.3.0

Значение Go duration (описано здесь https://pkg.go.dev/time#ParseDuration) для ожидания завершения команд Kubernetes. По умолчанию 5m0s.

Аналогично wait_timeout, но не требует активации wait.

Взаимоисключительно с wait_timeout.

обновить_кеш_репозитория

логическое

Запуск helm repo update перед операцией. Может быть выполнен в качестве части установки пакета или как отдельный шаг (см. Примеры).

Выборы:

  • false ← (по умолчанию)
  • true

валидировать_сертификаты

псевдонимы: проверять_ssl

логическое

добавлен в kubernetes.core 1.2.0

Нужно ли проверять SSL-сертификаты API-сервера. Также можно указать через K8S_AUTH_VERIFY_SSL переменную окружения.

Выборы:

  • false
  • true ← (по умолчанию)

файлы_значений

список / элементы=строка

добавлен в kubernetes.core 1.1.0

Файлы значений для передачи шаблону.

Пути будут считываться с файловой системы целевого хоста, а не хоста, на котором запущен Ansible.

Параметр values_files обрабатывается до параметра values, если оба используются.

Пути обрабатываются в порядке их указания.

По умолчанию: []

wait

boolean

Когда release_state установлено в present, подождите, пока все Pod, PVC, Service и минимальное количество Pod в Deployment будут в состоянии готовности, прежде чем отмечать релиз как успешный.

Когда release_state установлено в absent, будет ожидать, пока все ресурсы не будут удалены перед возвратом. Он будет ждать столько времени, сколько указано в wait_timeout. Эта функция требует helm>=3.7.0. Добавлено в версии 2.3.0.

Варианты:

  • false ← (по умолчанию)
  • true

wait_timeout

string

Таймаут при включенном параметре wait (helm2 — количество секунд, helm3 — продолжительность).

Использование wait_timeout для ожидания завершения команд Kubernetes устарело и будет удалено после 2022-12-01.

Примечания

Примечание

  • Проверка идемпотентности по умолчанию может не обнаруживать изменения, когда release_state установлено в present и chart_repo_url определено. Установите helm diff >= 3.4.1 для лучших результатов.

Примеры

- name: Deploy latest version of Prometheus chart inside monitoring namespace (and create it)
  kubernetes.core.helm:
    name: test
    chart_ref: stable/prometheus
    release_namespace: monitoring
    create_namespace: true

# From repository
- name: Add stable chart repo
  kubernetes.core.helm_repository:
    name: stable
    repo_url: "https://kubernetes.github.io/ingress-nginx"

- name: Deploy latest version of Grafana chart inside monitoring namespace with values
  kubernetes.core.helm:
    name: test
    chart_ref: stable/grafana
    release_namespace: monitoring
    values:
      replicas: 2

- name: Deploy Grafana chart on 5.0.12 with values loaded from template
  kubernetes.core.helm:
    name: test
    chart_ref: stable/grafana
    chart_version: 5.0.12
    values: "{{ lookup('template', 'somefile.yaml') | from_yaml }}"

- name: Deploy Grafana chart using values files on target
  kubernetes.core.helm:
    name: test
    chart_ref: stable/grafana
    release_namespace: monitoring
    values_files:
      - /path/to/values.yaml

- name: Remove test release and waiting suppression ending
  kubernetes.core.helm:
    name: test
    state: absent
    wait: true

- name: Separately update the repository cache
  kubernetes.core.helm:
    name: dummy
    namespace: kube-system
    state: absent
    update_repo_cache: true

- name: Deploy Grafana chart using set values on target
  kubernetes.core.helm:
    name: test
    chart_ref: stable/grafana
    release_namespace: monitoring
    set_values:
      - value: phase=prod
        value_type: string

# From git
- name: Git clone stable repo on HEAD
  ansible.builtin.git:
    repo: "http://github.com/helm/charts.git"
    dest: /tmp/helm_repo

- name: Deploy Grafana chart from local path
  kubernetes.core.helm:
    name: test
    chart_ref: /tmp/helm_repo/stable/grafana
    release_namespace: monitoring

# From url
- name: Deploy Grafana chart on 5.6.0 from url
  kubernetes.core.helm:
    name: test
    chart_ref: "https://github.com/grafana/helm-charts/releases/download/grafana-5.6.0/grafana-5.6.0.tgz"
    release_namespace: monitoring

# Using complex Values
- name: Deploy new-relic client chart
  kubernetes.core.helm:
    name: newrelic-bundle
    chart_ref: newrelic/nri-bundle
    release_namespace: default
    force: True
    wait: True
    replace: True
    update_repo_cache: True
    disable_hook: True
    values:
      global:
        licenseKey: "{{ nr_license_key }}"
        cluster: "{{ site_name }}"
      newrelic-infrastructure:
        privileged: True
      ksm:
        enabled: True
      prometheus:
        enabled: True
      kubeEvents:
        enabled: True
      logging:
        enabled: True

# Deploy latest version
- name: Deploy latest version of Grafana chart using reuse_values
  kubernetes.core.helm:
    name: test
    chart_ref: stable/grafana
    release_namespace: monitoring
    reuse_values: true
    values:
      replicas: 2
      version: 3e8ec0b2dffa40fb97d5342e4af887de95faa8c61a62480dd7f8aa03dffcf533

Значения возврата

Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:

Ключ

Описание

command

string

Полная команда `helm`, сгенерированная этим модулем. В случае необходимости повторного запуска команды вне модуля или при отладке проблемы.

Возвращается: всегда

Пример: "helm upgrade ..."

status

complex

Словарь выходных данных статуса

Возвращается: при успешном создании/обновлении/уже развернутом

appversion

string

Версия развернутого приложения

Возвращается: всегда

chart

string

Название и версия шаблона

Возвращается: всегда

name

string

Имя релиза

Возвращается: всегда

namespace

string

Пространство имён, где развернут релиз

Возвращается: всегда

revision

string

Номер обновления релиза

Возвращается: всегда

status

string

Статус релиза (может быть DEPLOYED, FAILED, …)

Возвращается: всегда

updated

string

Дата последнего обновления

Возвращается: всегда

values

string

Словарь значений, используемых для развертывания

Возвращается: всегда

stderr

string

Полный вывод стандартного потока ошибок `helm` в случае необходимости отображения или проверки журнала событий

Возвращается: всегда

Пример: ""

stdout

string

Полный вывод стандартного потока вывода `helm` в случае необходимости отображения или проверки журнала событий

Возвращается: всегда

Пример: ""

Авторы

  • Lucas Boisserie (@LucasBoisserie)
  • Matthieu Diehr (@d-matt)

Ссылки на сборку

  • Система отслеживания ошибок
  • Репозиторий (источники)

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/kubernetes/core/helm_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API