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

OpenDTU

Inhaltsverzeichnis

OpenDTU
#

OpenDTU ist ein ESP32-Gerät, das per Funk mit Hoymiles-Wechselrichtern spricht und deren Leistungsdaten ausliest. Das Gerät bringt seine Weboberfläche selbst mit.

Diese App betreibt nichts — sie macht die Oberfläche des Geräts über den Cluster erreichbar.

Quelle
#

Keine. Es gibt kein Helm-Chart und kein Container-Image; das Verzeichnis enthält ausschließlich Kubernetes-Manifeste.

Dokumentation
#

Funktion
#

Drei Ressourcen in opendtu.yaml:

Ressource Zweck
Endpoints Trägt die IP-Adresse des Geräts im Heimnetz von Hand ein
Service Ein Service ohne Selektor, der genau diese Endpoints verwendet
Ingress Veröffentlicht den Service unter einem eigenen Hostnamen

Das Muster ist der übliche Weg, ein Gerät außerhalb des Clusters wie einen Cluster-Dienst zu behandeln: Ein Service ohne Selektor bekommt normalerweise automatisch erzeugte Endpoints — hier fehlen die Pods, also werden sie von Hand gesetzt.

Das Gerät gewinnt dadurch, ohne selbst etwas zu können:

  • TLS über ein von cert-manager ausgestelltes Zertifikat, statt reines HTTP
  • Anmeldung über Authentik, statt der schwachen Geräteauthentifizierung
  • Beschränkung auf das lokale Netz durch die Middleware localnet

Lokale Anpassungen
#

Wichtige Einstellungen
#

  • Middlewares: localnet und authentik, beide am websecure-EntryPoint.
  • Zertifikat: certs.yaml fordert es über cert-manager an.
  • Adresse des Geräts: steht als Endpoints-Eintrag in opendtu.yaml.

Genau dort liegt der Haken: Die Adresse ist fest eingetragen. Bekommt das Gerät per DHCP eine andere, zeigt der Service ins Leere, ohne dass irgendetwas Alarm schlägt. Dem Gerät eine feste Adresse geben — oder eine DHCP-Reservierung.

Installation
#

Bereitgestellt über ArgoCD mit Kustomize. Von Hand:

1kubectl kustomize apps/opendtu | kubectl apply -n opendtu -f -

Kein --enable-helm nötig, es ist kein Chart im Spiel.

Abhängigkeiten
#

  • Traefik als Ingress-Controller, samt der Middlewares localnet und authentik
  • Authentik für die vorgeschaltete Anmeldung
  • cert-manager für das TLS-Zertifikat
  • Das OpenDTU-Gerät selbst, erreichbar unter der eingetragenen Adresse
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin