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:
- Payload URL:
https://webhook-receiver.trutz.cloud[webhook-path-aus-receiver.yaml] - Content type:
application/json - Secret:
$TOKEN - Events: Just the push event
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 |