Skip to content

Helm chart deployment

Helm chart deployment refers to the process of packaging, installing, and managing Kubernetes applications using Helm.^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]

Basic Deployment

To deploy a Helm chart, a repository must be added and a release installed.^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]

For example, to deploy the Kubernetes Dashboard:

  1. Add the repository:
    [Helm](<./helm.md>) repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
    
  2. Install the chart:
    [Helm](<./helm.md>) install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard
    

Upon successful installation, the Helm CLI provides a status output, including the deployed namespace, revision number, and access instructions, such as the command to create a proxy for accessing the service^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md].

Uninstalling

To remove a deployed Helm release, the delete command is used^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]:

[Helm](<./helm.md>) delete kubernetes-dashboard

Deployment with Terraform

Helm deployments can be managed via Infrastructure as Code (IaC) tools such as Terraform.^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md] This typically involves:

  1. Initializing the Terraform configuration, which downloads the necessary providers (e.g., hashicorp/helm^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]).
  2. Applying the configuration, which provisions resources defined in the Terraform plan.

Terraform Resource Configuration

A helm_release resource in Terraform specifies the chart details and custom configuration values^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]. Key parameters include:

  • Chart Identification: repository URL and chart name^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md].
  • Metadata: name (e.g., my-kubernetes-dashboard) and namespace (defaults to default)^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md].
  • Configuration: The set block allows customization of chart values to override defaults.^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]

Examples of overrides using the set block include modifying service types, replica counts, and enabling specific protocols^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]:

resource "helm_release" "my-kubernetes-dashboard" {
  name       = "my-kubernetes-dashboard"
  repository = "https://kubernetes.github.io/dashboard/"
  chart      = "kubernetes-dashboard"

  set {
    name  = "service.type"
    value = "LoadBalancer"
  }
  set {
    name  = "replicaCount"
    value = "2"
  }
}

Sources

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