From c7cdd494d157804959838d18747eedc16dfae300 Mon Sep 17 00:00:00 2001 From: Gorden Mende Date: Thu, 4 Dec 2025 14:03:37 +0000 Subject: [PATCH] added homeassistant --- deployment.yaml | 40 ++++++++++++++++++++++++++++++++++++++++ namespace.yaml | 4 ++++ pv.yaml | 24 ++++++++++++++++++++++++ pvc.yaml | 14 ++++++++++++++ service.yaml | 16 ++++++++++++++++ storageclass.yaml | 9 +++++++++ 6 files changed, 107 insertions(+) create mode 100644 deployment.yaml create mode 100644 namespace.yaml create mode 100644 pv.yaml create mode 100644 pvc.yaml create mode 100644 service.yaml create mode 100644 storageclass.yaml diff --git a/deployment.yaml b/deployment.yaml new file mode 100644 index 0000000..f79a094 --- /dev/null +++ b/deployment.yaml @@ -0,0 +1,40 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + namespace: homeassistant + name: home-assistant + labels: + app: 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" + imagePullPolicy: Always + securityContext: + privileged: true + ports: + - containerPort: 8123 + volumeMounts: + - mountPath: /config + name: home-assistant-config-volume + - mountPath: /etc/localtime + name: home-assistant-time-volume + readOnly: true + #hostNetwork: true + volumes: + - name: home-assistant-config-volume + persistentVolumeClaim: + claimName: home-assistant-pvc + - name: home-assistant-time-volume + hostPath: + path: /etc/localtime diff --git a/namespace.yaml b/namespace.yaml new file mode 100644 index 0000000..c588a1c --- /dev/null +++ b/namespace.yaml @@ -0,0 +1,4 @@ +kind: Namespace +apiVersion: v1 +metadata: + name: homeassistant diff --git a/pv.yaml b/pv.yaml new file mode 100644 index 0000000..3c66b55 --- /dev/null +++ b/pv.yaml @@ -0,0 +1,24 @@ +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + annotations: + pv.kubernetes.io/provisioned-by: nfs.csi.k8s.io + name: home-assistant-config-pv +spec: + capacity: + storage: 20Gi + accessModes: + - ReadWriteMany + persistentVolumeReclaimPolicy: Retain + storageClassName: nfs-csi + mountOptions: + - nfsvers=4.1 + csi: + driver: nfs.csi.k8s.io + # volumeHandle format: {nfs-server-address}#{sub-dir-name}#{share-name} + # make sure this value is unique for every share in the cluster + volumeHandle: nfs-server.default.svc.cluster.local/share## + volumeAttributes: + server: 192.168.0.40 + share: /volume1/kubernetes/homeassistant diff --git a/pvc.yaml b/pvc.yaml new file mode 100644 index 0000000..f22595b --- /dev/null +++ b/pvc.yaml @@ -0,0 +1,14 @@ +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: home-assistant-pvc + namespace: homeassistant +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 20Gi + volumeName: home-assistant-config-pv + storageClassName: nfs-csi diff --git a/service.yaml b/service.yaml new file mode 100644 index 0000000..7098b2f --- /dev/null +++ b/service.yaml @@ -0,0 +1,16 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: home-assistant-lb + namespace: homeassistant + labels: + app: home-assistant +spec: + ports: + - port: 8123 + targetPort: 8123 + name: home-assistant-web + selector: + app: home-assistant + type: LoadBalancer diff --git a/storageclass.yaml b/storageclass.yaml new file mode 100644 index 0000000..1822cf9 --- /dev/null +++ b/storageclass.yaml @@ -0,0 +1,9 @@ +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + annotations: + storageclass.kubernetes.io/is-default-class: "false" + name: host-path +provisioner: kubernetes.io/host-path +reclaimPolicy: Delete +volumeBindingMode: Immediate