community.kubernetes.helm – Manages Kubernetes packages with the Helm package manager
Note
This plugin is part of the community.kubernetes collection (version 1.1.1).
To install it use: ansible-galaxy collection install community.kubernetes.
To use it in a playbook, specify: community.kubernetes.helm.
New in version 0.11.0: of community.kubernetes
Synopsis
- Install, upgrade, delete packages with the Helm package manager.
Note
This module has a corresponding action plugin.
Requirements
The below requirements are needed on the host that executes this module.
Parameters
| Parameter | Choices/Defaults | Comments | 
|---|---|---|
| atomic  boolean  | 
 | If set, the installation process deletes the installation on failure. | 
| binary_path  path  | The path of a helm binary to use. | |
| chart_ref  path  | chart_reference on chart repository. path to a packaged chart. path to an unpacked chart directory. absolute URL. Required when release_state is set to  present. | |
| chart_repo_url  string  | Chart repository URL where to locate the requested chart. | |
| chart_version  string  | Chart version to install. If this is not specified, the latest version is installed. | |
| context  string  | Helm option to specify which kubeconfig context to use. If the value is not specified in the task, the value of environment variable  K8S_AUTH_CONTEXTwill be used instead.aliases: kube_context | |
| create_namespace  boolean   added in 0.11.1 of community.kubernetes  | 
 | Create the release namespace if not present. | 
| disable_hook  boolean  | 
 | Helm option to disable hook on install/upgrade/delete. | 
| force  boolean  | 
 | Helm option to force reinstall, ignore on new install. | 
| kubeconfig  path  | Helm option to specify kubeconfig path to use. If the value is not specified in the task, the value of environment variable  K8S_AUTH_KUBECONFIGwill be used instead.aliases: kubeconfig_path | |
| purge  boolean  | 
 | Remove the release from the store and make its name free for later use. | 
| release_name  string / required  | Release name to manage. aliases: name | |
| release_namespace  string / required  | Kubernetes namespace where the chart should be installed. aliases: namespace | |
| release_state  string  | 
 | Desirated state of release. aliases: state | 
| release_values  dictionary  | Default: {} | Value to pass to chart. aliases: values | 
| replace  boolean   added in 1.11.0 of community.kubernetes  | 
 | Reuse the given name, only if that name is a deleted release which remains in the history. This is unsafe in production environment. | 
| update_repo_cache  boolean  | 
 | Run  helm repo updatebefore the operation. Can be run as part of the package installation or as a separate step. | 
| values_files  list / elements=string   added in 1.1.0 of community.kubernetes  | Default: [] | Value files to pass to chart. Paths will be read from the target host's filesystem, not the host running ansible. values_files option is evaluated before values option if both are used. Paths are evaluated in the order the paths are specified. | 
| wait  boolean  | 
 | Wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. | 
| wait_timeout  string  | Timeout when wait option is enabled (helm2 is a number of seconds, helm3 is a duration). | 
Examples
- name: Deploy latest version of Prometheus chart inside monitoring namespace (and create it)
  community.kubernetes.helm:
    name: test
    chart_ref: stable/prometheus
    release_namespace: monitoring
    create_namespace: true
# From repository
- name: Add stable chart repo
  community.kubernetes.helm_repository:
    name: stable
    repo_url: "https://kubernetes-charts.storage.googleapis.com"
- name: Deploy latest version of Grafana chart inside monitoring namespace with values
  community.kubernetes.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
  community.kubernetes.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
  community.kubernetes.helm:
    name: test
    chart_ref: stable/grafana
    release_namespace: monitoring
    values_files:
      - /path/to/values.yaml
- name: Remove test release and waiting suppression ending
  community.kubernetes.helm:
    name: test
    state: absent
    wait: true
# 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
  community.kubernetes.helm:
    name: test
    chart_ref: /tmp/helm_repo/stable/grafana
    release_namespace: monitoring
# From url
- name: Deploy Grafana chart on 5.0.12 from url
  community.kubernetes.helm:
    name: test
    chart_ref: "https://kubernetes-charts.storage.googleapis.com/grafana-5.0.12.tgz"
    release_namespace: monitoring
   Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Returned | Description | |
|---|---|---|---|
| command  string  | always | Full `helm` command built by this module, in case you want to re-run the command outside the module or debug a problem. Sample: helm upgrade ... | |
| status  complex  | on success Creation/Upgrade/Already deploy | A dictionary of status output | |
| appversion  string  | always | Version of app deployed | |
| chart  string  | always | Chart name and chart version | |
| name  string  | always | Name of the release | |
| namespace  string  | always | Namespace where the release is deployed | |
| revision  string  | always | Number of time where the release has been updated | |
| status  string  | always | Status of release (can be DEPLOYED, FAILED, ...) | |
| updated  string  | always | The Date of last update | |
| values  string  | always | Dict of Values used to deploy | |
| stderr  string  | always | Full `helm` command stderr, in case you want to display it or examine the event log | |
| stdout  string  | always | Full `helm` command stdout, in case you want to display it or examine the event log | |
Authors
- Lucas Boisserie (@LucasBoisserie)
- Matthieu Diehr (@d-matt)
    © 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.10/collections/community/kubernetes/helm_module.html