Kubernetes Multicluster Samples is a test suite for PipeCD's kubernetes_multicluster plugin. Each folder is a self-contained application with a PipeCD pipeline config and Kubernetes manifests, covering the full range of deployment strategies the plugin supports across two clusters.
What it is
A multicluster CD validation suite with:
- Deployment Strategies: Canary (with and without service creation), primary rollout, and baseline deployments for A/B scenarios.
- Traffic Routing: PodSelector-based and Istio-based traffic shifting across clusters.
- Per-Stage Filtering: Canary stages scoped to
cluster-euonly, with full rollout unlocked in a subsequent stage. - Workload Coverage: Deployment, StatefulSet, DaemonSet, Init Container image extraction, and CronJob health checks.
- Config Flexibility: Kustomize per-target overlays and Helm chart integration with custom values.
- Resilience Testing: Partial failure handling so one cluster error does not kill the entire multi-target pipeline.
How It's Built
- CD Platform: PipeCD with the
kubernetes_multiclusterplugin. - Clusters:
cluster-euandcluster-usas named targets in each pipeline config. - Config Format:
app.pipecd.yamldefines pipeline stages;deployment.yamlandservice.yamldefine workloads. - Templating: Go Template manifests for dynamic per-target configuration.
- Traffic Management: Both native PodSelector and Istio VirtualService approaches covered.
What I Learned
- Multicluster CD Complexity: Traffic isolation between regions requires explicit per-stage target filtering, blanket rollouts carry more risk than they appear to.
- Plugin Validation Practice: Writing targeted manifests per deployment pattern is more reliable than relying on end-to-end tests alone.
- Partial Failure Semantics: Defining what "success" means in a multi-target rollout (all clusters vs. quorum) is a design decision that affects rollback behaviour.