Skip to content

gantsign/ansible_role_helm

Repository files navigation

Ansible Role: Helm

Tests Ansible Galaxy License

Role to download and install Helm the package manager for Kubernetes.

Requirements

  • Ansible Core >= 2.12

  • Linux Distribution

    • Debian Family

      • Debian

        • Buster (10)
        • Bullseye (11)
      • Ubuntu

        • Bionic (18.04)
        • Focal (20.04)
    • RedHat Family

      • Rocky Linux

        • 8
      • Fedora

        • 35
    • SUSE Family

      • openSUSE

        • 15.5
    • Note: other versions are likely to work but have not been tested.

Role Variables

The following variables will change the behavior of this role (default values are shown below):

# Helm version number
helm_version: '3.12.2'

# The CPU architecture of the Helm executable to install
helm_architecture: 'amd64'

# Mirror to download Helm from
helm_mirror: 'https://get.helm.sh'

# Dir where Helm should be installed
helm_install_dir: '/usr/local/share/helm'

# Directory to store files downloaded for Helm
helm_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"

Example Playbook

- hosts: servers
  roles:
    - role: gantsign.helm

Tab Completion for Zsh

Using Ansible

We recommend using the gantsign.antigen role to enable tab completion for Helm (this must be configured for each user).

- hosts: servers
  roles:
    - role: gantsign.helm

    - role: gantsign.antigen
      users:
        - username: example
          antigen_libraries:
            - name: oh-my-zsh
          antigen_bundles:
            # Oh My Zsh Helm plugin
            - name: helm

Using Antigen

If you prefer to use Antigen directly add the following to your Antigen configuration:

antigen use oh-my-zsh
antigen bundle helm

Manual configuration

To manually configure Zsh add the following to your .zshrc:

eval "$(helm completion zsh)"

More Roles From GantSign

You can find more roles from GantSign on Ansible Galaxy.

Development & Testing

This project uses the following tooling:

  • Molecule for orchestrating test scenarios
  • Testinfra for testing the changes on the remote
  • pytest the testing framework
  • Tox manages Python virtual environments for linting and testing
  • pip-tools for managing dependencies

A Visual Studio Code Dev Container is provided for developing and testing this role.

License

MIT

Author Information

John Freeman

GantSign Ltd. Company No. 06109112 (registered in England)