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 | ||
ingress-nginx.yaml |
README.md
Ingress Setup
Deploy ingress-nginx
Using ingress-nginx in host network mode. Assign the ingress custom role to nodes that will handle incoming traffic (e.g. have DNS names pointed to their addresses)
kubectl label node k8s-amd64-n{0,1,2}.pyrocufflink.blue kubernetes.io/role=ingress
kubectl create secret tls pyrocufflink-cert \
--cert ~/certs/certificates/_.pyrocufflink.net.crt \
--key ~/certs/certificates/_.pyrocufflink.net.key
kubectl apply -f ingress-nginx.yaml