Files
kubernetes/home-assistant/migrate.yaml
Dustin C. Hatch a7eac14d39 home-assistant: Deploy Home Assistant
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.
2023-07-24 17:53:58 -05:00

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