# yaml-language-server: $schema=./values.schema.json
image:
  repository: eclipse-mosquitto
  tag: 2.0.22@sha256:6852da90a65dfff7aa3a1c8b249e92bb83c17ea8bbcce56bedff8707332a1a29
  pullPolicy: IfNotPresent
service:
  main:
    ports:
      main:
        port: 1883
        targetPort: 1883
  websockets:
    enabled: true
    ports:
      websockets:
        enabled: true
        port: 9001
        targetPort: 9001
workload:
  main:
    podSpec:
      containers:
        main:
          probes:
            liveness:
              enabled: true
              type: tcp
              port: 1883
            readiness:
              enabled: true
              type: tcp
              port: 1883
            startup:
              enabled: true
              type: tcp
              port: 1883
ingress:
  websockets:
    enabled: false
    targetSelector:
      websockets: websockets
auth:
  # -- By enabling this, `allow_anonymous` gets set to `false` in the mosquitto config.
  enabled: false
websockets:
  # -- By enabling this, an additional listener with protocol websockets is added in the mosquitto config.
  enabled: false
configmap:
  config:
    enabled: true
    data:
      mosquitto.conf: |
        listener {{ .Values.service.main.ports.main.targetPort }}
        {{- if .Values.websockets.enabled }}
        listener {{ .Values.service.websockets.ports.websockets.targetPort }}
        protocol websockets
        {{- end }}
        {{- if .Values.auth.enabled }}
        allow_anonymous false
        {{- else }}
        allow_anonymous true
        {{- end }}
        {{- if .Values.persistence.data.enabled }}
        persistence true
        persistence_location {{ .Values.persistence.data.mountPath }}
        autosave_interval 1800
        {{- end }}
        {{- if .Values.persistence.configinc.enabled }}
        include_dir {{ .Values.persistence.configinc.mountPath }}
        {{- end }}
persistence:
  data:
    enabled: true
    mountPath: "/mosquitto/data"
  configinc:
    enabled: true
    mountPath: "/mosquitto/configinc"
  mosquitto-config:
    enabled: true
    mountPath: "/mosquitto/config/mosquitto.conf"
    subPath: "mosquitto.conf"
    type: configmap
    objectName: config
