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,以防您想显示它或检查事件日志 返回: 始终 示例:  | 
