Initial commit

This commit is contained in:
Scooby Husky
2026-03-09 20:21:35 -05:00
commit aacb8eebbe
314 changed files with 21766 additions and 0 deletions
@@ -0,0 +1,137 @@
# MQTT Broker - Eclipse Mosquitto
# Used by Frigate, Home Assistant, and other IoT apps for event messaging
apiVersion: v1
kind: Namespace
metadata:
name: mqtt
labels:
app.kubernetes.io/name: mosquitto
app.kubernetes.io/managed-by: Helm
---
apiVersion: v1
kind: ConfigMap
metadata:
name: mosquitto
namespace: mqtt
labels:
app.kubernetes.io/name: mosquitto
data:
mosquitto.conf: |
listener 1883
listener 9001
protocol websockets
allow_anonymous true
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mosquitto-data
namespace: mqtt
labels:
app.kubernetes.io/name: mosquitto
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: rook-ceph-block
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mosquitto
namespace: mqtt
labels:
app.kubernetes.io/name: mosquitto
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: mosquitto
template:
metadata:
labels:
app.kubernetes.io/name: mosquitto
spec:
automountServiceAccountToken: false
securityContext:
runAsUser: 1883
runAsGroup: 1883
fsGroup: 1883
containers:
- name: mosquitto
image: eclipse-mosquitto:2.0.18
securityContext:
runAsUser: 1883
runAsGroup: 1883
runAsNonRoot: true
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
ports:
- containerPort: 1883
name: mqtt
- containerPort: 9001
name: websocket
volumeMounts:
- name: mosquitto-data-persistent
mountPath: /mosquitto/data
- name: mosquitto-log
mountPath: /mosquitto/log
- name: mosquitto-config
mountPath: /mosquitto/config
readOnly: true
- name: tmp
mountPath: /tmp
resources:
requests:
cpu: 25m
memory: 64Mi
limits:
cpu: 100m
memory: 256Mi
livenessProbe:
tcpSocket:
port: 1883
initialDelaySeconds: 10
periodSeconds: 30
readinessProbe:
tcpSocket:
port: 1883
initialDelaySeconds: 5
periodSeconds: 10
volumes:
- name: mosquitto-data-persistent
persistentVolumeClaim:
claimName: mosquitto-data
- name: mosquitto-log
emptyDir: {}
- name: mosquitto-config
configMap:
name: mosquitto
- name: tmp
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: mosquitto
namespace: mqtt
labels:
app.kubernetes.io/name: mosquitto
spec:
ports:
- name: mqtt
port: 1883
targetPort: 1883
- name: websocket
port: 9001
targetPort: 9001
selector:
app.kubernetes.io/name: mosquitto