Environment Promotion using kustomize
- Applications are defined at a central location in the repository
- Each pipeline is represented in Git by a directory under
pipelines/ - Each stage of a pipeline is represented as a directory under
pipelines/<NAME>where<NAME>is the pipeline's name - Differences between stages are tracked as
kustomizepatches - Promotion happens by modifying the respective
kustomizepatch file for the specific stage - Stage 0 is automatically updated using Flux's image update automation
Generic DevX
Promotion
- Build and push application image
- Check that Flux updates the application on dev and the app gets healthy
- Manually promote the application version from dev to staging by creating a commit changing the
kustomizepatch - Check that Flux updates the application on staging and the app gets healthy
- Manually promote the application version from staging to prod by creating a commit changing the
kustomizepatch - Check that Flux updates the application on staging and the app gets healthy
Pipeline Introspection
Each pipeline stage is represented on the cluster by a Kustomization. The pipeline name is reflected by the pipelines.weave.works/name label on the Kustomization and the order of stages is represented by ascending values of the pipelines.weave.works/stage label.