Entwicklungsprozess (Dogu + Komponente)
Ziel
Dieses Repository liefert zwei Artefakte mit gemeinsamer Version:
- LDAP-Dogu
- LDAP-Komponente (Helm/StatefulSet)
Build, Test und Release laufen zentral über ein gemeinsames Makefile und ein gemeinsames Jenkinsfile.
Lokaler Entwicklungsablauf
1. Dogu entwickeln und testen
-
Build/Deploy (bestehender Dogu-Pfad):
make build
-
Shell-Unit-Tests lokal:
make unit-test-shell-local
-
Shell-Unit-Tests CI-ähnlich:
make unit-test-shell-ci
2. Komponente entwickeln und testen
-
Gemeinsames Image bauen:
make docker-build
-
Helm lint:
make helm-lint
-
Helm-Chart generieren:
make helm-generate
-
Komponente deployen/entfernen:
make helm-applymake helm-deletemake component-applymake component-delete
CI-/Pipeline-Ablauf
Die Pipeline bleibt zentral in Jenkinsfile:
- Default-Dogu-Stages über
pipe.addDefaultStages() -
zusätzliche Component-Stage-Group:
Component CheckoutComponent BuildComponent TestComponent Smoke Test (k3d)
Der Smoke-Test taggt das zuvor gebaute Image bewusst auf local-smoke/ldap:<version>, importiert es in den k3d-Cluster und deployt damit das Helm-Chart.
Auf Release-Branches werden zusätzlich ausgeführt:
Push Component Chart to Harbor
Release-Prozess (kombiniert)
Zielbild
Ein Gitflow-Release aktualisiert Dogu- und Komponenten-Versionen gemeinsam.
Einstieg
-
Kombiniertes Release starten:
make dogu-release
Technisch:
make dogu-releasestartet den Release-Lauf.- Der Release-Lauf lädt
release_args.sh. -
Dort werden zusätzlich zu den Standarddateien auch Component-Dateien versioniert:
k8s/helm/values.yaml(image.tag)k8s/helm/component-patch-tpl.yaml(values.images.ldap)