Stage 1: Integration
Running fully in the public cloud, this initial stage runs completely in docker containers using Kind and focuses on testing the various components that make up a platform.
Tests are run against various versions and combinations of Kubernetes with a packaged binary being published only after all tests pass.
Stage 2: Infrastructure Lab
During the infrastructure integration, the binary produced in Stage 1 is used to provision and test against infrastructure in multiple labs that mirror our customers environments.
Stage 3: Staging
The staging pipeline runs behind the customers Firewall on customer-owned and managed infrastructure. At this stage the focus is on testing validated configuration produced in Stage 1 & 2 with the policies and configuration specific to each customer.
The staging pipeline usually includes custom VM images, security policies and scans with a representative customer workload deployed and tested both for functionality and performance regressions before being submitted for approval for deployment to production.
Stage 4: Production Rollout
With Immutable Infrastructure applied at the cluster-level, we use Cluster API in a GitOps Zero Touch Prod pipeline to deploy new validated clusters, slowly migrating traffic and workloads to them, and finally destroying old clusters to eliminate the risks of in-place change and configuration drift.