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

Home Assistant

Inhaltsverzeichnis

Home Assistant
#

Deployment
#

Argo Deployment

Quelle
#

Die Anwendung wird als Helm-Chart aus einem privaten Repository auf git.zyria.de bezogen. Das verwendete Docker-Image ist die offizielle home-assistant-Version.

Dokumentation
#

Die offizielle Dokumentation von Home Assistant ist unter www.home-assistant.io/docs/ zu finden.

Funktion
#

Home Assistant (HA) ist eine Steuerungszentrale für Smart-Home-Geräte. Es integriert eine breite Palette von Geräten und Protokollen (z.B. Zigbee, Matter) und ermöglicht es, Automatisierungen zu erstellen, den Zustand von Geräten zu überwachen und alles über eine einheitliche Weboberfläche zu steuern.

Lokale Anpassungen
#

Die Konfiguration erfolgt über die values.yaml-Datei.

Wichtige Einstellungen
#

  • Host-Netzwerk: Home Assistant wird im hostNetwork-Modus betrieben, um die automatische Erkennung von Geräten im lokalen Netzwerk (z.B. über mDNS, UPnP) zu erleichtern.
  • Hardwareabhängigkeit: Der Pod muss auf dem Node ausgeführt werden, an dem die USB-Hardware angeschlossen ist. Dies sollte über einen nodeSelector oder nodeName in der Konfiguration sichergestellt werden.
  • Geräte-Passthrough: Mehrere Geräte werden vom Host-System in den Pod durchgereicht:
    • /dev/ttyACM0: Ein Z-Wave/Zigbee-USB-Stick.
    • /dev/serial/by-id/...ConBee_II...: Ein ConBee II Zigbee-Gateway.
  • Matter-Server: Ein Matter-Server läuft als Sidecar-Container, um die Integration von Matter-Geräten zu ermöglichen.
  • Speicher: Konfiguration (home-assistant-config) und Matter-Server-Daten (home-assistant-matter) werden auf Longhorn-Volumes (PVC) gespeichert. Zusätzlich wird /run/dbus als hostPath für den D-Bus-Zugriff eingebunden.

Installation
#

Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/home-assistant-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:

1kubectl kustomize --enable-helm apps/home-assistant | kubectl apply -n home-assistant -f -

Abhängigkeiten
#

  • Spezifische Hardware: Benötigt einen Kubernetes-Node mit angeschlossenen USB-Geräten (ConBee II Stick).
  • Longhorn: Als Storage-Provider für die PersistentVolumes.
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin