Flux – Webhook-Receiver

Standardmäßig prüft Flux das Git-Repository in einem konfigurierten Intervall. Mit einem Webhook-Receiver wird Flux sofort benachrichtigt, wenn ein Git-Push stattfindet.

Token erstellen

TOKEN=$(head -c 12 /dev/urandom | shasum | cut -d ' ' -f1)
echo $TOKEN
kubectl -n flux-system create secret generic webhook-token --from-literal=token=$TOKEN
kubectl -n flux-system get secrets

Ingress für den Webhook

kubectl apply -f webhook-receiver-ingress.yaml
# webhook-receiver.trutz.cloud in DNS eintragen

Webhook-Receiver anlegen

kubectl apply -f webhook-receiver.yaml
kubectl -n flux-system get receivers
kubectl -n flux-system describe receiver/webhook-receiver

GitHub Webhook konfigurieren

Unter https://github.com/trutzio/kubernetes-tutorial/settings/hooks:

Poll-Intervall erhöhen

vim github-gitrepository.yaml   # interval: 12h setzen
kubectl apply -f github-gitrepository.yaml
# Ab jetzt löst nur noch der Webhook ein Sync aus

Trennung von Infrastruktur und Anwendung

Empfohlene Repository-Struktur:

├── develop
│   ├── integration    (Entwicklungsumgebung)
│   ├── testing        (Testumgebung)
│   └── maintenance    (Wartungsumgebung)
├── uat                (Abnahmeumgebung)
│   └── default
└── production         (Produktionsumgebung)
    └── default

Git-Branch-Strategie

Branch / Tag Umgebung
develop develop/integration
release/v1.x develop/testing
v1.4.4 (Tag) uat/default
main + v1.4.4 production/default
hotfix/v1.4.5 develop/maintenance