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: 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 securityContext: runAsUser: 300 runAsGroup: 300 volumeMounts: - name: home-assistant-data mountPath: /config subPath: data securityContext: fsGroup: 300 volumes: - name: home-assistant-data persistentVolumeClaim: claimName: home-assistant