From e2d3f8d84cba2a183359e6a27da054dda3600d26 Mon Sep 17 00:00:00 2001 From: "azykov@mail.ru" Date: Sun, 19 Jul 2026 12:55:16 +0300 Subject: [PATCH] zigbee2mqtt --- .gitignore | 1 + .../base/apps/zigbee2mqtt/helmrelease.yaml | 84 +++++++++++++++++++ .../base/apps/zigbee2mqtt/helmrepository.yaml | 8 ++ .../base/apps/zigbee2mqtt/kustomization.yaml | 6 ++ .../base/apps/zigbee2mqtt/secret.enc.yaml | 22 +++++ clusters/base/namespaces/zigbee2mqtt.yaml | 4 + clusters/home/apps/kustomization.yaml | 1 + clusters/home/namespaces/kustomization.yaml | 1 + 8 files changed, 127 insertions(+) create mode 100644 .gitignore create mode 100644 clusters/base/apps/zigbee2mqtt/helmrelease.yaml create mode 100644 clusters/base/apps/zigbee2mqtt/helmrepository.yaml create mode 100644 clusters/base/apps/zigbee2mqtt/kustomization.yaml create mode 100644 clusters/base/apps/zigbee2mqtt/secret.enc.yaml create mode 100644 clusters/base/namespaces/zigbee2mqtt.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1a098d1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +migration-from-old-files/ \ No newline at end of file diff --git a/clusters/base/apps/zigbee2mqtt/helmrelease.yaml b/clusters/base/apps/zigbee2mqtt/helmrelease.yaml new file mode 100644 index 0000000..ed1b885 --- /dev/null +++ b/clusters/base/apps/zigbee2mqtt/helmrelease.yaml @@ -0,0 +1,84 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: zigbee2mqtt + namespace: zigbee2mqtt +spec: + interval: 30m + chart: + spec: + chart: zigbee2mqtt + version: "2.12.1" + sourceRef: + kind: HelmRepository + name: zigbee2mqtt + values: + service: + type: ClusterIP + port: 8080 + + statefulset: + storage: + enabled: true + size: 1Gi + storageClassName: longhorn + secrets: + name: zigbee2mqtt-secrets + + configmap: + enabled: true + # devices.yaml / groups.yaml already exist on the PV and are the live source + # of truth (zigbee2mqtt mutates them as devices pair/rename). Do not set + # configmap.devices here — the chart only seeds devices.yaml from it when + # the file is missing, but leaving it unset avoids any risk of clobbering + # the real data and any drift between this file and reality. + + zigbee2mqtt: + homeassistant: + enabled: true + legacy_entity_attributes: true + + permit_join: false + timezone: Europe/Moscow + + mqtt: + server: "mqtt://mosquitto.mqtt.svc.cluster.local:1883" + user: iot + password: '!secret.yaml mqtt_password' + include_device_information: true + keepalive: 60 + reject_unauthorized: true + version: 4 + + serial: + port: "tcp://10.0.64.72:6638" + adapter: ember + baudrate: 115200 + rtscts: false + + frontend: + enabled: true + port: 8080 + url: "https://zigbee2mqtt.aggtaa.com" + + advanced: + channel: 11 + pan_id: 7410 + ext_pan_id: [46, 22, 201, 245, 48, 186, 40, 6] + network_key: '!secret.yaml network_key' + log_level: info + + ingress: + enabled: true + ingressClassName: traefik + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + hosts: + - host: zigbee2mqtt.aggtaa.com + paths: + - path: / + pathType: Prefix + tls: + - secretName: zigbee2mqtt-tls + hosts: + - zigbee2mqtt.aggtaa.com diff --git a/clusters/base/apps/zigbee2mqtt/helmrepository.yaml b/clusters/base/apps/zigbee2mqtt/helmrepository.yaml new file mode 100644 index 0000000..aef341f --- /dev/null +++ b/clusters/base/apps/zigbee2mqtt/helmrepository.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: zigbee2mqtt + namespace: zigbee2mqtt +spec: + interval: 1h + url: https://charts.zigbee2mqtt.io/ diff --git a/clusters/base/apps/zigbee2mqtt/kustomization.yaml b/clusters/base/apps/zigbee2mqtt/kustomization.yaml new file mode 100644 index 0000000..f6917b9 --- /dev/null +++ b/clusters/base/apps/zigbee2mqtt/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - helmrepository.yaml + - secret.enc.yaml + - helmrelease.yaml diff --git a/clusters/base/apps/zigbee2mqtt/secret.enc.yaml b/clusters/base/apps/zigbee2mqtt/secret.enc.yaml new file mode 100644 index 0000000..86e6c12 --- /dev/null +++ b/clusters/base/apps/zigbee2mqtt/secret.enc.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Secret +metadata: + name: zigbee2mqtt-secrets + namespace: zigbee2mqtt +stringData: + secret.yaml: ENC[AES256_GCM,data:mDb7Vt4sOSaqn9+T3QEAR0yutRIFwiYpBBZDMQI4FMvAPWPkAdsYTIfvv+41JbpBafklDJ5gzPPKZJ6Qk1f8KBvjRuHP/bJqTUPrv+Q46ZKsuXECQq+qB8TKAj51FiJssyx0jYy9bCYgn+Z9r+WBT4YSAvv1XS/UHs4S8UA=,iv:8RHjs0g1ee38yUSHjvQv06Z7xbzMOG6LNzCJ/7s4+Pc=,tag:jb+VgAVApqIpN3lERqrfBg==,type:str] +sops: + age: + - enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkRTdJVkpZRmRseTRvQlB6 + UmZiV1ZZYk1rOWo0cXZ5ZWJIQkZJY0xJc0g4CnJYVGRqanVuTlFPN2ltVExRK0JN + SnVVQm50bDVidkVqTjlocHNoYmQ2bHcKLS0tIE4vNngvQTNqdzQwbVdwVDFNRUhK + bjJVaDFVbkdlRm5mQjZoU3c4VWZqa00K5iO6dClHE2sFi2brd8xVuC1hfH/v0bpM + NK2GgJDcb/mcTFpA62/iHfuNPDYp/FpaNIrqh9LB0i9fxA+61AJZpA== + -----END AGE ENCRYPTED FILE----- + recipient: age14x4jjs2fwdgw28g2pkr6jyj2yzmwc544xwmaaglrxwz5e99seutqtr8jv5 + encrypted_regex: ^(data|stringData)$ + lastmodified: "2026-07-19T09:01:11Z" + mac: ENC[AES256_GCM,data:fKfDsAg1Ya8c//x0xw9ytQR7hiF/BssuqlwA57PYiB1yjCW3Kddcdt95UF1amF+9tvJb2XwRjb2LwN4RrYj0RyScLmLa3u/l1r79EoUKQWQ4qF7GNdD5ZGaxqnWjgorxkfYcU7ahJBRDEIsvJXJivk6Wjm309ISzl8xR/tUpFCM=,iv:TmFo1gbRsATh6O0uJvJxwyj7hSzCfpPPuo55EkQQabk=,tag:CJ0cTn9BJs+87AvdwJ0MsA==,type:str] + version: 3.13.2 diff --git a/clusters/base/namespaces/zigbee2mqtt.yaml b/clusters/base/namespaces/zigbee2mqtt.yaml new file mode 100644 index 0000000..6cb6720 --- /dev/null +++ b/clusters/base/namespaces/zigbee2mqtt.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: zigbee2mqtt diff --git a/clusters/home/apps/kustomization.yaml b/clusters/home/apps/kustomization.yaml index 481d208..648c908 100644 --- a/clusters/home/apps/kustomization.yaml +++ b/clusters/home/apps/kustomization.yaml @@ -2,3 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - ../../base/apps/vaultwarden + - ../../base/apps/zigbee2mqtt diff --git a/clusters/home/namespaces/kustomization.yaml b/clusters/home/namespaces/kustomization.yaml index 592fa79..9ee8217 100644 --- a/clusters/home/namespaces/kustomization.yaml +++ b/clusters/home/namespaces/kustomization.yaml @@ -2,3 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - ../../base/namespaces/vaultwarden.yaml + - ../../base/namespaces/zigbee2mqtt.yaml