solarchart.de #
Stellt die Solarprognose-Seite bereit, eine statische Seite, die die Diagramme eines externen Prognosedienstes einbettet.
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.
Dokumentation #
Der Quellcode der Seite liegt im Repository pyrox/solarchart-forecast auf der
Forgejo-Instanz.
Funktion #
git-sync klont alle 60 Sekunden den Branch main 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 Stand ist ohne Neustart des
Pods nach spätestens einer Minute live.
Zugangsdaten #
Das Repository ist privat. git-sync liest Benutzername und Token aus dem Secret
solarchart-de-git, das nicht in Git liegt und von Hand angelegt wird. Ein
Forgejo-Token mit dem Scope read:repository genügt:
1kubectl -n solarchart-de create secret generic solarchart-de-git \
2 --from-literal=username=pyrox \
3 --from-literal=password='<forgejo-token>'Fehlt das Secret, startet der Pod nicht (CreateContainerConfigError).
Lokale Anpassungen #
Die Konfiguration erfolgt über values.yaml.
Wichtige Einstellungen #
- Ingress: Die Seite hängt nicht unter
solarchart.de, sondern unter dem Pfad/solarchartvonzyria.deundwww.zyria.de. Traefik entfernt das Präfix, bevor die Anfrage nginx erreicht. Maßgeblich ist der Ingress invalues.yaml. - Repository und Branch stehen in
GITSYNC_REPOundGITSYNC_REFim Containergitsync.
Installation #
Bereitgestellt über ArgoCD mit Kustomize und Helm. Von Hand:
1kubectl kustomize --enable-helm apps/solarchart-de | kubectl apply -n solarchart-de -f -Abhängigkeiten #
- Ingress-Controller (Traefik) mit den Middlewares
localnetundauthentik - reloader, damit Änderungen an der nginx-Konfiguration ankommen
- Secret
solarchart-de-gitim Namespace - Forgejo-Instanz mit dem Quell-Repository