Compare commits

..

5 Commits

Author SHA1 Message Date
Martyn 543aa20d9f Arrrrgggggggghhhhhhh
Signed-off-by: Martyn Ranyard <m@rtyn.berlin>
2024-11-09 16:20:51 +00:00
Martyn 1bcb250284 Fixing the almost nuked z2m
Signed-off-by: Martyn Ranyard <m@rtyn.berlin>
2024-11-09 16:08:11 +00:00
Martyn 1bf04a6d88 Don't hardcode namespaces please!
Signed-off-by: Martyn Ranyard <m@rtyn.berlin>
2024-11-09 15:50:03 +00:00
Martyn 4cc335199c New z2m new copypasta errors
Signed-off-by: Martyn Ranyard <m@rtyn.berlin>
2024-11-09 15:39:14 +00:00
Martyn aecbdfd3b2 New coordinator, new z2m
Signed-off-by: Martyn Ranyard <m@rtyn.berlin>
2024-11-09 15:37:01 +00:00
13 changed files with 248 additions and 3 deletions

View File

@ -4,7 +4,7 @@ kind: Kustomization
helmCharts: helmCharts:
- name: external-dns - name: external-dns
repo: https://charts.bitnami.com/bitnami repo: https://charts.bitnami.com/bitnami
version: 8.5.1 version: 6.28.4
releaseName: external-dns releaseName: external-dns
namespace: external-dns namespace: external-dns
valuesInline: valuesInline:

View File

@ -9,7 +9,6 @@ metadata:
app.kubernetes.io/version: 1.19.1 app.kubernetes.io/version: 1.19.1
helm.sh/chart: zigbee2mqtt-9.4.2 helm.sh/chart: zigbee2mqtt-9.4.2
name: zigbee2mqtt-settings name: zigbee2mqtt-settings
namespace: zigbee2mqtt
data: data:
configuration.yaml: | configuration.yaml: |
advanced: advanced:

View File

@ -10,7 +10,6 @@ metadata:
annotations: annotations:
configmap.reloader.stakater.com/reload: "zigbee2mqtt-settings" configmap.reloader.stakater.com/reload: "zigbee2mqtt-settings"
name: zigbee2mqtt name: zigbee2mqtt
namespace: zigbee2mqtt
spec: spec:
replicas: 1 replicas: 1
revisionHistoryLimit: 3 revisionHistoryLimit: 3

View File

@ -6,6 +6,7 @@ spec:
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
storageClassName: longhorn-fast storageClassName: longhorn-fast
volumeName: pvc-ce3db1cb-42ef-4eb4-90e1-4bd212dfbf86
resources: resources:
requests: requests:
storage: 128Mi storage: 128Mi

View File

@ -0,0 +1 @@
1.33.2

View File

@ -0,0 +1,6 @@
#!/bin/bash
filename=$(date '+%Y%m%d%H%M%S').tgz
for i in $(talosctl -n 192.168.1.26 list /var/mnt/storage/zigbee2mqtt | grep 192.168 | tail -n 4 | awk '{print $2}'); do talosctl -n 192.168.1.26 read /var/mnt/storage/zigbee2mqtt/$i >$i; done
tar czf ${filename} $(talosctl -n 192.168.1.26 list /var/mnt/storage/zigbee2mqtt | grep 192.168 | tail -n 4 | awk '{print $2}' | xargs echo)
rm $(talosctl -n 192.168.1.26 list /var/mnt/storage/zigbee2mqtt | grep 192.168 | tail -n 4 | awk '{print $2}' | xargs echo)
echo copy to https://minio.service.consul/browser/backups/emlnYmVlMm1xdHQv

View File

