Kustomize and Helm with ArgoCD
Managing Dev, Staging, and Production (Without Copy-Paste Hell)
manifests/
βββ dev/
β βββ deployment.yaml # 3 replicas, dev image
β βββ service.yaml
β βββ configmap.yaml
βββ staging/
β βββ deployment.yaml # 5 replicas, staging image
β βββ service.yaml
β βββ configmap.yaml
βββ production/
βββ deployment.yaml # 10 replicas, prod image
βββ service.yaml
βββ configmap.yamlThe Problem: Environment-Specific Configuration
Configuration
Dev
Staging
Production
Approach 1: Kustomize with ArgoCD
Kustomize Concepts
Setting Up Kustomize Structure
Create Base Manifests
Create Dev Overlay
Create Staging Overlay
Create Production Overlay
Test Locally
Commit to Git
Creating ArgoCD Applications for Each Environment
Dev Application
Staging Application
Production Application
Deploy All Environments
Verify Different Configurations
Making Changes Across Environments
Approach 2: Helm with ArgoCD
Helm Concepts
Create Helm Chart
Create Deployment Template
Create Service Template
Default Values
Environment-Specific Values
Test Locally
Commit to Git
Creating ArgoCD Applications for Helm
Dev Application
Staging Application
Production Application with Value Overrides
Deploy
Kustomize vs Helm: Which to Choose?
Feature
Kustomize
Helm
Advanced: Combining Kustomize + Helm
Promoting Changes Across Environments
Key Takeaways
Last updated