hx53.de #
Stellt die statische Webseite für hx53.de bereit. Gebaut wird die Seite im
Quell-Repository, hier wird nur ausgeliefert.
Quelle #
Generisches app-template-Helm-Chart von
BJW-S Labs mit dem Upstream-Image
nginxinc/nginx-unprivileged und git-sync. Die nginx-Konfiguration kommt aus
der Kustomize-Component components/static-site und ist für alle statischen
Seiten im Cluster dieselbe.
Dokumentation #
Der Quellcode der Webseite liegt im Repository pyrox/hx53_de auf der
Forgejo-Instanz.
Funktion #
git-sync klont alle 60 Sekunden den pages-Branch in ein gemeinsames
emptyDir-Volume und hängt den Symlink html atomar auf den neuen Stand um.
nginx liefert aus, was dahinter liegt. Ein neuer Seiteninhalt ist damit nach
spätestens einer Minute live, ohne Neustart des Pods.
Beide Container laufen ohne Root-Rechte und mit schreibgeschütztem Root-Dateisystem. nginx lauscht auf Port 8080, der Service bildet Port 80 darauf ab.
Lokale Anpassungen #
Die Konfiguration erfolgt über values.yaml.
Wichtige Einstellungen #
| Einstellung | Ort | Wert |
|---|---|---|
| Repository und Branch | GITSYNC_REPO, GITSYNC_REF im Container gitsync |
pyrox/hx53_de, pages |
| Hostnamen | Ingress | hx53.de, www.hx53.de |
| nginx-Konfiguration | components/static-site |
gemeinsam mit den anderen statischen Seiten |
Das Repository ist öffentlich, git-sync braucht keine Zugangsdaten.
Installation #
Bereitgestellt über ArgoCD mit Kustomize und Helm. Von Hand:
1kubectl kustomize --enable-helm apps/hx53-de | kubectl apply -n hx53-de -f -Abhängigkeiten #
- Ingress-Controller (Traefik)
- cert-manager für das TLS-Zertifikat
- reloader, damit Änderungen an der nginx-Konfiguration ankommen
- Forgejo-Instanz mit dem Quell-Repository. Fällt sie aus, liefert ein laufender Pod den zuletzt geholten Stand weiter aus.