initial pipelines concept
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# 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 `kustomize` patches
|
||||
* Promotion happens by modifying the respective `kustomize` patch file for the specific stage
|
||||
* Stage 0 is automatically updated using Flux's image update automation
|
||||
|
||||
## Generic DevX
|
||||
|
||||
### Promotion
|
||||
|
||||
1. Build and push application image
|
||||
1. Check that Flux updates the application on dev and the app gets healthy
|
||||
1. Manually promote the application version from dev to staging by creating a commit changing the `kustomize` patch
|
||||
1. Check that Flux updates the application on staging and the app gets healthy
|
||||
1. Manually promote the application version from staging to prod by creating a commit changing the `kustomize` patch
|
||||
1. 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.wave.works/stage` label.
|
||||
Reference in New Issue
Block a user