3.1.4.X. Container Deployment with Helm Charts
Helm is the package manager for Kubernetes — it bundles all the YAML manifests (deployments, services, configmaps, secrets) that define an application into a single, versioned, parameterized unit called a chart.
💡 Why this matters for AZ-400: The exam tests your ability to implement application deployment using containers. While Azure Pipelines and GitHub Actions can deploy raw Kubernetes manifests, real-world AKS deployments almost always use Helm because it solves three critical problems: templating (one chart, multiple environments), versioning (rollback to a specific chart version), and dependency management (chart of charts).
Core Helm concepts:
- Chart: A directory of templated Kubernetes manifests plus a
Chart.yamlmetadata file and avalues.yamldefaults file - Release: A specific deployment of a chart to a cluster. Each
helm installorhelm upgradecreates a release with a revision number - Repository: A hosted collection of charts (e.g., Azure Container Registry can serve as a Helm repo via
az acr helm) - Values override:
helm upgrade my-app ./chart --set image.tag=v2.1.0or-f production-values.yamlto customize per environment
Pipeline integration pattern:
Build Stage → Push image to ACR → Helm Upgrade Stage → helm upgrade --install \
--set image.repository=$(ACR_NAME).azurecr.io/myapp \
--set image.tag=$(Build.BuildId) \
--namespace production \
my-release ./helm-chart
⚠️ Exam Tip: Know the difference between helm install (first deployment) and helm upgrade --install (idempotent — installs if missing, upgrades if present). The --install flag is critical for CI/CD pipelines because it makes the command safe to run repeatedly.