diff --git a/apps/matter-server/README.md b/apps/matter-server/README.md new file mode 100644 index 0000000..b1dcb58 --- /dev/null +++ b/apps/matter-server/README.md @@ -0,0 +1,25 @@ +# Matter Server + +The `matter-server` Argo Application installs the maintained +`home-assistant-matter-server` chart from https://charts.derwitt.dev in `default`, +alongside Home Assistant. Its chart version in `bootstrap/matter-server.yaml` +is the canonical release selection; the upstream chart selects its images. + +Home Assistant connects to `ws://matter-server.default.svc.cluster.local/ws`. +The server uses host networking on `intel-xeon`, with `enp1s0` as its primary +LAN interface. The MikroTik OTBR remains the Thread border router; Matter +Server does not create another Thread network. The WebSocket/dashboard port +is LAN-only and has no public ingress. + +The chart creates `data-matter-server-0`, mounted at `/data`, on the retained +`rook-cephfs-ec` storage class. This contains authoritative Matter fabric keys +and device pairing state. Preserve the entire directory and its permissions +when restoring, stop the server during a filesystem copy, and never run two +controllers against the same data. Restore it to the same claim or an isolated +recovery claim before starting a replacement controller. Losing this state +can require commissioning every device again. + +Backup gap: this new claim is not selected by `apps/backup/` yet. Ceph +replication and the retained volume are not historical backups. No successful +external backup or restore exercise is claimed. Thread credentials on the +MikroTik and Home Assistant configuration are separate recovery material. diff --git a/apps/matter-server/values.yaml b/apps/matter-server/values.yaml new file mode 100644 index 0000000..96440da --- /dev/null +++ b/apps/matter-server/values.yaml @@ -0,0 +1,18 @@ +fullnameOverride: matter-server +networkInterface: enp1s0 +listenAddresses: + - 192.168.0.3 +nodeSelector: + kubernetes.io/hostname: intel-xeon +persistence: + storageClassName: rook-cephfs-ec +resources: + requests: + cpu: 50m + memory: 256Mi +startupProbe: + httpGet: + path: /health + port: http + periodSeconds: 5 + failureThreshold: 60 diff --git a/bootstrap/kustomization.yaml b/bootstrap/kustomization.yaml index b0230e6..2123dda 100644 --- a/bootstrap/kustomization.yaml +++ b/bootstrap/kustomization.yaml @@ -96,6 +96,7 @@ resources: - wiki-js-cnpg.yaml - homeassistant-postgresql.yaml - home-assistant.yaml +- matter-server.yaml - media-project.yaml - plex.yaml - jellyfin.yaml diff --git a/bootstrap/matter-server.yaml b/bootstrap/matter-server.yaml new file mode 100644 index 0000000..1093354 --- /dev/null +++ b/bootstrap/matter-server.yaml @@ -0,0 +1,26 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: matter-server + namespace: argocd +spec: + project: homelab + sources: + - repoURL: https://charts.derwitt.dev + chart: home-assistant-matter-server + targetRevision: 4.4.4 + helm: + releaseName: matter-server + valueFiles: + - $values/apps/matter-server/values.yaml + - repoURL: https://code.brunner.ninja/feedc0de/homelab-gitops.git + targetRevision: main + ref: values + destination: + server: https://kubernetes.default.svc + namespace: default + syncPolicy: + automated: + enabled: true + prune: false + selfHeal: true diff --git a/bootstrap/project.yaml b/bootstrap/project.yaml index 52fe6c6..56c119f 100644 --- a/bootstrap/project.yaml +++ b/bootstrap/project.yaml @@ -6,6 +6,7 @@ metadata: spec: description: Applications managed from the public homelab GitOps repository sourceRepos: + - https://charts.derwitt.dev - https://code.brunner.ninja/feedc0de/homelab-gitops.git - https://brunner.ninja/charts - https://charts.js.wiki