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:
- Add the repository:
[Helm](<./helm.md>) repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/ - 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:
- Initializing the Terraform configuration, which downloads the necessary providers (e.g.,
hashicorp/helm^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]). - 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:
repositoryURL andchartname^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]. - Metadata:
name(e.g.,my-kubernetes-dashboard) andnamespace(defaults todefault)^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]. - Configuration: The
setblock 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"
}
}
Related Concepts¶
Sources¶
^[400-devops-06-kubernetes-devops-helm-terraform-helm-readme.md]