Files
infrastructure/kubernetes/homeassistant/0-ha-dep.yml
2026-02-15 17:18:35 -07:00

97 lines
2.2 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: homeassistant
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: homeassistant
namespace: homeassistant
spec:
replicas: 1
selector:
matchLabels:
app: homeassistant
template:
metadata:
labels:
app: homeassistant
spec:
hostNetwork: true
containers:
- name: homeassistant
image: homeassistant/home-assistant:stable
imagePullPolicy: Always
env:
- name: TZ
value: "America/Denver"
- name: OPENAI_BASE_URL
value: "http://openwebui.beefalo-newton.ts.net/v1"
volumeMounts:
- name: config
mountPath: /config
- name: localtime
mountPath: /etc/localtime
readOnly: true
- name: zigbee-dongle
mountPath: /dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_0cad0783fc73ef11b46be21e313510fd-if00-port0
securityContext:
privileged: true
capabilities:
add:
- NET_ADMIN
- NET_RAW
volumes:
- name: config
hostPath:
path: /data/homeAssistant/config
type: Directory
- name: localtime
hostPath:
path: /etc/localtime
type: File
- name: zigbee-dongle
hostPath:
path: /dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_0cad0783fc73ef11b46be21e313510fd-if00-port0
type: CharDevice
---
apiVersion: v1
kind: Service
metadata:
name: home-assistant
namespace: homeassistant
spec:
selector:
app: homeassistant
ports:
- name: http
protocol: TCP
port: 8123
targetPort: 8123
type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: home-assistant-ingress
namespace: homeassistant
annotations:
cert-manager.io/cluster-issuer: cloudflare-issuer
spec:
ingressClassName: nginx
tls:
- hosts:
- ha.alexmickelson.guru
secretName: ha-tls-cert
rules:
- host: ha.alexmickelson.guru
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: home-assistant
port:
number: 8123