Files
kubernetes/home-assistant/mosquitto.yaml
Dustin C. Hatch 1a39a8869a h-a/mosquitto: Configure Service externalIPs
Clients outside the cluster can now communicate with Mosquitto directly
on port 8883 by using its dedicated external IP address.  This address
is automatically assigned to the node where Mosquitto is running by
`keepalived`.
2024-11-22 22:37:01 -06:00

110 lines
2.6 KiB
YAML

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app.kubernetes.io/component: mosquitto
app.kubernetes.io/name: mosquitto
app.kubernetes.io/part-of: home-assistant
name: mosquitto
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 6Gi
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/component: mosquitto
app.kubernetes.io/name: mosquitto
app.kubernetes.io/part-of: home-assistant
name: mosquitto
spec:
ports:
- port: 8883
name: mqtt
selector:
app.kubernetes.io/component: mosquitto
app.kubernetes.io/name: mosquitto
type: ClusterIP
externalIPs:
- 172.30.0.148
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app.kubernetes.io/component: mosquitto
app.kubernetes.io/name: mosquitto
app.kubernetes.io/part-of: home-assistant
name: mosquitto
spec:
serviceName: mosquitto
selector:
matchLabels:
app.kubernetes.io/component: mosquitto
app.kubernetes.io/name: mosquitto
template:
metadata:
labels:
app.kubernetes.io/component: mosquitto
app.kubernetes.io/name: mosquitto
app.kubernetes.io/part-of: home-assistant
spec:
containers:
- name: mosquitto
image: docker.io/library/eclipse-mosquitto:2.0.15
ports:
- containerPort: 8883
name: mqtt
readinessProbe: &probe
tcpSocket:
port: 8883
failureThreshold: 3
periodSeconds: 60
successThreshold: 1
timeoutSeconds: 1
startupProbe:
<<: *probe
failureThreshold: 30
periodSeconds: 1
securityContext:
runAsUser: 300
runAsGroup: 300
volumeMounts:
- mountPath: /mosquitto/config/mosquitto.conf
name: mosquitto-config
subPath: mosquitto.conf
- mountPath: /mosquitto/config/passwd
name: mosquitto-passwd
subPath: passwd
- mountPath: /mosquitto/data
name: mosquitto-data
subPath: data
- mountPath: /mosquitto/log
name: mosquitto-log
subPath: log
- mountPath: /run/secrets/mosquitto
name: mosquitto-cert
securityContext:
fsGroup: 300
volumes:
- name: mosquitto-cert
secret:
secretName: mosquitto-cert
- name: mosquitto-config
configMap:
name: mosquitto
- name: mosquitto-data
persistentVolumeClaim:
claimName: mosquitto
- name: mosquitto-log
emptyDir: {}
- name: mosquitto-passwd
secret:
secretName: mosquitto