apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app.kubernetes.io/component: home-assistant app.kubernetes.io/name: home-assistant app.kubernetes.io/part-of: home-assistant name: home-assistant spec: accessModes: - ReadWriteOnce resources: requests: storage: 60Gi --- apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/component: home-assistant app.kubernetes.io/name: home-assistant app.kubernetes.io/part-of: home-assistant name: home-assistant spec: ports: - port: 8123 name: http selector: app.kubernetes.io/component: home-assistant app.kubernetes.io/name: home-assistant --- apiVersion: apps/v1 kind: StatefulSet metadata: labels: app.kubernetes.io/component: home-assistant app.kubernetes.io/name: home-assistant app.kubernetes.io/part-of: home-assistant name: home-assistant spec: serviceName: home-assistant selector: matchLabels: app.kubernetes.io/component: home-assistant app.kubernetes.io/name: home-assistant template: metadata: labels: app.kubernetes.io/component: home-assistant app.kubernetes.io/name: home-assistant app.kubernetes.io/part-of: home-assistant spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 preference: matchExpressions: - key: kubernetes.io/arch operator: In values: - arm64 containers: - name: home-assistant image: ghcr.io/home-assistant/home-assistant:2023.10.3 env: - name: TZ value: America/Chicago ports: - containerPort: 8123 name: http readinessProbe: &probe httpGet: port: 8123 path: / failureThreshold: 3 periodSeconds: 60 successThreshold: 1 timeoutSeconds: 1 startupProbe: <<: *probe failureThreshold: 300 periodSeconds: 3 initialDelaySeconds: 3 volumeMounts: - name: home-assistant-data mountPath: /config subPath: data hostUsers: false volumes: - name: home-assistant-data persistentVolumeClaim: claimName: home-assistant