Continuous Integration
Each Kubitus App includes a CI template from apps/common
, with the following jobs:
commitlint
kubitus-helm-ci
test e2e
(andcleanup e2e
)kubitus-sync-images 1
to6
trivy images
trivy config
release
kubitus-helm-ci
This job ensures a good quality level of Helm charts:
- For each included chart (in
charts/*
directories):charts/<chart>/values.schema.json
should existscharts/<chart>/values.schema.json
should be strict (usingadditionalProperties=false
for example)- An empty
charts/<chart>/ci/empty-values.yaml
file is created - For each
charts/<chart>/ci/<values>-values.yaml
:- the chart is tested against this values file, using
helm template
andhelm 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-docs
is called, and the generatedREADME.md
should match the version in the Git repository.
- Files in directory
charts
matching pattern*.tgz
are forbidden. - a list of images
images.list
is created by extractingimage
from computed resources and fromci/*.gitlab-ci.yml
- a list of image repositories
image-repositories.list
is created fromimages.list
. This file should match the version in the Git repository - Both generated
images.list
andimage-repositories.list
should match commited versions - All images should contain a digest (there are exceptions for the
common
repository) - for each
patches/*.patch
, patch is checked to be already applied (with--strip=1
) yamllint
is called