Erstellen einer Helm-CI-Component
(KOP-3271)
Es soll eine Helm-CI-Component "helm" erstellt werden, die Schritte für das Bauen, Testen und Veröffentlichen enthält. Die Komponente soll die Helm-Chart-Version mit maven auslesen, sodass ein Maven-Projekt für die Nutzung der Komponente notwendig ist.
Die GitLab-Helm-Registry, die noch als "Beta" https://docs.gitlab.com/user/packages/helm_repository/ markiert ist, soll zukünftig als primäre Quelle für Helm-Charts werden, jedoch soll in diesem Schritt weiterhin nur push/pull vom Nexus unterstützt werden.
Die Komponente soll als Inputs haben:
- Step/Stage-Namen
- job-prefix ("helm"), test-stage ("test"), publish-stage ("publish")
- Helm-Config
- deploy-stage-enabled (true)
- helm-linter-values-file ("src/test/helm-linter-values.yaml")
- helm-chart-root ("src/main/helm")
- helm-chart-test-root ("src/test/helm")
- deploy-to-nexus (true) und deploy-to-gitlab (true) (Mit Hinweis auf geplantes Entfernen dieser Optionen)
Akzeptanzkriterien:
- Die "test" stage läuft erfolgreich mit Linting und Unit-Tests
- Die "publish" stage läuft erfolgreich mit Veröffentlichung zum Nexus
- Für einen branch
- wird für das gebaute Chart ein Branch-Tag
x.x.x-branch-shortsha1und ein latest tag gepusht (für default branchsnapshot-latestsonstx.x.x-branch-latest)
- wird für das gebaute Chart ein Branch-Tag
- Für einen branch
- Für ein (Release)-Tag
- wird ein Release-tag
x.x.xundlatestgepusht
- wird ein Release-tag
- Die Helm-Komponente ist für Nutzer verständlich in der Readme dokumentiert
Hinweise
Notwendige Binaries, Skripte und Konfigurations-Dateien sollten in ein eigenes build-image, sodass keine "download" stage notwendig ist.
Nach Abnahme sollte eine Release-Version der helm-Component getaggt werden.