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