apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mosquitto-data namespace: mqtt spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: local-path --- apiVersion: v1 kind: Secret metadata: name: mosquitto namespace: mqtt type: Opaque stringData: config: | listener 1883 allow_anonymous true --- apiVersion: apps/v1 kind: StatefulSet metadata: name: mosquitto namespace: mqtt labels: app: mosquitto spec: replicas: 1 selector: matchLabels: app: mosquitto template: metadata: labels: app: mosquitto spec: hostNetwork: true containers: - name: mosquitto image: eclipse-mosquitto:latest imagePullPolicy: Always command: ["/usr/sbin/mosquitto"] args: ["-c", "/etc/mosquitto/mosquitto.conf"] ports: - containerPort: 8883 # Default MQTT port for encrypted communication using TLS/SSL #hostPort: 8883 protocol: TCP - containerPort: 1883 # Default MQTT port for unencrypted communication protocol: TCP #hostPort: 1883 volumeMounts: - name: mosquitto-data mountPath: /mosquitto-data - mountPath: /etc/mosquitto/mosquitto.conf name: mosquitto-secret subPath: config resources: requests: memory: "50Mi" cpu: "100m" limits: memory: "100Mi" cpu: "200m" volumes: - name: mosquitto-data persistentVolumeClaim: claimName : mosquitto-data - name: mosquitto-secret secret: secretName: "mosquitto"