Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

solarchart.de

Inhaltsverzeichnis

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 /solarchart von zyria.de und www.zyria.de. Traefik entfernt das Präfix, bevor die Anfrage nginx erreicht. Maßgeblich ist der Ingress in values.yaml.
  • Repository und Branch stehen in GITSYNC_REPO und GITSYNC_REF im Container gitsync.

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 localnet und authentik
  • reloader, damit Änderungen an der nginx-Konfiguration ankommen
  • Secret solarchart-de-git im Namespace
  • Forgejo-Instanz mit dem Quell-Repository
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin