Idé för utformning av CI/CD för OpenShift kluster.
Tekton
Det naturliga valet för CI i OpenShift är Tekton. Se OpenShift pipelines: https://docs.openshift.com/container-platform/4.7/cicd/index.html för mer information.
Ett fösta utkast för en gemensam spring boot pipeline:
PiplineRuns (stored in git applied via Argo CD)
Reference common spring boot pipeline (stored in git applied via Argo CD)
Common Pipeline taskts:
git clone - params: repo rul, branch, credential reference
mvn build (test) - params: optional build parameters (base image?)
build and push image - params: image tg, image storage url, credential referens (base image?)
push k8 desired state to git (picked up by Argo CD) - params: repo rul, branch, credential referens
Med credential referens menas secret som sparas i kluster.
Argo CD
Används för att deploya förändringar i OpenShift kluster
All pipelines parts (PipelineRuns, Pipeline, Task etc.) applied via Argo CD
Each cluster has its own Argo CD installation
One config repo per service
Helm chart to easily set up default config. each service has a non release helm chart in config repo importing common chart with default values.
Frågor
Hur rensar vi på bästa sätt images som inte används? Det kan skilja mellan test och prod men man bör även ta hänsyn till hur vi gör vid ny major release då vi måste ha två majors igång av samma tjänst.
Vilken promotion modell (promotion från staging till prod) vill vi ha? Branch, overlays, annat?