homelab-k3s/apps/home-assistant/deployment.yaml

75 lines
2.2 KiB
YAML
Raw Permalink Normal View History

# Originally installed via helm chart home-assistant-13.3.0 (release record no
# longer in cluster); managed as a raw manifest since. Selector labels are
# immutable — do not change them.
# NOTE: /config/configuration.yaml (on the PV, not in git) must keep
# http.trusted_proxies: [10.42.0.0/16] so traefik can reach HA from any node.
apiVersion: apps/v1
kind: Deployment
metadata:
name: home-assistant
namespace: home-assistant
labels:
app.kubernetes.io/instance: home-assistant
app.kubernetes.io/name: home-assistant
spec:
replicas: 1
revisionHistoryLimit: 3
selector:
matchLabels:
app.kubernetes.io/instance: home-assistant
app.kubernetes.io/name: home-assistant
strategy:
type: Recreate
template:
metadata:
labels:
app.kubernetes.io/instance: home-assistant
app.kubernetes.io/name: home-assistant
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: cpu
operator: In
values:
- arm
- key: controller
operator: NotIn
values:
- "true"
containers:
- name: home-assistant
image: ghcr.io/home-assistant/home-assistant:stable
imagePullPolicy: Always
env:
- name: TZ
value: UTC
ports:
- name: http
containerPort: 8123
protocol: TCP
startupProbe:
tcpSocket:
port: 8123
failureThreshold: 30
periodSeconds: 5
livenessProbe:
tcpSocket:
port: 8123
failureThreshold: 3
periodSeconds: 10
readinessProbe:
tcpSocket:
port: 8123
failureThreshold: 3
periodSeconds: 10
volumeMounts:
- name: config
mountPath: /config
volumes:
- name: config
persistentVolumeClaim:
claimName: home-assistant