Модуль kubernetes.core.helm — управление пакетами Kubernetes с помощью пакетного менеджера Helm
Примечание
Этот модуль входит в коллекцию kubernetes.core (версия 6.4.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install kubernetes.core. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: kubernetes.core.helm.
Добавлено в kubernetes.core 0.11.0
Краткое описание
- Установка, обновление и удаление пакетов с помощью пакетного менеджера Helm.
Примечание
Для этого модуля имеется соответствующий плагин действий.
Требования
На хосте, где выполняется этот модуль, должны быть установлены следующие компоненты.
- helm >= 3.0.0 (https://github.com/helm/helm/releases)
- yaml (https://pypi.org/project/PyYAML/)
Параметры
Параметр | Комментарии |
|---|---|
api_key строка добавлено в kubernetes.core 1.2.0 | Токен для аутентификации в API. Также можно указать с помощью переменной окружения |
atomic логическое значение | Если параметр включен, при сбое установки она удаляется. Варианты:
|
binary_path путь | Путь к используемому двоичному файлу Helm. |
ca_cert псевдонимы: ssl_ca_cert путь добавлено в kubernetes.core 1.2.0 | Путь к сертификату CA для аутентификации в API. Чтобы избежать ошибок проверки сертификата, необходимо указать всю цепочку сертификатов. Также можно указать с помощью переменной окружения |
chart_ref путь | Ссылка на чарт в репозитории чартов. Путь к упакованному чарту. Путь к каталогу с распакованным чартом. Абсолютный URL. Обязательный параметр, если для release_state задано значение |
chart_repo_url строка | URL репозитория чартов, в котором следует найти запрошенный чарт. |
chart_version строка | Версия устанавливаемого чарта. Если не указана, устанавливается последняя версия. |
context псевдонимы: kube_context строка | Параметр Helm, задающий контекст kubeconfig для использования. Если значение не указано в задаче, вместо него используется значение переменной окружения |
create_namespace логическое значение добавлено в kubernetes.core 0.11.1 | Создать пространство имён релиза, если оно отсутствует. Варианты:
|
dependency_update псевдонимы: dep_up логическое значение добавлено в kubernetes.core 2.4.0 | Выполнить отдельную команду Выполнить встроенную команду Поэтому при указании chart_repo_url рекомендуется использовать параметр dependency_update вместе с включённым параметром replace. Для параметра dependency_update необходимо добавить блок Дополнительные сведения см. на странице https://helm.sh/docs/helm/helm_dependency/ Варианты:
|
disable_hook логическое значение | Параметр Helm, отключающий хуки при установке, обновлении или удалении. Варианты:
|
force логическое значение | Параметр Helm для принудительной переустановки; при новой установке игнорируется. Варианты:
|
history_max целое число добавлено в kubernetes.core 2.2.0 | Ограничивает максимальное количество сохраняемых ревизий для каждого релиза. Взаимоисключающий параметр с |
host строка добавлено в kubernetes.core 1.2.0 | Указывает URL для доступа к API. Также можно указать с помощью переменной окружения |
insecure_skip_tls_verify псевдонимы: skip_tls_certs_check логическое значение добавлено в kubernetes.core 5.3.0 | Отключить проверку TLS-сертификатов при загрузке чарта. Не путайте этот параметр с параметром Этот параметр доступен только для helm >= 3.16.0. Варианты:
|
kubeconfig псевдонимы: kubeconfig_path любой тип | Параметр Helm, задающий путь к используемому файлу kubeconfig. Если значение не указано в задаче, вместо него используется значение переменной окружения Конфигурацию можно передать в виде словаря. Добавлено в версии 2.4.0. |
plain_http логическое значение добавлено в kubernetes.core 6.1.0 | Использовать HTTP вместо HTTPS при работе с реестрами OCI. Требуется Helm >= 3.13.0. Варианты:
|
post_renderer строка добавлено в kubernetes.core 2.4.0 | Путь к исполняемому файлу для постобработки рендеринга. |
purge логическое значение | Удалить релиз из хранилища и освободить его имя для последующего использования. Варианты:
|
release_name псевдонимы: name строка / обязательный | Имя управляемого релиза. |
release_namespace псевдонимы: namespace строка / обязательный | Пространство имён Kubernetes, в которое следует установить чарт. |
release_state псевдонимы: state строка | Требуемое состояние релиза. Варианты:
|
release_values псевдонимы: values словарь | Значения, передаваемые чарту. По умолчанию: |
replace логическое значение добавлено в kubernetes.core 1.11.0 | Повторно использовать заданное имя, только если оно принадлежит удалённому релизу, запись о котором сохранилась в истории. Использование этого параметра в производственной среде небезопасно. Взаимоисключающий параметр с Варианты:
|
reset_then_reuse_values логическое значение добавлено в kubernetes.core 6.0.0 | При обновлении пакета сбросить значения до встроенных в чарт, применить значения последнего релиза и объединить их с переопределениями параметров Если для Для этой функции требуется helm diff >= 3.9.12. Варианты:
|
reset_values логическое значение добавлено в kubernetes.core 3.0.0 | При обновлении пакета сбросить значения до встроенных в чарт. Варианты:
|
reuse_values логическое значение добавлено в kubernetes.core 3.0.0 | При обновлении пакета указывает, следует ли повторно использовать значения последнего релиза и объединить их с переопределениями параметров release_values, values_files или set_values. Если для reset_values задано значение Варианты:
|
set_values список / элементы=словарь добавлено в kubernetes.core 2.4.0 | Значения, передаваемые в конфигурацию чарта. |
|
value строка / обязательный |
Значение, передаваемое в конфигурацию чарта (например, phase=prod). |
|
value_type строка |
Используйте Используйте Используйте Используйте Варианты:
|
skip_crds логическое значение добавлено в kubernetes.core 1.2.0 | Не устанавливать определения пользовательских ресурсов при установке или обновлении. Варианты:
|
skip_schema_validation логическое значение добавлено в kubernetes.core 6.2.0 | Отключает проверку схемы JSON для чарта и значений. Для этой функции требуется helm >= 3.16.0. Варианты:
|
take_ownership логическое значение добавлено в kubernetes.core 6.1.0 | Helm пропустит проверку аннотаций Helm и примет в управление существующие ресурсы. Для этой функции требуется helm >= 3.17.0. Варианты:
|
timeout строка добавлено в kubernetes.core 2.3.0 | Значение длительности Go (описано здесь: https://pkg.go.dev/time#ParseDuration), задающее время ожидания завершения команд Kubernetes. По умолчанию — 5m0s. Аналогично Взаимоисключающий параметр с |
update_repo_cache логическое значение | Выполнить Варианты:
|
validate_certs псевдонимы: verify_ssl логическое значение добавлено в kubernetes.core 1.2.0 | Проверять ли SSL-сертификаты сервера API. Также можно указать с помощью переменной окружения Варианты:
|
values_files список / элементы=строка добавлено в kubernetes.core 1.1.0 | Файлы значений, передаваемые чарту. Пути будут прочитаны из файловой системы целевого хоста, а не хоста, на котором выполняется Ansible. Если используются оба параметра, параметр values_files обрабатывается перед параметром values. Пути обрабатываются в указанном порядке. По умолчанию: |
wait логическое значение | Если для release_state задано значение Если для release_state задано значение Варианты:
|
wait_timeout строка | Время ожидания при включённом параметре 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
- name: Deploy Bitnami's MongoDB latest chart from OCI registry
kubernetes.core.helm:
name: test
chart_ref: "oci://registry-1.docker.io/bitnamicharts/mongodb"
release_namespace: database
# 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`, сформированная этим модулем, на случай, если вы захотите повторно выполнить её вне модуля или отладить проблему. Возвращается: всегда Пример: |
status complex | Словарь с данными о состоянии Возвращается: при успешном создании, обновлении или при уже существующем развёртывании |
|
appversion string |
Версия развёрнутого приложения Возвращается: всегда |
|
chart string |
Имя и версия чарта Возвращается: всегда |
|
name string |
Имя релиза Возвращается: всегда |
|
namespace string |
Пространство имён, в котором развёрнут релиз Возвращается: всегда |
|
release_values dictionary добавлено в kubernetes.core 6.3.0 |
Словарь значений, использованных для развёртывания. Возвращается: всегда |
|
revision string |
Количество обновлений релиза Возвращается: всегда |
|
status string |
Состояние релиза (может быть DEPLOYED, FAILED, …) Возвращается: всегда |
|
updated string |
Дата последнего обновления Возвращается: всегда |
|
values dictionary |
Словарь значений, использованных для развёртывания. Это возвращаемое значение объявлено устаревшим и будет удалено в одном из выпусков после 2027-01-08. Вместо него используйте Возвращается: всегда |
stderr string | Полный вывод команды `helm` в stderr, на случай, если вы захотите отобразить его или изучить журнал событий Возвращается: всегда Пример: |
stdout string | Полный вывод команды `helm` в stdout, на случай, если вы захотите отобразить его или изучить журнал событий Возвращается: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/kubernetes/core/helm_module.html