- Website: https://www.terraform.io/docs/providers/helm/index.html
- Mailing list: Google Groups
- Slack channel: #terraform-providers in Kubernetes (Sign up here)
This is the Helm provider for Terraform.
The provider manages the installed Charts in your Kubernetes cluster, in the same way Helm does, through Terraform.
Helm v2 support
Release 1.0.0
for this provider brought support for Helm v3. This was a breaking change that removed support for Helm v2 and tiller. If you are still using Helm v2 and tiller you will have to pin your provider version to the latest 0.10.x
release.
We will continue to accept bugfixes for the 0.10.x
version of the provider, please open your pull request against the latest release-0.10.x
branch.
Contents
Developing the Provider
Installation from sources
If you wish to compile the provider from source code, you'll first need Go installed on your machine (version >=1.13 is required). You'll also need to correctly setup a GOPATH, as well as adding $GOPATH/bin
to your $PATH
.
Clone repository to: $GOPATH/src/github.com/terraform-providers/terraform-provider-helm
> mkdir -p $GOPATH/src/github.com/terraform-providers
> git clone https://github.com/terraform-providers/terraform-provider-helm.git $GOPATH/src/github.com/terraform-providers/terraform-provider-helm
Enter the provider directory and build the provider
> cd $GOPATH/src/github.com/terraform-providers/terraform-provider-helm
> make build
Now copy the compiled binary to the Terraform's plugins folder, if is your first plugin maybe isn't present.
> mkdir -p ~/.terraform.d/plugins/
> mv terraform-provider-helm ~/.terraform.d/plugins/
Example
This is a small example of how to install the mariadb chart on your default kubernetes cluster, since the provider was initialized, all the configuration is retrieved from the environment. Please read the documentation for more information.
You should have a local configured copy of kubectl.
resource "helm_release" "my_database" {
name = "my-database"
chart = "stable/mariadb"
set {
name = "mariadbUser"
value = "foo"
}
set {
name = "mariadbPassword"
value = "qux"
}
set_string {
name = "image.tags"
value = "registry\\.io/terraform-provider-helm\\,example\\.io/terraform-provider-helm"
}
}
License
Mozilla Public License 2.0, see LICENSE