deploy-templates/mailu/values.yaml (360 lines of code) (raw):

# Default values for mailu. # The mail domain is required. See https://github.com/Mailu/Mailu/blob/master/docs/faq.rst#what-is-the-difference-between-domain-and-hostnames dnsWildcard: domain.com # An initial account can automatically be created (password will be generated randomly): initialAccount: username: mailadmin nameOverride: "" fullnameOverride: "" clusterDomain: cluster.local serviceAccount: # Specifies whether a service account should be created create: true # Annotations to add to the service account annotations: {} # The name of the service account to use. # If not set and create is true, a name is generated using the fullname template name: "" nodeSelector: {} # Tolerations for pod assignment # Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ tolerations: {} # Affinity for pod assignment # Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity affinity: {} database: # type of the database for mailu (sqlite or mysql) # default database is an embedded sqlite # for mysql, see settings below type: sqlite # type of the database for roundcube (sqlite or mysql) # default database is an embedded sqlite # for mysql, see settings below roundcubeType: sqlite # For mysql/mariadb use the following config: # Set the host to use an external database. # If not host is set, a database instance is created by this chart. # type: mysql mysql: {} # host: external-db-hostname # root password for mysql database # rootPassword: chang3m3! # can only be set for embedded mysql # settings for mailu (required if mailu database type is "mysql") # database: mailu # user: mailu # password: chang3m3! # For an external PostgreSQL database, use the following config: postgresql: {} # host: external-db-hostname # database: mailu # user: mailu # password: chang3m3! # settings for roundcube (required if roundcube database type is "mysql" or "postgresql") # roundcubeDatabase: roundcube # roundcubeUser: roundcube # roundcubePassword: chang3m3! external_relay: {} # host: "[domain.tld]:port" # username: username # password: SECRET persistence: # Setings for a single volume for all apps # set single_pvc: false to use a per app volume and set the properties in <app>.persistence (ex. admin.persistence) single_pvc: false size: 8Gi accessMode: ReadWriteOnce #annotations: # "helm.sh/resource-policy": keep #hostPath: /path/on/the/host #existingClaim: name-of-existing.claim #storageClass: "-" #claimNameOverride: my-claim-name # Change this if you're using different address ranges for pods subnet: 10.128.0.0/14 # Version of mailu docker images to use when not specified otherwise mailuVersion: 1.8 # default log level. can be overridden globally or per service logLevel: WARNING mail: messageSizeLimitInMegabytes: 50 authRatelimit: 10/minute;1000/hour # Set ingress and loadbalancer config ingress: externalIngress: false tlsFlavor: notls className: "" annotations: nginx.ingress.kubernetes.io/proxy-body-size: "0" # Frontend load balancer for non-HTTP(s) services front: # logLevel: WARNING image: repository: mailu/nginx # tag defaults to mailuVersion # tag: master resources: requests: memory: 100Mi cpu: 100m limits: memory: 200Mi cpu: 200m startupProbe: periodSeconds: 10 failureThreshold: 30 timeoutSeconds: 5 livenessProbe: periodSeconds: 10 failureThreshold: 3 timeoutSeconds: 5 readinessProbe: periodSeconds: 10 failureThreshold: 1 timeoutSeconds: 5 # Deployment or DaemonSet controller: kind: Deployment nodeSelector: {} # Expose front mail ports via hostPort hostPort: enabled: false # Expose front mail ports via external service (ClusterIP or LoadBalancer) externalService: enabled: false type: ClusterIP # LoadBalancer # type: LoadBalancer # loadBalancerIP: externalTrafficPolicy: Local annotations: {} pop3: pop3: false pop3s: true imap: imap: false imaps: true smtp: smtp: true smtps: true submission: true admin: # logLevel: WARNING image: repository: mailu/admin # tag defaults to mailuVersion # tag: master persistence: size: 1Gi storageClass: "" accessMode: ReadWriteOnce claimNameOverride: "" #annotations: # "helm.sh/resource-policy": keep resources: requests: memory: 500Mi cpu: 500m limits: memory: 500Mi cpu: 500m podAnnotations: {} startupProbe: periodSeconds: 10 failureThreshold: 30 timeoutSeconds: 5 livenessProbe: periodSeconds: 10 failureThreshold: 3 timeoutSeconds: 5 readinessProbe: periodSeconds: 10 failureThreshold: 1 timeoutSeconds: 5 redis: image: repository: redis tag: 5-alpine persistence: size: 2Gi storageClass: "" accessMode: ReadWriteOnce claimNameOverride: "" #annotations: # "helm.sh/resource-policy": keep resources: requests: memory: 200Mi cpu: 100m limits: memory: 300Mi cpu: 200m startupProbe: periodSeconds: 10 failureThreshold: 30 timeoutSeconds: 5 livenessProbe: periodSeconds: 10 failureThreshold: 3 timeoutSeconds: 5 readinessProbe: periodSeconds: 10 failureThreshold: 1 timeoutSeconds: 5 postfix: # logLevel: WARNING image: repository: mailu/postfix # tag defaults to mailuVersion # tag: master containerSecurityContext: capabilities: add: - SYS_CHROOT # CRI-O users will need to add the following: # capabilities: # add: # - SYS_CHROOT persistence: size: 2Gi storageClass: "" accessMode: ReadWriteOnce claimNameOverride: "" #annotations: # "helm.sh/resource-policy": keep resources: requests: memory: 2Gi cpu: 500m limits: memory: 2Gi cpu: 500m startupProbe: periodSeconds: 10 failureThreshold: 30 timeoutSeconds: 5 livenessProbe: periodSeconds: 10 failureThreshold: 3 timeoutSeconds: 5 readinessProbe: periodSeconds: 10 failureThreshold: 1 timeoutSeconds: 5 dovecot: enabled: true # logLevel: WARNING image: repository: mailu/dovecot # tag defaults to mailuVersion # tag: master containerSecurityContext: capabilities: add: - SYS_CHROOT # CRI-O users will need to add the following: # capabilities: # add: # - SYS_CHROOT persistence: size: 2Gi storageClass: "" accessMode: ReadWriteOnce claimNameOverride: "" #annotations: # "helm.sh/resource-policy": keep resources: requests: memory: 500Mi cpu: 500m limits: memory: 500Mi cpu: 500m startupProbe: periodSeconds: 10 failureThreshold: 30 timeoutSeconds: 5 livenessProbe: periodSeconds: 10 failureThreshold: 3 timeoutSeconds: 5 readinessProbe: periodSeconds: 10 failureThreshold: 1 timeoutSeconds: 5 # enable dovecot overrides # overrides: # dovecot.conf: | # # More info here: https://mailu.io/1.8/kubernetes/mailu/index.html#dovecot # mail_nfs_index = yes # mail_nfs_storage = yes # mail_fsync = always # mmap_disable = yes # mail_max_userip_connections=100 # rspamd and clamav and admin must share their volume # use affinity to schedule both pods on the same node so RWO volumes keep working rspamd_clamav_admin_persistence: size: 2Gi storageClass: "" accessMode: ReadWriteOnce claimNameOverride: "" #annotations: # "helm.sh/resource-policy": keep rspamd: # logLevel: WARNING image: repository: mailu/rspamd # tag defaults to mailuVersion # tag: master resources: requests: memory: 100Mi cpu: 100m limits: memory: 600Mi cpu: 500m startupProbe: # give it 15 minutes for initial rule compilation periodSeconds: 10 failureThreshold: 90 timeoutSeconds: 5 livenessProbe: periodSeconds: 10 failureThreshold: 3 timeoutSeconds: 5 readinessProbe: periodSeconds: 10 failureThreshold: 1 timeoutSeconds: 5 affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: component operator: In values: - clamav topologyKey: kubernetes.io/hostname clamav: enabled: true # logLevel: WARNING image: repository: mailu/clamav # tag defaults to mailuVersion # tag: master resources: requests: memory: 1Gi cpu: 1000m limits: memory: 2Gi cpu: 1000m startupProbe: # give it 10 minutes for initial freshclam update periodSeconds: 10 failureThreshold: 60 timeoutSeconds: 5 livenessProbe: periodSeconds: 10 failureThreshold: 3 timeoutSeconds: 5 readinessProbe: periodSeconds: 10 failureThreshold: 1 timeoutSeconds: 5 affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: component operator: In values: - rspamd topologyKey: kubernetes.io/hostname roundcube: enabled: true # logLevel: WARNING image: repository: mailu/roundcube # tag defaults to mailuVersion # tag: master persistence: size: 2Gi storageClass: "" accessMode: ReadWriteOnce claimNameOverride: "" #annotations: # "helm.sh/resource-policy": keep resources: requests: memory: 100Mi cpu: 100m limits: memory: 200Mi cpu: 200m startupProbe: periodSeconds: 10 failureThreshold: 30 timeoutSeconds: 5 livenessProbe: periodSeconds: 10 failureThreshold: 3 timeoutSeconds: 5 readinessProbe: periodSeconds: 10 failureThreshold: 1 timeoutSeconds: 5 webdav: enabled: false # logLevel: WARNING image: repository: mailu/radicale # tag defaults to mailuVersion # tag: master persistence: size: 2Gi storageClass: "" accessMode: ReadWriteOnce claimNameOverride: "" #annotations: # "helm.sh/resource-policy": keep startupProbe: periodSeconds: 10 failureThreshold: 30 timeoutSeconds: 5 livenessProbe: periodSeconds: 10 failureThreshold: 3 timeoutSeconds: 5 readinessProbe: periodSeconds: 10 failureThreshold: 1 timeoutSeconds: 5 mysql: image: repository: library/mariadb tag: 10.4.10 persistence: size: 2Gi storageClass: "" accessMode: ReadWriteOnce claimNameOverride: "" #annotations: # "helm.sh/resource-policy": keep resources: requests: memory: 256Mi cpu: 100m limits: memory: 512Mi cpu: 200m startupProbe: periodSeconds: 10 failureThreshold: 30* timeoutSeconds: 5 livenessProbe: periodSeconds: 10 failureThreshold: 3 timeoutSeconds: 5 readinessProbe: periodSeconds: 10 failureThreshold: 1 timeoutSeconds: 5 fetchmail: enabled: false # logLevel: WARNING image: repository: mailu/fetchmail # tag defaults to mailuVersion # tag: master persistence: size: 2Gi storageClass: "" accessMode: ReadWriteOnce claimNameOverride: "" #annotations: # "helm.sh/resource-policy": keep resources: requests: memory: 100Mi cpu: 100m limits: memory: 200Mi cpu: 200m delay: 600