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.
92 lines
2.4 KiB
YAML
92 lines
2.4 KiB
YAML
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: migrate
|
|
data:
|
|
migrate-hass.sh: |-
|
|
#!/bin/sh
|
|
|
|
dnf install -y rsync openssh-clients
|
|
rsync -ai dustin@rosalina.pyrocufflink.blue:/var/tmp/hass2-restore/var/lib/homeassistant/ /config/
|
|
chown -R 300:300 /config/
|
|
|
|
sed -i \
|
|
-e /server_host/d \
|
|
-e 's/::1/172.30.0.160/28/' \
|
|
/config/http.yaml
|
|
|
|
migrate-mosquitto.sh: |-
|
|
#!/bin/sh
|
|
|
|
dnf install -y rsync openssh-clients
|
|
rsync -ai dustin@rosalina.pyrocufflink.blue:/var/tmp/hass2-restore/var/lib/mosquitto/ /mosquitto/data/
|
|
chown -R 300:300 /mosquitto/data
|
|
|
|
migrate-zigbee2mqtt.sh: |-
|
|
#!/bin/sh
|
|
|
|
dnf install -y rsync openssh-clients
|
|
rsync -ai dustin@rosalina.pyrocufflink.blue:/var/tmp/hass2-restore/var/lib/zigbee2mqtt/ /app/data/
|
|
chown -R 302:302 /app/data/
|
|
|
|
sed -i \
|
|
-e 's@^ server: .*@ server: mqtts://mqtt.pyrocufflink.blue:30783@' \
|
|
/app/data/configuration.yaml
|
|
|
|
migrate-zwavejs2mqtt.sh: |-
|
|
#!/bin/sh
|
|
|
|
dnf install -y rsync openssh-clients
|
|
rsync -ai dustin@rosalina.pyrocufflink.blue:/var/tmp/hass2-restore/var/lib/zwavejs/ /usr/src/app/store/
|
|
chown -R 303:303 /usr/src/app/store/
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
name: home-assistant-migrate
|
|
spec:
|
|
containers:
|
|
- image: registry.fedoraproject.org/fedora
|
|
name: migrate
|
|
command:
|
|
- python3
|
|
- -c
|
|
- 'from signal import *;signal(SIGTERM, lambda x, y: None);pause()'
|
|
volumeMounts:
|
|
#- mountPath: /config
|
|
# name: home-assistant-data
|
|
# subPath: data
|
|
#- mountPath: /mosquitto/data
|
|
# name: mosquitto-data
|
|
# subPath: data
|
|
#- mountPath: /app/data
|
|
# name: zigbee2mqtt-data
|
|
# subPath: data
|
|
- mountPath: /usr/src/app/store
|
|
name: zwavejs2mqtt-data
|
|
subPath: data
|
|
- mountPath: /run/migrate.sh
|
|
name: migrate-script
|
|
#subPath: migrate-hass.sh
|
|
#subPath: migrate-mosquitto.sh
|
|
#subPath: migrate-zigbee2mqtt.sh
|
|
subPath: migrate-zwavejs2mqtt.sh
|
|
volumes:
|
|
#- name: home-assistant-data
|
|
# persistentVolumeClaim:
|
|
# claimName: home-assistant
|
|
#- name: mosquitto-data
|
|
# persistentVolumeClaim:
|
|
# claimName: mosquitto
|
|
#- name: zigbee2mqtt-data
|
|
# persistentVolumeClaim:
|
|
# claimName: zigbee2mqtt
|
|
- name: zwavejs2mqtt-data
|
|
persistentVolumeClaim:
|
|
claimName: zwavejs2mqtt
|
|
- name: migrate-script
|
|
configMap:
|
|
name: migrate
|
|
defaultMode: 0755
|