@ -0,0 +1,80 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/instance: zigbee2mqtt2
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: zigbee2mqtt
app.kubernetes.io/version: 1.19.1
helm.sh/chart: zigbee2mqtt-9.4.2
name: zigbee2mqtt-settings
data:
configuration.yaml: |
advanced:
homeassistant_discovery_topic: homeassistant
homeassistant_status_topic: homeassistant/status
last_seen: ISO_8601
log_level: debug
log_output:
- console
channel: 25
network_key:
- 140
- 18
- 129
- 36
- 87
- 2
- 242
- 222
- 178
- 205
- 177
- 160
- 9
- 212
- 115
- 122
experimental:
new_api: true
frontend:
port: 8080
homeassistant: true
serial:
port: 'tcp://ser2net.ser2net.svc.cluster.local:3001'
mqtt:
base_topic: zigbee2mqtt
include_device_information: true
server: 'mqtt://mosquitto.martyn.berlin'
permit_join: false
external_converters:
- ledvanceA60S.js
ledvanceA60S.js: |
const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const ota = require('zigbee-herdsman-converters/lib/ota');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const e = exposes.presets;
const ea = exposes.access;
const definition = {
zigbeeModel: ['A60S RGBW'],
model: 'A60S RGBW',
vendor: 'Ledvance',
description: 'Ledvance Classic E27 Multicolor',
// Note that fromZigbee, toZigbee and exposes are missing here since we use extend here.
// Extend contains a default set of fromZigbee/toZigbee converters and expose for common device types.
// The following extends are available:
// - extend.switch
// - extend.light_onoff_brightness
// - extend.light_onoff_brightness_colortemp
// - extend.light_onoff_brightness_color
// - extend.light_onoff_brightness_colortemp_color
extend: extend.light_onoff_brightness_colortemp_color(),
};
module.exports = definition;

View File

@ -0,0 +1,95 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/instance: zigbee2mqtt2
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: zigbee2mqtt
app.kubernetes.io/version: 1.19.1
helm.sh/chart: zigbee2mqtt-9.4.2
annotations:
configmap.reloader.stakater.com/reload: "zigbee2mqtt-settings"
name: zigbee2mqtt
spec:
replicas: 1
revisionHistoryLimit: 3
selector:
matchLabels:
app.kubernetes.io/instance: zigbee2mqtt
app.kubernetes.io/name: zigbee2mqtt
strategy:
type: Recreate
template:
metadata:
labels:
app.kubernetes.io/instance: zigbee2mqtt
app.kubernetes.io/name: zigbee2mqtt
spec:
automountServiceAccountToken: true
initContainers:
- command:
- /bin/sh
- -c
- cp /configs/ledvanceA60S.js /data/;
image: alpine:latest
imagePullPolicy: IfNotPresent
name: copy
volumeMounts:
- mountPath: /data
name: data
- mountPath: /configs/
name: zigbee2mqtt-settings
containers:
- env:
- name: ZIGBEE2MQTT_DATA
value: /data
image: koenkk/zigbee2mqtt:1.35.2
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
initialDelaySeconds: 0
periodSeconds: 10
tcpSocket:
port: 8080
timeoutSeconds: 1
name: zigbee2mqtt
ports:
- containerPort: 8080
name: http
protocol: TCP
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 0
periodSeconds: 10
tcpSocket:
port: 8080
timeoutSeconds: 1
securityContext:
capabilities:
add:
- NET_ADMIN
- NET_RAW
- SYS_ADMIN
privileged: true
startupProbe:
failureThreshold: 30
initialDelaySeconds: 0
periodSeconds: 5
tcpSocket:
port: 8080
timeoutSeconds: 1
volumeMounts:
- mountPath: /data
name: data
dnsPolicy: ClusterFirstWithHostNet
enableServiceLinks: true
hostNetwork: true
serviceAccountName: default
volumes:
- configMap:
name: zigbee2mqtt-settings
name: zigbee2mqtt-settings
- name: data
persistentVolumeClaim:
claimName: zigbee2mqtt

View File

@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: zigbee2mqtt2
resources:
- namespace.yaml
- configmap.yaml
- deploy.yaml
- pvc.yaml
- svc.yaml

View File

@ -0,0 +1,6 @@
apiVersion: v1
kind: Namespace
metadata:
labels:
name: zigbee2mqtt2
name: zigbee2mqtt2

View File

@ -0,0 +1,11 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: zigbee2mqtt
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn-fast
resources:
requests:
storage: 128Mi

View File

@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
annotations:
external-dns.alpha.kubernetes.io/hostname: zigbee2.martyn.berlin
labels:
app.kubernetes.io/instance: zigbee2mqtt2
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: zigbee2mqtt
app.kubernetes.io/version: 1.19.1
helm.sh/chart: zigbee2mqtt-9.4.2
name: zigbee2mqtt
spec:
ports:
- port: 80
targetPort: 8080
selector:
app.kubernetes.io/instance: zigbee2mqtt
app.kubernetes.io/name: zigbee2mqtt
type: LoadBalancer

View File

@ -0,0 +1,17 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: zigbee2mqtt2
namespace: argocd
spec:
destination:
namespace: zigbee2mqtt2
server: https://kubernetes.default.svc
project: infra
source:
path: apps-kustomized/zigbee2mqtt2
repoURL: https://git.martyn.berlin/martyn/infra4talos
targetRevision: HEAD
syncPolicy:
automated:
selfHeal: true