Restructure and improve CI pipeline
needs has changed:
Introduced in GitLab 14.2, you can refer to jobs in the same stage as the job you are configuring.
So we can structure our stages more logical and depend jobs on to other jobs in their stage. With this we can Reduce stage count and cluster them like:
-
Build
: no change -
Install k8s
- Create VPS
- Install k3s (ansible)
-
Install OAS
: Install OAS and apps to be testedinstall/install-openappstack.sh
- install apps
-
Split core
kustomization into smaller kustomizations. Often, thecore-kustomization
job is running forever, and we don't have a clue which part of it is breaking, without downloading the kubeconfig and checking manually (#1042 (closed)) -
Core ready
: Joinkustomization
andbase-helm-release
stages- Check for kustomizations and helm-releases to be ready
-
Apps ready
: JoinApps-helm-release
andApps ready
-
Do we need the certs
stage at all ? Because I think that a helmrelease won't be ready if the cert isn't -
Cluster-Health
: Renamehealth-tests
stage -
Take out waiting condition for LE issuer installation - Add needs to:
-
health-test stage
-
Further improvements:
-
Revisit if allow: fail
is needed for those jobs currently tagged with it (https://open.greenhost.net/openappstack/openappstack/-/pipelines/8259/builds) (done already in other commits) -
After restructuring the pipeline as proposed above, properly specify needs
(see master CI pipeline needs view