This commit adds resources for deploying the Home Assistant ecosystem inside Kubernetes. Home Assistant itself, as well as Mosquitto, are just normal Pods, managed by StatefulSets, that can run anywhere. ZWaveJS2MQTT and Zigbee2MQTT, on the other hand, have to run on a special node (a Raspberry Pi), where the respective controllers are attached. The Home Assistant UI is exposed externally via an Ingress resource. The MQTT broker is also exposed externally, using the TCP proxy feature of *ingress-nginx*. Additionally, the Zigbee2MQTT and ZWaveJS2MQTT control panels are exposed via Ingress resources, but these are protected by Authelia. |
||
---|---|---|
.. | ||
README.md | ||
longhorn-ingress.yaml | ||
longhorn-settings.yaml | ||
longhorn.yaml |
README.md
Persistent Storage Using Longhorn
Longhorn is a Kubernetes-native persistent storage system. It is quite complex, but installing it is fairly straightforward.
Installation
This is mostly based on the official Install with Kubectl instructions. I wanted to add node selectors to the user-deployed and system-managed components, to ensure that Longhorn only runs on x86_64 nodes, per the Node Selector instructions.
kubectl apply -f longhorn.yaml
Ingress
Expose the Longhorn UI outside the cluster:
kubectl apply -f longhorn-ingress.yaml
Authentication to the UI is handled by Authelia.