Progressive Rollout — Sample Manifests
Static YAML manifests and orchestration script used in the Progressive Rollout Strategies with Karmada tutorial.
The tutorial demonstrates three rollout strategies across multiple clusters using only
Karmada PropagationPolicy and OverridePolicy — no additional controllers required.
Directory Structure
progressive-rollout/
├── wave-rollout.sh # Orchestration script for Strategy 3 (Wave Rollout)
├── base/ # Shared manifests — application and ingress-nginx
├── canary/ # Strategy 1 — Side-by-Side Testing (Canary)
├── rolling-upgrade/ # Strategy 2 — In-place Updates (Rolling Upgrade)
└── wave/ # Strategy 3 — Percentage-based Shifting (Wave Rollout)
Files
base/ — Shared manifests
| File | Purpose |
|---|---|
http-probe-app.yaml | Base app at v1, replicaSchedulingType: Divided (2 replicas per cluster) |
http-probe-app-v2.yaml | Base app at v2, replicaSchedulingType: Divided — used to finalize Strategies 1 and 2 |
ingress-nginx-deploy.yaml | ingress-nginx controller workload |
ingress-nginx-propagation.yaml | PropagationPolicy for namespace-scoped ingress-nginx resources |
ingress-nginx-cluster-propagation.yaml | ClusterPropagationPolicy for cluster-scoped ingress-nginx resources |
canary/ — Strategy 1: Side-by-Side Testing (Canary)
| File | Purpose |
|---|---|
http-probe-app-canary-member1.yaml | Canary Deployment + PropagationPolicy targeting member1 only |
http-probe-app-canary-member2.yaml | Canary Deployment + PropagationPolicy targeting member2 only |
http-probe-app-canary-member3.yaml | Canary Deployment + PropagationPolicy targeting member3 only |
http-probe-app-canary-all.yaml | Single canary Deployment + PropagationPolicy targeting all three clusters |
http-probe-promote-override-member1.yaml | OverridePolicy promoting the base to v2 on member1 |
http-probe-promote-override-member2.yaml | OverridePolicy promoting the base to v2 on member2 |
http-probe-promote-override-member1-member2.yaml | OverridePolicy promoting the base to v2 on member1 and member2 |
http-probe-promote-override-all.yaml | OverridePolicy promoting the base to v2 on all three clusters |