mirror of
https://github.com/auricom/home-cluster.git
synced 2025-09-17 18:24:14 +02:00
⬆️ zigbee2mqtt app template v2
This commit is contained in:
@@ -10,7 +10,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: app-template
|
chart: app-template
|
||||||
version: 1.5.1
|
version: 2.0.3
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: bjw-s
|
name: bjw-s
|
||||||
@@ -27,13 +27,20 @@ spec:
|
|||||||
uninstall:
|
uninstall:
|
||||||
keepHistory: false
|
keepHistory: false
|
||||||
values:
|
values:
|
||||||
fullnameOverride: *app
|
controllers:
|
||||||
|
main:
|
||||||
|
type: statefulset
|
||||||
|
annotations:
|
||||||
|
reloader.stakater.com/auto: "true"
|
||||||
|
containers:
|
||||||
|
main:
|
||||||
image:
|
image:
|
||||||
repository: koenkk/zigbee2mqtt
|
repository: ghcr.io/koenkk/zigbee2mqtt
|
||||||
tag: 1.33.1
|
tag: 1.33.1
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
TZ: "${TIMEZONE}"
|
TZ: "${TIMEZONE}"
|
||||||
ZIGBEE2MQTT_DATA: /data
|
ZIGBEE2MQTT_DATA: /config
|
||||||
ZIGBEE2MQTT_CONFIG_ADVANCED_HOMEASSISTANT_DISCOVERY_TOPIC: homeassistant
|
ZIGBEE2MQTT_CONFIG_ADVANCED_HOMEASSISTANT_DISCOVERY_TOPIC: homeassistant
|
||||||
ZIGBEE2MQTT_CONFIG_ADVANCED_HOMEASSISTANT_LEGACY_ENTITY_ATTRIBUTES: "true"
|
ZIGBEE2MQTT_CONFIG_ADVANCED_HOMEASSISTANT_LEGACY_ENTITY_ATTRIBUTES: "true"
|
||||||
ZIGBEE2MQTT_CONFIG_ADVANCED_HOMEASSISTANT_LEGACY_TRIGGERS: "true"
|
ZIGBEE2MQTT_CONFIG_ADVANCED_HOMEASSISTANT_LEGACY_TRIGGERS: "true"
|
||||||
@@ -71,23 +78,30 @@ spec:
|
|||||||
ZIGBEE2MQTT_CONFIG_SERIAL_PORT: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
|
ZIGBEE2MQTT_CONFIG_SERIAL_PORT: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
|
||||||
# ZIGBEE2MQTT_CONFIG_DEVICES: devices.yaml
|
# ZIGBEE2MQTT_CONFIG_DEVICES: devices.yaml
|
||||||
# ZIGBEE2MQTT_CONFIG_GROUPS: groups.yaml
|
# ZIGBEE2MQTT_CONFIG_GROUPS: groups.yaml
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 10m
|
||||||
|
memory: 128Mi
|
||||||
|
limits:
|
||||||
|
memory: 512Mi
|
||||||
|
pod:
|
||||||
|
nodeSelector:
|
||||||
|
zzh.feature.node.kubernetes.io/zigbee: "true"
|
||||||
|
statefulset:
|
||||||
|
volumeClaimTemplates:
|
||||||
|
- name: config
|
||||||
|
accessMode: ReadWriteOnce
|
||||||
|
size: 1Gi
|
||||||
|
storageClass: rook-ceph-block
|
||||||
|
globalMounts:
|
||||||
|
- path: /config
|
||||||
service:
|
service:
|
||||||
main:
|
main:
|
||||||
ports:
|
ports:
|
||||||
http:
|
http:
|
||||||
port: &port 8080
|
port: &port 8080
|
||||||
metrics:
|
|
||||||
enabled: true
|
|
||||||
port: 80
|
|
||||||
serviceMonitor:
|
|
||||||
main:
|
|
||||||
enabled: true
|
|
||||||
endpoints:
|
|
||||||
- port: metrics
|
|
||||||
scheme: http
|
|
||||||
path: /metrics
|
|
||||||
interval: 1m
|
|
||||||
scrapeTimeout: 10s
|
|
||||||
ingress:
|
ingress:
|
||||||
main:
|
main:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -99,27 +113,17 @@ spec:
|
|||||||
- host: &host "zigbee.${SECRET_CLUSTER_DOMAIN}"
|
- host: &host "zigbee.${SECRET_CLUSTER_DOMAIN}"
|
||||||
paths:
|
paths:
|
||||||
- path: /
|
- path: /
|
||||||
pathType: Prefix
|
service:
|
||||||
|
name: main
|
||||||
|
port: http
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- *host
|
- *host
|
||||||
securityContext:
|
|
||||||
privileged: true
|
|
||||||
persistence:
|
persistence:
|
||||||
config:
|
|
||||||
enabled: true
|
|
||||||
existingClaim: zigbee2mqtt-config
|
|
||||||
mountPath: "/data"
|
|
||||||
usb:
|
usb:
|
||||||
enabled: true
|
enabled: true
|
||||||
type: hostPath
|
type: hostPath
|
||||||
hostPath: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
|
hostPath: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
|
||||||
hostPathType: CharDevice
|
hostPathType: CharDevice
|
||||||
nodeSelector:
|
globalMounts:
|
||||||
feature.node.kubernetes.io/custom-zigbee: "true"
|
- path: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
memory: 100Mi
|
|
||||||
cpu: 100m
|
|
||||||
limits:
|
|
||||||
memory: 700Mi
|
|
||||||
|
@@ -5,8 +5,5 @@ namespace: default
|
|||||||
resources:
|
resources:
|
||||||
- ./gatus.yaml
|
- ./gatus.yaml
|
||||||
- ./helmrelease.yaml
|
- ./helmrelease.yaml
|
||||||
- ./prometheusrule.yaml
|
|
||||||
- ./volsync.yaml
|
- ./volsync.yaml
|
||||||
- ./volume.yaml
|
- ./volume.yaml
|
||||||
patches:
|
|
||||||
- path: ./patches/exporter.yaml
|
|
||||||
|
@@ -1,40 +0,0 @@
|
|||||||
---
|
|
||||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2beta1.json
|
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: &app zigbee2mqtt
|
|
||||||
namespace: default
|
|
||||||
spec:
|
|
||||||
values:
|
|
||||||
additionalContainers:
|
|
||||||
exporter:
|
|
||||||
name: exporter
|
|
||||||
image: docker.io/kpetrem/mqtt-exporter:latest@sha256:fbff8472a18239297e699955b43695f714e4fa6fdd7a36875a65375e2dfa8e67
|
|
||||||
env:
|
|
||||||
- name: LOG_LEVEL
|
|
||||||
value: DEBUG
|
|
||||||
- name: LOG_MQTT_MESSAGE
|
|
||||||
value: "True"
|
|
||||||
- name: MQTT_ADDRESS
|
|
||||||
value: emqx.default.svc.cluster.local
|
|
||||||
- name: MQTT_TOPIC
|
|
||||||
value: "zigbee2mqtt/#"
|
|
||||||
- name: MQTT_V5_PROTOCOL
|
|
||||||
value: "True"
|
|
||||||
- name: MQTT_USERNAME
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: emqx-secret
|
|
||||||
key: user_1_username
|
|
||||||
- name: MQTT_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: emqx-secret
|
|
||||||
key: user_1_password
|
|
||||||
- name: PROMETHEUS_PORT
|
|
||||||
value: &port 80
|
|
||||||
- name: PROMETHEUS_PREFIX
|
|
||||||
value: zigbee2mqtt_
|
|
||||||
- name: ZIGBEE2MQTT_AVAILABILITY
|
|
||||||
value: "True"
|
|
@@ -1,34 +0,0 @@
|
|||||||
---
|
|
||||||
# yaml-language-server: $schema=https://kubernetes-schemas.devbu.io/prometheusrule_v1.json
|
|
||||||
apiVersion: monitoring.coreos.com/v1
|
|
||||||
kind: PrometheusRule
|
|
||||||
metadata:
|
|
||||||
name: zigbee2mqtt-exporter
|
|
||||||
namespace: default
|
|
||||||
spec:
|
|
||||||
groups:
|
|
||||||
- name: zigbee2mqtt-exporter.rules
|
|
||||||
rules:
|
|
||||||
- alert: Zigbee2MqttExporterAbsent
|
|
||||||
annotations:
|
|
||||||
summary: Zigbee2Mqtt Exporter has disappeared from Prometheus target discovery.
|
|
||||||
expr: absent(up{job="zigbee2mqtt"} == 1)
|
|
||||||
for: 15m
|
|
||||||
labels:
|
|
||||||
severity: critical
|
|
||||||
# - alert: Zigbee2MqttUnavailable
|
|
||||||
# annotations:
|
|
||||||
# summary: The zigbee device connection is lost,
|
|
||||||
# connection on topic {{$labels.topic}} is down.
|
|
||||||
# expr: zigbee2mqtt_zigbee_availability == 0
|
|
||||||
# for: 60m
|
|
||||||
# labels:
|
|
||||||
# severity: critical
|
|
||||||
- alert: Zigbee2MqttBatteryLow
|
|
||||||
annotations:
|
|
||||||
summary: The zigbee device battery level is low,
|
|
||||||
battery level on topic {{$labels.topic}} is at {{$value}}%.
|
|
||||||
expr: zigbee2mqtt_battery < 10
|
|
||||||
for: 60m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
@@ -30,7 +30,7 @@ metadata:
|
|||||||
name: zigbee2mqtt
|
name: zigbee2mqtt
|
||||||
namespace: default
|
namespace: default
|
||||||
spec:
|
spec:
|
||||||
sourcePVC: zigbee2mqtt-config
|
sourcePVC: config-zigbee2mqtt-0
|
||||||
trigger:
|
trigger:
|
||||||
schedule: "0 7 * * *"
|
schedule: "0 7 * * *"
|
||||||
restic:
|
restic:
|
||||||
|
@@ -101,19 +101,6 @@ spec:
|
|||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- *host
|
- *host
|
||||||
pod:
|
|
||||||
nodeSelector:
|
|
||||||
aeotec.feature.node.kubernetes.io/zwave: "true"
|
|
||||||
statefulset:
|
|
||||||
volumeClaimTemplates:
|
|
||||||
- name: config
|
|
||||||
accessMode: ReadWriteOnce
|
|
||||||
size: 1Gi
|
|
||||||
storageClass: ceph-block
|
|
||||||
globalMounts:
|
|
||||||
- path: /usr/src/app/store
|
|
||||||
securityContext:
|
|
||||||
privileged: true
|
|
||||||
persistence:
|
persistence:
|
||||||
usb:
|
usb:
|
||||||
type: hostPath
|
type: hostPath
|
||||||
|
@@ -52,18 +52,6 @@ spec:
|
|||||||
- vendor
|
- vendor
|
||||||
- device
|
- device
|
||||||
custom:
|
custom:
|
||||||
- name: "zwave"
|
|
||||||
matchOn:
|
|
||||||
- usbId:
|
|
||||||
class: ["02"]
|
|
||||||
vendor: ["0658"]
|
|
||||||
device: ["0200"]
|
|
||||||
- name: "zigbee"
|
|
||||||
matchOn:
|
|
||||||
- usbId:
|
|
||||||
class: ["ff"]
|
|
||||||
vendor: ["1a86"]
|
|
||||||
device: ["7523"]
|
|
||||||
- name: "rflink"
|
- name: "rflink"
|
||||||
matchOn:
|
matchOn:
|
||||||
- usbId:
|
- usbId:
|
||||||
|
@@ -6,3 +6,4 @@ namespace: kube-system
|
|||||||
resources:
|
resources:
|
||||||
- ./aeotec-zwave-device.yaml
|
- ./aeotec-zwave-device.yaml
|
||||||
- ./google-coral-device.yaml
|
- ./google-coral-device.yaml
|
||||||
|
- ./zzh-zigbee-device.yaml
|
||||||
|
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.devbu.io/nfd.k8s-sigs.io/nodefeaturerule_v1alpha1.json
|
||||||
|
apiVersion: nfd.k8s-sigs.io/v1alpha1
|
||||||
|
kind: NodeFeatureRule
|
||||||
|
metadata:
|
||||||
|
name: zzh-zigbee-device
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- # zzh! CC2652R Multiprotocol RF Stick
|
||||||
|
name: zzh.zigbee
|
||||||
|
labels:
|
||||||
|
zzh.feature.node.kubernetes.io/zigbee: "true"
|
||||||
|
matchFeatures:
|
||||||
|
- feature: usb.device
|
||||||
|
matchExpressions:
|
||||||
|
class: { op: In, value: ["ff"] }
|
||||||
|
vendor: { op: In, value: ["1a86"] }
|
||||||
|
device: { op: In, value: ["7523"] }
|
Reference in New Issue
Block a user