diff --git a/mosquitto-deployment.yaml b/mosquitto-deployment.yaml new file mode 100644 index 0000000..547549b --- /dev/null +++ b/mosquitto-deployment.yaml @@ -0,0 +1,146 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: mosquitto + release: mqtt + name: mqtt-mosquitto + namespace: default +spec: + replicas: 1 + selector: + matchLabels: + app: mosquitto + release: mqtt + strategy: + type: Recreate + template: + metadata: + labels: + app: mosquitto + release: mqtt + spec: + containers: + - name: mosquitto-exporter + image: docker-registry.lan/mosquitto-exporter:arm64 + imagePullPolicy: Always + ports: + - containerPort: 9234 + name: mqtt-exporter + protocol: TCP + - name: mqtt-mosquitto + image: eclipse-mosquitto:latest + imagePullPolicy: Always + livenessProbe: + failureThreshold: 3 + initialDelaySeconds: 5 + periodSeconds: 1 + successThreshold: 1 + tcpSocket: + port: 9090 + timeoutSeconds: 1 + ports: + - containerPort: 1883 + name: mqtt + protocol: TCP + - containerPort: 9090 + name: websocket + protocol: TCP + readinessProbe: + failureThreshold: 3 + initialDelaySeconds: 3 + periodSeconds: 3 + successThreshold: 1 + tcpSocket: + port: 9090 + timeoutSeconds: 1 + resources: + limits: + cpu: 100m + memory: 256Mi + requests: + cpu: 50m + memory: 100Mi + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /mosquitto/config/mosquitto.conf + name: mosquitto-conf + readOnly: true + subPath: mosquitto.conf + - mountPath: /mosquitto/data + name: mosquitto-data + subPath: mosquitto/data + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + securityContext: {} + terminationGracePeriodSeconds: 30 + volumes: + - configMap: + defaultMode: 420 + name: mqtt-mosquitto + name: mosquitto-conf + - name: mosquitto-data + persistentVolumeClaim: + claimName: mqtt-mosquitto +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: mosquitto + release: mqtt + namespace: default + name: mqtt-mosquitto +spec: + externalTrafficPolicy: Cluster + loadBalancerIP: 172.23.255.3 + ports: + - name: mqtt + port: 1883 + protocol: TCP + targetPort: 1883 + - name: mqtt-exporter + port: 9234 + protocol: TCP + targetPort: 9234 + selector: + app: mosquitto + type: LoadBalancer +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + annotations: + volume.beta.kubernetes.io/storage-provisioner: nfs-storage + labels: + app: mosquitto + release: mqtt + name: mqtt-mosquitto + namespace: default +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi + storageClassName: managed-nfs-storage + volumeMode: Filesystem +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: mqtt-mosquitto + namespace: default + labels: + app: mosquitto + release: mqtt +data: + mosquitto.conf: |- + log_dest stdout + listener 1883 + listener 9090 + protocol websockets +