moore home assistant
This commit is contained in:
@@ -34,4 +34,3 @@ spec:
|
|||||||
- name: config-dir
|
- name: config-dir
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: config
|
claimName: config
|
||||||
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
name: homeassistant-ingress
|
name: homeassistant
|
||||||
spec:
|
spec:
|
||||||
entryPoints:
|
entryPoints:
|
||||||
- websecure
|
- websecure
|
||||||
routes:
|
routes:
|
||||||
- match: Host(`home.kluster.moll.re`) && !Path(`/api/prometheus`)
|
- match: Host(`homeassistant.kluster.moll.re`)
|
||||||
middlewares:
|
middlewares:
|
||||||
- name: homeassistant-websocket
|
- name: homeassistant
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: homeassistant-web
|
- name: homeassistant
|
||||||
port: 8123
|
port: 8123
|
||||||
tls:
|
tls:
|
||||||
certResolver: default-tls
|
certResolver: default-tls
|
||||||
@@ -19,7 +19,7 @@ spec:
|
|||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: Middleware
|
kind: Middleware
|
||||||
metadata:
|
metadata:
|
||||||
name: homeassistant-websocket
|
name: homeassistant
|
||||||
spec:
|
spec:
|
||||||
headers:
|
headers:
|
||||||
customRequestHeaders:
|
customRequestHeaders:
|
||||||
20
apps/homeassistant/base/kustomization.yaml
Normal file
20
apps/homeassistant/base/kustomization.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
# - namespace.yaml # not managed by kustomize but created as needed by the argo app. creates conflicts otherwise since both overlays share the same namespace
|
||||||
|
- ingress.yaml
|
||||||
|
- pvc.yaml
|
||||||
|
- service.yaml
|
||||||
|
- deployment.yaml
|
||||||
|
- servicemonitor.yaml
|
||||||
|
|
||||||
|
|
||||||
|
images:
|
||||||
|
- name: homeassistant
|
||||||
|
newName: homeassistant/home-assistant
|
||||||
|
newTag: "2025.10"
|
||||||
|
|
||||||
|
configurations:
|
||||||
|
# allow nameReference to work with different mentions of the same resource as well
|
||||||
|
- name_reference.yaml
|
||||||
32
apps/homeassistant/base/name_reference.yaml
Normal file
32
apps/homeassistant/base/name_reference.yaml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
nameReference:
|
||||||
|
# Tie target Service metadata.name to other ingressroute fields
|
||||||
|
- kind: Service
|
||||||
|
fieldSpecs:
|
||||||
|
# rewrite the backend service name
|
||||||
|
- kind: IngressRoute
|
||||||
|
group: traefik.io
|
||||||
|
version: v1alpha1
|
||||||
|
path: spec/routes/services/name
|
||||||
|
|
||||||
|
# adapt the ingress url
|
||||||
|
# DOES NOT WORK
|
||||||
|
- kind: IngressRoute
|
||||||
|
group: traefik.io
|
||||||
|
version: v1alpha1
|
||||||
|
path: /spec/routes/match
|
||||||
|
create: false
|
||||||
|
|
||||||
|
# adapt any middleware names
|
||||||
|
- kind: IngressRoute
|
||||||
|
group: traefik.io
|
||||||
|
version: v1alpha1
|
||||||
|
path: spec/routes/middlewares/name
|
||||||
|
|
||||||
|
# Update deployment volume mounts according to name changes in the sealedsecret
|
||||||
|
- kind: SealedSecret
|
||||||
|
fieldSpecs:
|
||||||
|
# volume mounts:
|
||||||
|
- kind: Deployment
|
||||||
|
group: apps
|
||||||
|
version: v1
|
||||||
|
path: spec/template/spec/volumes/secret/secretName
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: homeassistant-web
|
name: homeassistant
|
||||||
labels:
|
labels:
|
||||||
app: homeassistant
|
app: homeassistant
|
||||||
spec:
|
spec:
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
namespace: homeassistant
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- namespace.yaml
|
|
||||||
- ingress.yaml
|
|
||||||
- pvc.yaml
|
|
||||||
- service.yaml
|
|
||||||
- deployment.yaml
|
|
||||||
- servicemonitor.yaml
|
|
||||||
|
|
||||||
|
|
||||||
images:
|
|
||||||
- name: homeassistant
|
|
||||||
newName: homeassistant/home-assistant
|
|
||||||
newTag: "2025.10"
|
|
||||||
3
apps/homeassistant/overlays/flat/ingress.patch.yaml
Normal file
3
apps/homeassistant/overlays/flat/ingress.patch.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
- op: replace
|
||||||
|
path: /spec/routes/0/match
|
||||||
|
value: Host(`home.kluster.moll.re`)
|
||||||
17
apps/homeassistant/overlays/flat/kustomization.yaml
Normal file
17
apps/homeassistant/overlays/flat/kustomization.yaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- ../../base
|
||||||
|
|
||||||
|
namespace: homeassistant
|
||||||
|
nameSuffix: -flat
|
||||||
|
labels:
|
||||||
|
- includeSelectors: true
|
||||||
|
pairs:
|
||||||
|
env: flat
|
||||||
|
|
||||||
|
patches:
|
||||||
|
- path: ingress.patch.yaml
|
||||||
|
target:
|
||||||
|
kind: IngressRoute
|
||||||
3
apps/homeassistant/overlays/house/ingress.patch.yaml
Normal file
3
apps/homeassistant/overlays/house/ingress.patch.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
- op: replace
|
||||||
|
path: /spec/routes/0/match
|
||||||
|
value: Host(`home-house.kluster.moll.re`)
|
||||||
28
apps/homeassistant/overlays/house/kustomization.yaml
Normal file
28
apps/homeassistant/overlays/house/kustomization.yaml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- ../../base
|
||||||
|
- wireguard-config.sealedsecret.yaml
|
||||||
|
|
||||||
|
|
||||||
|
namespace: homeassistant
|
||||||
|
nameSuffix: -house
|
||||||
|
labels:
|
||||||
|
- includeSelectors: true
|
||||||
|
pairs:
|
||||||
|
env: house
|
||||||
|
|
||||||
|
images:
|
||||||
|
- name: wireguard
|
||||||
|
newName: ghcr.io/linuxserver/wireguard
|
||||||
|
newTag: "1.0.20250521"
|
||||||
|
|
||||||
|
patches:
|
||||||
|
- path: wireguard.deployment.yaml
|
||||||
|
target:
|
||||||
|
kind: Deployment
|
||||||
|
name: homeassistant
|
||||||
|
- path: ingress.patch.yaml
|
||||||
|
target:
|
||||||
|
kind: IngressRoute
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
apiVersion: bitnami.com/v1alpha1
|
||||||
|
kind: SealedSecret
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
# WARNING - the originial secret was named wireguard-config-house, but we remove the suffix here, anticipating that it will be created by the kustomization overlay
|
||||||
|
name: wireguard-config
|
||||||
|
namespace: homeassistant
|
||||||
|
spec:
|
||||||
|
encryptedData:
|
||||||
|
wireguard.conf: AgAz726k7X6IsabWUPX8kQ8r19mBq/N+YytlFS1gW2LUiYqc6H/O5/tqma5lLcazuxtsQhebeoitp2SkH7jTU8vRxn2tDWpyzcJr+BW4vKnghw5NhMbkNOzl7mvc7QIJk6rmRyD1umu33v6x8u3St9TVsUOI1zXJyXHxlbLdHVCORhgV79CGLjghpi23KyyFu6LzNrE5rhpB0Q7NzPUmbm5MHPNbtLsmImd/CZ9XjbyXSq0be8BgpUtGDE/NMx65G2+lLIw3EgbNwlirw/XKrM+pUIvEI6CxuNhbEM7KxCYlq2Du6bm7XsKHRzNu9oSfH+P4DaDoDt+M5k5miv4B8TIKXg7piy5mThXSTcVf5YpLJCiTfMDZOriG1ygr9gbJPYY1jumZA+vsZCvBx1o21BlNycWZWKBeYZZh47Hz9FGI/Smn8dOs5exZ34MrQtM4OuEqC/cJY8fdQ+nmGMezL0IKdbtpWgq5UqNH/wWv3F9kItB4KlSD4YtEGaY2z68BJG6t+9igSJCWmVca0EbOzhV0s5rI39ASVXOO50x774EEWUueoyfI+l5vwtQhc96I5Qn3kbFhwov0tHMg/IGBtS/7XdBBtOBx9KbcUHq1GlwWzQdw8WnRB6yyUVCqXyuExRhMPz5orqkTQwiUM2Fjse7xxnaEA0mbi0TVPKV/sFgWixvHqy3VAc1Jj6MEAWFAu+kPVlOFFCckEC5kPhNPFhBMeYX/3IblRjly/EHvrbrW/eFjNYE7bqpSCVhkB8bOXbJqt29V3+ffM1z/RkdSusgqdwid9CXhQw6SKAI/vcAqqxXdzcsbG1wsgP9bJ1Gk/i9ch8zUn7MwcFe6Tla86+xeiDIAmQmA7rhtmWhyyuxXdw+HXAFNhrbxHaUw3LZOExM+RzhWNepjSLnCBqnrtPkzFrHE02JKebWzX+IRZIOsEXJVhKTiSSjoB2v8h956kO+C7bdHz8GbxoJKJ7anrqFG13A//XLy5PvKr50qs/gQptrl9UtR7oj981bSDTVVa8h3OXbGLkZXly/qxsh5DlEjwnw2/2UqS+5yTT4FO/dNVtHryJ2tbc8ZuIHb6C/pQygqpseagthkm5T+Dv0T2xWpXFrvuktGNm58Cwg9bwNMcC6iofcjQP5JeNcat3RwzbJ9xwU4Nm8xLRMMc0ul6xUHRrL3ZjDfWHLuSuTp28HqXZ6xSKLlrRVjwZ6Mp/hhxj58SfVfLVIQxatGkwnIaHEFWE2n3S7m/iQO9tZIWCx5Yfs15atb1Ze8HjKjQ4o3sfaMD8Eokj9aFnXQQxpnOuSI3NLETe79QQ==
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
name: wireguard-config-house
|
||||||
|
namespace: homeassistant
|
||||||
|
type: Opaque
|
||||||
24
apps/homeassistant/overlays/house/wireguard.deployment.yaml
Normal file
24
apps/homeassistant/overlays/house/wireguard.deployment.yaml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: homeassistant
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: wireguard-sidecar
|
||||||
|
image: wireguard
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
|
||||||
|
|
||||||
|
volumeMounts:
|
||||||
|
- name: wireguard-config
|
||||||
|
mountPath: /config/wg_confs/
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: wireguard-config
|
||||||
|
secret:
|
||||||
|
secretName: wireguard-config
|
||||||
|
|
||||||
|
|
||||||
@@ -1,18 +1,20 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: homeassistant-application
|
name: homeassistant-flat-application
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
project: apps
|
project: apps
|
||||||
source:
|
source:
|
||||||
repoURL: ssh://git@git.kluster.moll.re:2222/remoll/k3s-infra.git
|
repoURL: ssh://git@git.kluster.moll.re:2222/remoll/k3s-infra.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: apps/homeassistant
|
path: apps/homeassistant/overlays/flat
|
||||||
destination:
|
destination:
|
||||||
server: https://kubernetes.default.svc
|
server: https://kubernetes.default.svc
|
||||||
namespace: homeassistant
|
namespace: homeassistant
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
selfHeal: true
|
selfHeal: true
|
||||||
23
kluster-deployments/homeassistant/house.application.yaml
Normal file
23
kluster-deployments/homeassistant/house.application.yaml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: homeassistant-house-application
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: apps
|
||||||
|
source:
|
||||||
|
repoURL: ssh://git@git.kluster.moll.re:2222/remoll/k3s-infra.git
|
||||||
|
targetRevision: main
|
||||||
|
path: apps/homeassistant/overlays/house
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: homeassistant
|
||||||
|
syncPolicy:
|
||||||
|
managedNamespaceMetadata:
|
||||||
|
labels:
|
||||||
|
pod-security.kubernetes.io/enforce: privileged
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
@@ -2,3 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- application.yaml
|
- application.yaml
|
||||||
|
- house.application.yaml
|
||||||
|
|||||||
Reference in New Issue
Block a user