Instalar Home Assistant no Kubernetes com OpenMediaVault
Este guia mostra como instalar o Home Assistant em um cluster Kubernetes rodando sobre OpenMediaVault. Inclui configuração de volumes persistentes, criação de arquivos YAML de deployment e service, e exposição do serviço para acesso externo.
1. Pré-requisitos
- Kubernetes já instalado e funcional no servidor OpenMediaVault.
- kubectl configurado para acessar o cluster.
- Storage provisionado (pode ser via NFS, hostPath ou outro backend suportado).
2. Criar Volume Persistente (PV) e PersistentVolumeClaim (PVC)
O Home Assistant precisa de armazenamento persistente para manter suas configurações.
apiVersion: v1
kind: PersistentVolume
metadata:
name: ha-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /srv/k8s/homeassistant
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ha-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
3. Deployment do Home Assistant
Crie o deployment para rodar o container oficial do Home Assistant.
apiVersion: apps/v1
kind: Deployment
metadata:
name: home-assistant
spec:
replicas: 1
selector:
matchLabels:
app: home-assistant
template:
metadata:
labels:
app: home-assistant
spec:
containers:
- name: home-assistant
image: ghcr.io/home-assistant/home-assistant:stable
ports:
- containerPort: 8123
volumeMounts:
- name: ha-storage
mountPath: /config
volumes:
- name: ha-storage
persistentVolumeClaim:
claimName: ha-pvc
4. Service para expor o Home Assistant
Você pode expor via NodePort ou Ingress. Exemplo com NodePort:
apiVersion: v1
kind: Service
metadata:
name: home-assistant
spec:
type: NodePort
selector:
app: home-assistant
ports:
- port: 8123
targetPort: 8123
nodePort: 30123
5. Acesso ao Home Assistant
- Após aplicar os manifests, o Home Assistant estará acessível em
http://<IP-do-nó>:30123. - Se preferir, configure um Ingress Controller para expor via domínio e HTTPS.
6. Boas práticas
- Use Ingress + Cert-Manager para HTTPS.
- Configure backups regulares do volume persistente.
- Monitore os recursos com kubectl logs e kubectl describe.

