Skip to content

GitOps & Deployments Toolkit

Toolkit Track | 5 Modules | ~4 hours total

The GitOps & Deployments Toolkit covers the essential tools for declarative, Git-driven Kubernetes deployments. These tools implement the GitOps methodology—using Git as the single source of truth for infrastructure and application configuration.

This toolkit builds on the concepts from GitOps Discipline and shows you how to implement those principles with production-grade tools.

Before starting this toolkit:

  • GitOps Discipline — GitOps principles and practices
  • Basic Kubernetes knowledge (Deployments, Services)
  • Git fundamentals
  • kubectl experience
#ModuleComplexityTime
2.1ArgoCD[COMPLEX]45-50 min
2.2Argo Rollouts[COMPLEX]45-50 min
2.3Flux[COMPLEX]40-45 min
2.4Helm & Kustomize[MEDIUM]35-40 min
2.5Dapr and Buildpacks — Application Definition Beyond Helm[COMPLEX]60-70 min

After completing this toolkit, you will be able to:

  1. Deploy with ArgoCD — Applications, sync strategies, App of Apps, RBAC
  2. Implement progressive delivery — Canary, blue-green, automated analysis
  3. Use Flux GitOps Toolkit — Sources, Kustomizations, image automation
  4. Package with Helm — Charts, templates, dependencies, releases
  5. Customize with Kustomize — Bases, overlays, patches, components
  6. Define beyond Helm — Dapr Components plus Buildpacks-built images, with reproducible builds and runtime building blocks decoupled from Helm templates
WHICH GITOPS TOOL?
─────────────────────────────────────────────────────────────────
Need a UI?
├── Yes → ArgoCD
│ • Great visualization
│ • Developer-friendly
│ • Easy onboarding
└── No → Flux
• CLI/automation-first
• Image automation built-in
• Lower resource usage
Need progressive delivery?
├── Yes → Argo Rollouts
│ • Canary deployments
│ • Blue-green switches
│ • Automated analysis
└── No → Standard Deployment
• Rolling updates
• Simpler setup
Package management?
├── Third-party apps → Helm
│ • Chart repositories
│ • Version management
│ • Release tracking
└── Own apps → Kustomize
• No templates
• Pure YAML
• Environment overlays
Application definition beyond Helm?
├── Standard app image build → Buildpacks
│ • No Dockerfile
│ • Curated builders
│ • Rebase and SBOM discipline
└── Runtime building blocks → Dapr Components
• State, pub-sub, secrets
• Sidecar API contract
• Plain manifest review path
BEST PRACTICE: Combine tools!
• Helm for packaging
• Kustomize for environment variants
• Buildpacks for repeatable image builds
• Dapr for shared runtime building blocks
• ArgoCD/Flux for deployment
• Argo Rollouts for progressive delivery
┌─────────────────────────────────────────────────────────────────┐
│ GITOPS DEPLOYMENT STACK │
├─────────────────────────────────────────────────────────────────┤
│ │
│ GIT REPOSITORY (Source of Truth) │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ • Helm charts │ │
│ │ • Kustomize overlays │ │
│ │ • Plain YAML manifests │ │
│ │ • Application configurations │ │
│ └────────────────────────────┬─────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ GITOPS CONTROLLER │ │
│ │ │ │
│ │ ┌─────────────────┐ ┌─────────────────┐ │ │
│ │ │ ArgoCD │ OR │ Flux │ │ │
│ │ │ │ │ │ │ │
│ │ │ • Sync to Git │ │ • Reconcile │ │ │
│ │ │ • Detect drift │ │ • Image update │ │ │
│ │ │ • Visualize │ │ • Notifications │ │ │
│ │ └─────────────────┘ └─────────────────┘ │ │
│ └────────────────────────────┬─────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ PROGRESSIVE DELIVERY │ │
│ │ │ │
│ │ ┌─────────────────┐ │ │
│ │ │ Argo Rollouts │ │ │
│ │ │ │ │ │
│ │ │ • Canary │ │ │
│ │ │ • Blue-Green │ │ │
│ │ │ • Analysis │ │ │
│ │ └─────────────────┘ │ │
│ └────────────────────────────┬─────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ KUBERNETES CLUSTER │ │
│ │ │ │
│ │ Desired state from Git = Actual state in cluster │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Module 2.1: ArgoCD
│ GitOps with UI, sync strategies
Module 2.2: Argo Rollouts
│ Progressive delivery, canary, analysis
Module 2.3: Flux
│ GitOps toolkit, image automation
Module 2.4: Helm & Kustomize
│ Package management, overlays
Module 2.5: Dapr and Buildpacks
│ Application definition beyond Helm
[Toolkit Complete] → CI/CD Pipelines Toolkit
PrincipleArgoCD ImplementationFlux Implementation
DeclarativeApplication CRDKustomization/HelmRelease
VersionedGit repo as sourceGitRepository source
AutomatedAuto-sync policyReconciliation loop
AuditableGit history + UIGit history + events
DEPLOYMENT SCENARIO TOOL RECOMMENDATION
─────────────────────────────────────────────────────────────────
Installing Prometheus → Helm chart
├── Available from chart repo
├── Many configuration options
└── Upstream maintains it
Your microservice to 3 envs → Kustomize overlays
├── Same base, different configs
├── You control the manifests
└── Simple differences
Microservices share runtime needs → Dapr + Buildpacks
├── No Dockerfile per repo
├── State/pub-sub/secrets as Components
└── Plain manifests instead of template sprawl
Breaking change in API → Argo Rollouts canary
├── Need gradual rollout
├── Want automated rollback
└── Have metrics to analyze
100 apps across 10 clusters → ArgoCD ApplicationSets
├── Template-based generation OR Flux multi-cluster
├── Consistent patterns
└── Central visibility

“GitOps is not about tools—it’s about the practice of using Git as source of truth. These tools make that practice operational.”