kubernetes.core.helm 模块 – 使用 Helm 包管理器管理 Kubernetes 包
注意
此模块是 kubernetes.core 集合 (版本 5.0.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install kubernetes.core
。您需要其他要求才能使用此模块,有关详细信息,请参见 要求。
要在 playbook 中使用它,请指定:kubernetes.core.helm
。
kubernetes.core 0.11.0 中的新增功能
概要
使用 Helm 包管理器安装、升级、删除包。
注意
此模块具有相应的 action 插件。
要求
执行此模块的主机需要以下要求。
参数
参数 |
注释 |
---|---|
用于对 API 进行身份验证的令牌。也可以通过 |
|
如果设置,则安装过程会在失败时删除安装。 选项
|
|
要使用的 helm 二进制文件的路径。 |
|
用于对 API 进行身份验证的 CA 证书的路径。必须提供完整的证书链,以避免证书验证错误。也可以通过 |
|
图表存储库上的图表引用。 打包图表的路径。 解压图表目录的路径。 绝对URL。 当 *release_state* 设置为 |
|
用于查找所需图表的图表存储库 URL。 |
|
要安装的图表版本。如果未指定,则安装最新版本。 |
|
指定要使用的 kubeconfig 上下文的 Helm 选项。 如果在任务中未指定该值,则将使用环境变量 |
|
如果发行版命名空间不存在,则创建它。 选项
|
|
在操作之前运行独立的 使用 因此,当启用 *replace* 选项并指定 *chart_repo_url* 时,我们应该考虑使用 *dependency_update* 选项。 *dependency_update* 选项需要在 更多信息请访问 https://helm.kubernetes.ac.cn/docs/helm/helm_dependency/ 选项
|
|
Helm 选项,用于禁用安装/升级/删除时的钩子。 选项
|
|
Helm 选项,用于强制重新安装,在新安装时忽略。 选项
|
|
限制每个发行版保存的修订版最大数量。 与 |
|
提供用于访问 API 的 URL。也可以通过 |
|
指定要使用的 kubeconfig 路径的 Helm 选项。 如果在任务中未指定该值,则将使用环境变量 配置可以作为字典提供。2.4.0 版本中新增。 |
|
要用于后期渲染的可执行文件的路径。 |
|
从存储库中删除发行版,并使其名称可供以后使用。 选项
|
|
要管理的发行版名称。 |
|
应该安装图表的 Kubernetes 命名空间。 |
|
发行版的所需状态。 选项
|
|
要传递给图表的 value。 默认值: |
|
仅当该名称是已删除但保留在历史记录中的发行版时,才重用给定的名称。 这在生产环境中是不安全的。 与 选项
|
|
升级包时,将值重置为图表中内置的值。 选项
|
|
升级包时,指定是否重用上次发布的值并将参数release_values、values_files或set_values中的任何覆盖合并。 如果reset_values设置为 选项
|
|
传递给图表配置的值 |
|
传递给图表配置的值(例如 phase=prod)。 |
|
使用 使用 使用 使用 选项
|
|
安装或升级时跳过自定义资源定义。 选项
|
|
一个 Go 持续时间 (此处描述 https://pkg.go.dev/time#ParseDuration) 值,用于等待 Kubernetes 命令完成。默认为 5m0s。 类似于 与 |
|
在操作之前运行 选项
|
|
是否验证 API 服务器的 SSL 证书。也可以通过 选项
|
|
传递给图表的 value 文件。 路径将从目标主机的文件系统读取,而不是运行 Ansible 的主机。 如果同时使用 values_files 和 values 选项,则 values_files 选项优先于 values 选项。 路径按指定顺序进行评估。 默认值: |
|
当release_state设置为 当release_state设置为 选项
|
|
启用 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
返回值
常见的返回值已在此处记录,以下是此模块特有的字段
键 |
描述 |
---|---|
此模块构建的完整 `helm` 命令,以防您想在模块外部重新运行命令或调试问题。 返回:始终 示例: |
|
状态输出的字典 返回:成功创建/升级/已部署 |
|
已部署应用程序的版本 返回:始终 |
|
图表名称和图表版本 返回:始终 |
|
发布的名称 返回:始终 |
|
部署发布的命名空间 返回:始终 |
|
发布已更新的次数 返回:始终 |
|
发布的状态(可以是 DEPLOYED、FAILED 等…) 返回:始终 |
|
上次更新日期 返回:始终 |
|
用于部署的值字典 返回:始终 |
|
完整的 `helm` 命令 stderr,以防您想显示它或检查事件日志 返回:始终 示例: |
|
完整的 `helm` 命令 stdout,以防您想显示它或检查事件日志 返回:始终 示例: |