Continuous Integration
Each Kubitus App includes a CI template from apps/common, with the following jobs:
commitlintkubitus-helm-citest e2e(andcleanup e2e)kubitus-sync-images 1to6trivy imagestrivy configrelease
kubitus-helm-ci
This job ensures a good quality level of Helm charts:
- For each included chart (in
charts/*directories):charts/<chart>/values.schema.jsonshould existscharts/<chart>/values.schema.jsonshould be strict (usingadditionalProperties=falsefor example)- An empty
charts/<chart>/ci/empty-values.yamlfile is created - For each
charts/<chart>/ci/<values>-values.yaml:- the chart is tested against this values file, using
helm templateandhelm lint - if a corresponding golden file is found (
charts/<chart>/ci/<values>-golden.yaml), the result should exactly match
- the chart is tested against this values file, using
helm-docsis called, and the generatedREADME.mdshould match the version in the Git repository.
- Files in directory
chartsmatching pattern*.tgzare forbidden. - a list of images
images.listis created by extractingimagefrom computed resources and fromci/*.gitlab-ci.yml - a list of image repositories
image-repositories.listis created fromimages.list. This file should match the version in the Git repository - Both generated
images.listandimage-repositories.listshould match commited versions - All images should contain a digest (there are exceptions for the
commonrepository) - for each
patches/*.patch, patch is checked to be already applied (with--strip=1) yamllintis called