Skip to content

Terraform Helm provider

The Terraform Helm provider allows users to manage Helm chart releases using Terraform, enabling the Infrastructure as Code (IaC) automation of Kubernetes applications.^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]

Initialization

To use the provider, it must be initialized using the standard Terraform workflow. Running terraform init downloads the required provider plugins (specifically hashicorp/helm) and sets up the environment.^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]

helm_release Resource

The primary resource provided by this plugin is helm_release, which defines the deployment of a specific chart.^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]

Key arguments for this resource include:

  • Repository: The URL where the Helm chart is located (e.g., https://kubernetes.github.io/dashboard/).^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]
  • Chart: The name of the chart to be installed (e.g., kubernetes-dashboard).^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]
  • Namespace: The Kubernetes Namespace for the deployment (defaults to default).^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]
  • Name: A unique identifier for the release within Terraform.^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]

Configuration and Customization

The provider supports extensive customization of the deployed application through the use of set blocks.^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md] These blocks allow users to override default chart values by specifying pairs of:

  • Name: The configuration path (e.g., replicaCount, service.type).
  • Value: The desired setting (e.g., 2, LoadBalancer).^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]

Execution and Verification

The deployment is executed by running terraform apply, which generates a plan showing the resources to be created (indicated by a + symbol)^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]. Once applied, the status of the release can be verified using standard Helm commands, such as helm list, to confirm the deployment status and revision^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md].

Sources

^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]