From 04c2e97b6febf30acd9f2302d1a1f1a308811e98 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Mon, 1 Jul 2024 16:16:11 +1000 Subject: [PATCH 1/2] add app home assistant core --- .../home-assistant/app/core/deployment.yaml | 28 +++++++++++++++++++ .../apps/home-assistant/app/core/ingress.yaml | 20 +++++++++++++ .../apps/home-assistant/app/core/service.yaml | 12 ++++++++ .../apps/home-assistant/home-assistant.yaml | 15 ++++++++++ .../namespaces/namespaces/home-assistant.yaml | 4 +++ 5 files changed, 79 insertions(+) create mode 100644 kubernetes/apps/home-assistant/app/core/deployment.yaml create mode 100644 kubernetes/apps/home-assistant/app/core/ingress.yaml create mode 100644 kubernetes/apps/home-assistant/app/core/service.yaml create mode 100644 kubernetes/apps/home-assistant/home-assistant.yaml create mode 100644 kubernetes/infrastructure/namespaces/namespaces/home-assistant.yaml diff --git a/kubernetes/apps/home-assistant/app/core/deployment.yaml b/kubernetes/apps/home-assistant/app/core/deployment.yaml new file mode 100644 index 0000000..b40df00 --- /dev/null +++ b/kubernetes/apps/home-assistant/app/core/deployment.yaml @@ -0,0 +1,28 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: home-assistant + name: home-assistant + namespace: home-assistant +spec: + replicas: 1 + selector: + matchLabels: + app: home-assistant + template: + metadata: + labels: + app: home-assistant + spec: + containers: + - image: homeassistant/home-assistant:2024.7.0b6 + name: home-assistant + volumeMounts: + - mountPath: "/config" + name: ha-storage + volumes: + - name: ha-storage + hostPath: + path: /mnt/nfs/AppData/home-assistant/home-assistant + type: Directory diff --git a/kubernetes/apps/home-assistant/app/core/ingress.yaml b/kubernetes/apps/home-assistant/app/core/ingress.yaml new file mode 100644 index 0000000..d435acb --- /dev/null +++ b/kubernetes/apps/home-assistant/app/core/ingress.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: home-assistant-ingress + namespace: home-assistant + annotations: + nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/use-regex: "true" +spec: + rules: + - host: home-assistant.cluster.local + http: + paths: + - pathType: Prefix + path: / + backend: + service: + name: home-assistant + port: + number: 8123 \ No newline at end of file diff --git a/kubernetes/apps/home-assistant/app/core/service.yaml b/kubernetes/apps/home-assistant/app/core/service.yaml new file mode 100644 index 0000000..d947e97 --- /dev/null +++ b/kubernetes/apps/home-assistant/app/core/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: home-assistant + namespace: home-assistant +spec: + selector: + app: home-assistant + ports: + - protocol: TCP + port: 8123 + name: http \ No newline at end of file diff --git a/kubernetes/apps/home-assistant/home-assistant.yaml b/kubernetes/apps/home-assistant/home-assistant.yaml new file mode 100644 index 0000000..fe4887f --- /dev/null +++ b/kubernetes/apps/home-assistant/home-assistant.yaml @@ -0,0 +1,15 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: home-assistant-core + namespace: home-assistant +spec: + interval: 10m + timeout: 1m30s + retryInterval: 30s + path: ./kubernetes/apps/home-assistant/app/core + prune: true + sourceRef: + kind: GitRepository + namespace: flux-system + name: flux-system \ No newline at end of file diff --git a/kubernetes/infrastructure/namespaces/namespaces/home-assistant.yaml b/kubernetes/infrastructure/namespaces/namespaces/home-assistant.yaml new file mode 100644 index 0000000..7c1d06d --- /dev/null +++ b/kubernetes/infrastructure/namespaces/namespaces/home-assistant.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: home-assistant From 32f7b57854a3b3674ee629a2443b4a3c25295385 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Mon, 1 Jul 2024 17:44:23 +1000 Subject: [PATCH 2/2] add home assistant addon node-red --- .../app/add-on/node-red/deployment.yaml | 36 +++++++++++++++++++ .../app/add-on/node-red/ingress.yaml | 20 +++++++++++ .../app/add-on/node-red/service.yaml | 14 ++++++++ 3 files changed, 70 insertions(+) create mode 100644 kubernetes/apps/home-assistant/app/add-on/node-red/deployment.yaml create mode 100644 kubernetes/apps/home-assistant/app/add-on/node-red/ingress.yaml create mode 100644 kubernetes/apps/home-assistant/app/add-on/node-red/service.yaml diff --git a/kubernetes/apps/home-assistant/app/add-on/node-red/deployment.yaml b/kubernetes/apps/home-assistant/app/add-on/node-red/deployment.yaml new file mode 100644 index 0000000..d5892ca --- /dev/null +++ b/kubernetes/apps/home-assistant/app/add-on/node-red/deployment.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: node-red + namespace: home-assistant + labels: + app: node-red +spec: + replicas: 1 + selector: + matchLabels: + app: node-red + template: + metadata: + labels: + app: node-red + spec: + containers: + - name: node-red + image: nodered/node-red:latest + ports: + - containerPort: 1880 + name: node-red-ui + securityContext: + privileged: true + volumeMounts: + - name: node-red-data + mountPath: /data + env: + - name: TZ + value: Australia/Sydney + volumes: + - name: node-red-data + hostPath: + path: /mnt/nfs/AppData/home-assistant/node-red + type: Directory \ No newline at end of file diff --git a/kubernetes/apps/home-assistant/app/add-on/node-red/ingress.yaml b/kubernetes/apps/home-assistant/app/add-on/node-red/ingress.yaml new file mode 100644 index 0000000..8f96a53 --- /dev/null +++ b/kubernetes/apps/home-assistant/app/add-on/node-red/ingress.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: node-red-ingress + namespace: home-assistant + annotations: + nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/use-regex: "true" +spec: + rules: + - host: node-red.home-assistant.cluster.local + http: + paths: + - pathType: Prefix + path: / + backend: + service: + name: node-red + port: + number: 1880 \ No newline at end of file diff --git a/kubernetes/apps/home-assistant/app/add-on/node-red/service.yaml b/kubernetes/apps/home-assistant/app/add-on/node-red/service.yaml new file mode 100644 index 0000000..3eb9208 --- /dev/null +++ b/kubernetes/apps/home-assistant/app/add-on/node-red/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: node-red + namespace: home-assistant +spec: + selector: + app: node-red + type: ClusterIP + ports: + - name: node-red-ui + port: 1880 + protocol: TCP + targetPort: node-red-ui \ No newline at end of file