- Description
- Setup - The basics of getting started with helm
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
The Helm package manager installs and manages Kubernetes applications.
This module installs the the Helm package manager, which consists of the Helm client (Helm) and the Helm server (Tiller), and it also manages the Helm deployments.
Before installing the helm module, create a Kubernetes service account and install a Kubernetes cluster, including kubectl. For more information about Kubernetes and kubectl, see the Kubernetes docs.
To install the helm module, include the helm
class:
include 'helm'
To customise options, such as the version, the service account, or the Tiller namespace, add the following code to the manifest file:
class { 'helm':
version => '2.6.0',
service_account => 'my_account',
tiller_namespace => 'my_namespace',
}
A Helm chart is a collection of files that describe a related set of Kubernetes resources. To create a Helm chart, add the following code to the manifest file:
helm::create { 'myapp':
env => $env,
chart_path => '/tmp',
chart_name => 'myapp',
path => $path,
}
To package a Helm chart, add the following code to the manifest file:
helm::package { 'myapp':
chart_path => '/tmp',
chart_name => 'myapp',
destination => '/root',
env => $env,
path => $path,
version => '0.1.0',
}
To deploy a Helm chart, add the following code to the manifest file:
helm::chart { 'mysql':
ensure => present,
chart => 'stable/mysql',
env => $env,
path => $path,
release_name => 'mysql',
}
To add a Helm chart repository, add the following code to the manifest file:
helm::repo { 'myrepo':
ensure => present,
env => $env,
path => $path,
repo_name => 'myrepo',
url => 'http://myserver/charts'
}
To update a Helm chart repository, add the following code to the manifest file:
helm::repo_update { 'update':
env => $env,
path => $path,
update => true
}
helm
helm::account_config
: Configures the service account and the cluster role that are required to deploy Helm.helm::binary
: Downloads and extracts the Helm binary.helm::config
: Calls thehelm::helm_init
define to deploy Tiller to the Kubernetes cluster.
helm::create
: Creates a new Helm chart.helm::chart
: Manages the deployment of the Helm charts.helm::chart_update
: Update deployed Helm charts.helm::helm_init
: Deploys the Tiller pod and initializes the Helm client.helm::package
: Packages a chart directory into a chart archive.helm::repo
: Adds a Helm repository.helm::repo_update
: Updates all of the Helm repositories.
Manages the basic Helm installation and setup.
When the helm
class is declared, Puppet does the following:
- Downloads and installs Helm onto your system.
- Creates the cluster role and service accounts required to run tiller.
- Deploys Tiller in the
kube-system
namespace.
env
: Sets the environment variables for Helm to connect to the Kubernetes cluster. Default:[ 'HOME=/root', 'KUBECONFIG=/root/admin.conf']
init
: Specifies whether to initialize the Helm installation and deploy the Tiller pod to Kubernetes. Valid options:true
,false
. Default:true
.install_path
: Sets the path variable for the exec types. Default: '/usr/bin'.service_account
: The service account name assigned to thetiller
deployment. Default:tiller
.tiller_namespace
: The namespace of where tiller is deployed to. Default:kube-system
.version
: The version of Helm to install. Default: '2.5.1'.client_only
: Specifies whether helm need to configure helm server or not. Default:false
.
Creates a new Helm chart.
The name of the Helm chart.
Default: undef
.
The location of the Helm chart.
If the directory in the path does not exist, Helm attempts to create it. If the directory and the files already exist, only the conflicting files are overwritten.
Default: undef
.
Specifies whether to enable verbose output.
Values true
, false
.
Default: false
.
Sets the environment variables for Helm to connect to the Kubernetes cluster.
Default: undef
.
The location of your Helm configuration. This value overrides $HELM_HOME
.
Default: undef
.
Address of Tiller. This value overrides $HELM_HOST
.
Default: undef
.
The name of the kubeconfig context.
Default: undef
.
The PATH environment variable.
Default: undef
.
Namespace of Tiller.
Default: 'kube-system'.
Value for the starter chart.
Default: undef
.
Manages the deployment of the Helm charts.
Specifies whether a chart is deployed.
Values: 'present', 'absent'.
Default: 'present'.
Verifies the certificates of the HTTPS-enabled servers using the CA bundle.
Default: undef
.
Identifies the HTTPS client using this SSL certificate file.
Default: undef
.
Specifies whether to enable verbose output.
Values true
, false
.
Default: false
.
Specifies whether to use development versions.
Values true
, false
.
Default: false
.
Specifies whether to simulate an installation or delete a deployment.
Values true
, false
.
Default: false
.
Sets the environment variables for Helm to connect to the kubernetes cluster.
Default: undef
.
Identifies the HTTPS client using thie SSL key file.
Default: undef
.
Location of the public keys that are used for verification.
Default: undef
.
Location of your Helm config. This value overrides $HELM_HOME
.
Default: undef
.
Address of Tiller. This value overrides $HELM_HOST
.
Default: undef
.
Name of the kubeconfig context.
Default: undef
.
The template used to name the release.
Default: undef
.
Specifies whether to prevent hooks running during the installation.
Values true
, false
.
Default: false
.
Value for the PATH environment variable.
Default: undef
.
Specifies whether to remove the release from the store, and make its name available for later use.
Values true
, false
.
Default: true
.
Required. The release name.
Default: undef
.
Reuse the release name.
Default: false
.
The repository URL for a requested chart.
Default: undef
.
The set array of values for the helm create
command.
Default: '[]'.
The timeout in seconds to wait for a Kubernetes operation.
Default: undef
.
The Tiller namespace.
Default: 'kube-system'.
Specifies whether to enable TLS.
Values true
, false
.
Default: false
.
The path to TLS CA certificate file.
Default: undef
.
The path to TLS certificate file.
Default: undef
.
The path to TLS key file.
Default: undef
.
Enable TLS for request and verify remote.
Default: undef
.
Specify values from a YAML file. Multiple values in an array are accepted.
Default: '[]'.
Specifies whether to verify the package before installing it.
Values true
, false
.
Default: false
.
Specify the version of the chart to install. undef
installs the latest version.
Default: undef
.
Before marking the release as successful, specify whether to wait until all the pods, PVCs, services, and the minimum number of deployment pods are in a ready state. The timeout
value determines the duration.
Values true
, false
.
Default: false
.
The file system location of the package.
Default: undef
.
Update deployed charts.
Specifies whether a chart must be updated.
Values: 'present', 'absent'.
Default: 'present'.
Verifies the certificates of the HTTPS-enabled servers using the CA bundle.
Default: undef
.
Identifies the HTTPS client using this SSL certificate file.
Default: undef
.
Specifies whether to enable verbose output.
Values true
, false
.
Default: false
.
Specifies whether to use development versions.
Values true
, false
.
Default: false
.
Specifies whether to simulate a chart update.
Values true
, false
.
Default: false
.
Sets the environment variables for Helm to connect to the kubernetes cluster.
Default: undef
.
If a release by this name doesn't already exist, run an install
Default: true
.
Identifies the HTTPS client using the SSL key file.
Default: undef
.
Location of the public keys that are used for verification.
Default: undef
.
Location of your Helm config. This value overrides $HELM_HOME
.
Default: undef
.
Address of Tiller. This value overrides $HELM_HOST
.
Default: undef
.
Name of the kubeconfig context.
Default: undef
.
Performs pods restart for the resource if applicable
Default: undef
.
When upgrading, reset the values to the ones built into the chart
Default: undef
.
when upgrading, reuse the last release's values, and merge in any new values. If '--reset-values' is specified, this is ignored.
Default: undef
.
Specifies whether to prevent hooks running during the installation.
Values true
, false
.
Default: false
.
Value for the PATH environment variable.
Default: undef
.
Specifies whether to remove the release from the store, and make its name available for later use.
Values true
, false
.
Default: true
.
Required. The release name.
Default: undef
.
The repository URL for a requested chart.
Default: undef
.
The set array of values for the helm create
command.
Default: '[]'.
The timeout in seconds to wait for a Kubernetes operation.
Default: undef
.
The Tiller namespace.
Default: 'kube-system'.
Specifies whether to enable TLS.
Values true
, false
.
Default: false
.
The path to TLS CA certificate file.
Default: undef
.
The path to TLS certificate file.
Default: undef
.
The path to TLS key file.
Default: undef
.
Enable TLS for request and verify remote.
Default: undef
.
Specify values from a YAML file. Multiple values in an array are accepted.
Default: '[]'.
Specifies whether to verify the package before installing it.
Values true
, false
.
Default: false
.
Specify the version of the chart to install. undef
installs the latest version.
Default: undef
.
Before marking the release as successful, specify whether to wait until all the pods, PVCs, services, and the minimum number of deployment pods are in a ready state. The timeout
value determines the duration.
Values true
, false
.
Default: false
.
The file system location of the package.
Default: undef
.
Deploys the Tiller pod and initialize the Helm client.
Specifies whether to deploy the tiller pod and initialise the Helm client.
Values: true
, false
.
Default: true
.
Specifies whether to use the canary Tiller image.
Values: true
, false
.
Default: false
.
Specifies whether to deploy Tiller.
Values: true
, false
.
Default: false
.
Specifies whether to enable the verbose output.
Values true
, false
.
Default: false
.
Specifies whether to simulate an installation or delete of a deployment.
Values true
, false
.
Default: false
.
Sets the environment variables required for Helm to connect to the kubernetes cluster.
Default: undef
.
The location for your Helm configuration. This value overrides $HELM_HOME
.
Default: undef
.
The host address for Tiller. Overrides $HELM_HOST
.
Default: undef
.
The name for the kubeconfig context to use.
Default: undef
.
The local repository URL.
Default: undef
.
Specifies whether to install Tiller with net=host
.
Values: true
, false
.
Default: false
.
The value for the PATH environment variable.
Default: undef
.
The name for the service account used for deploying Tiller.
Default: undef
.
Specifies whether to refresh or download the local repository cache.
Values: true
, false
.
Default: false
.
The stable repository URL.
Default: undef
.
Override the Tiller image.
Default: undef
Namespace for Tiller.
Default: 'kube-system'.
Specifies whether to install Tiller with TLS enabled.
Values: true
, false
.
Default: false
.
The path to the TLS certificate file that is installed with Tiller.
Default: undef
.
The path to the TLS key file that is installed with Tiller.
Default: undef
.
Specifies whether to install Tiller with TLS enabled and to verify remote certificates.
Values: true
, false
.
Default: false
.
Specifies whether to use the path to the CA root certificate.
Values: true
, false
.
Default: false
.
Specifies whether to upgrade if Tiller is installed.
Values: true
, false
.
Default: false
.
Packages a chart directory into a chart archive.
Default: undef
.
The name of the Helm chart.
The file system location of the chart.
Specifies whether to enable verbose output.
Values true
, false
.
Default: false
.
Location of your Helm config. This value overrides $HELM_HOME
.
Default: undef
.
The address for Tiller. This value overrides $HELM_HOST
.
Default: undef
.
The name for the kubeconfig context.
Default: undef
.
Specifies whether to save the packaged chart to the local chart repository.
Values: true
, false
.
Default: true
.
Specifies whether to use a PGP private key to sign the package.
Values: true
, false
.
Default: false
.
The namespace for Tiller.
Default: undef
.
The version of the chart.
Default: undef
.
Specifies whether to update dependencies.
Values: true
, false
.
Default: false
.
The destination location to write to.
Default: undef
.
Sets the environment variables required for Helm to connect to the kubernetes cluster.
Default: undef
.
Specify the key to use.
Default: undef
.
The location of the public keys that are used for verification.
Default: undef
.
Adds a Helm repository.
Specifies whether a repo is added.
Values: 'present', 'absent'.
Default: 'present'.
Verify the certificates of HTTPS-enabled servers that are using the current CA bundle.
Default: undef
.
Use the SSL certificate file to identify the HTTPS client.
Default: undef
.
Specifies whether to enable verbose output.
Values true
, false
.
Default: false
.
Sets the environment variables required for Helm to connect to the kubernetes cluster.
Default: undef
.
Use the SSL key file to identify the HTTPS client.
Default: undef
.
Specifies whether to create an error when the repository is already registered.
Values true
, false
.
Default: false
.
Location of your Helm config. This value overrrides $HELM_HOME
.
Default: undef
.
The address for Tiller. This value overrides $HELM_HOST
.
Default: undef
.
The name for the kubeconfig context to use.
Default: undef
.
The values for PATH environment variable.
Default: undef
.
The namespace for Tiller.
Default: undef
.
The name for the remote repository.
Default: undef
.
The URL for the remote repository.
Default: undef
.
Updates all of the Helm repositories.
Specifies whether to enable verbose output.
Values true
, false
.
Default: false
.
Sets the environment variables required for Helm to connect to the Kubernetes cluster.
Default: undef
.
The location of your Helm config. This value overrides $HELM_HOME
.
Default: undef
.
The address for Tiller. This value overrides $HELM_HOST
.
Default: undef
.
The name for the kubeconfig context to use.
Default: undef
.
The value for the PATH environment variable.
Default: undef
.
The namespace for Tiller.
Default: undef
.
Specifies whether the repository is updated.
Values true
, false
.
Default: true
.
This module is compatible only with the Linux
kernel.
If you would like to contribute to this module please follow the rules in the CONTRIBUTING.md.