2024-01-10 02:16:55 +01:00
= stalwart-mail
2024-06-11 14:09:01 +02:00
image::https://img.shields.io/badge/Version-0.0.6-informational?style=flat-square[Version: 0.0.6]
2024-01-10 02:16:55 +01:00
image::https://img.shields.io/badge/Version-application-informational?style=flat-square[Type: application]
2024-03-09 10:09:48 +00:00
image::https://img.shields.io/badge/AppVersion-0.8.1-informational?style=flat-square[AppVersion: 0.8.1]
2024-01-10 02:16:55 +01:00
== Maintainers
.Maintainers
|===
| Name | Email | Url
| WrenIX
|
| <https://wrenix.eu>
|===
= Alpha
WARNING
====
We stop working on this Helm-Chart.
There are still many breaking change like:
* https://github.com/stalwartlabs/mail-server/issues/211[storage.fts in toml configuration has two meanings]
We hope that stalward mail-server becomes more stable.
====
== Usage
Helm must be installed and setup to your kubernetes cluster to use the charts.
Refer to Helm's https://helm.sh/docs[documentation] to get started.
Once Helm has been set up correctly, fetch the charts as follows:
[source,bash]
----
helm pull oci://codeberg.org/wrenix/helm-charts/stalwart-mail
----
You can install a chart release using the following command:
[source,bash]
----
helm install stalwart-mail-release oci://codeberg.org/wrenix/helm-charts/stalwart-mail --values values.yaml
----
To uninstall a chart release use `helm`'s delete command:
[source,bash]
----
helm uninstall stalwart-mail-release
----
== Values
2024-03-09 10:09:48 +00:00
.Values DKIM
|===
| Key | Type | Default | Description
| config.auth.dkim.sign
| list
| `[{"if":"listener != 'smtp'","then":"['rsa', 'ed25519']"},{"else":false}]`
| auth rule for signing with dkim
| config.auth.dkim.verify
| string
| `"relaxed"`
| verify of dkim signature (relaxed, strict, disable)
|===
.Values Authentification
|===
| Key | Type | Default | Description
| config.authentication.fallback-admin.secret
| string
| `"%{env:FALLBACK_ADMIN_SECRET}%"`
| password for fallback authentfication (use env for store in secrets of kubernetes)
| config.authentication.fallback-admin.user
| string
| `"admin"`
| username for fallback authentfication
| secrets.env.FALLBACK_ADMIN_SECRET
| string
| `"supersecret"`
| password for fallback authentfication (env)
|===
.Values Other Values
2024-01-10 02:16:55 +01:00
|===
| Key | Type | Default | Description
| affinity
| object
| `{}`
|
| autoscaling.enabled
| bool
| `false`
|
| autoscaling.maxReplicas
| int
| `100`
|
| autoscaling.minReplicas
| int
| `1`
|
| autoscaling.targetCPUUtilizationPercentage
| int
| `80`
|
| certificate.certmanager.dnsNames[0]
| string
| `"chart-example.local"`
|
| certificate.certmanager.enabled
| bool
| `true`
|
| certificate.certmanager.issuerRef.group
| string
| `"cert-manager.io"`
|
| certificate.certmanager.issuerRef.kind
| string
| `"ClusterIssuer"`
|
| certificate.certmanager.issuerRef.name
| string
| `"letsencrypt-prod"`
|
| certificate.secretName
| string
| `nil`
| not needed if certmanager is used
2024-03-09 10:09:48 +00:00
| config.directory.internal.store
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"rocksdb"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.directory.internal.type
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"internal"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.server.listener.https.bind[0]
2024-01-10 02:16:55 +01:00
| string
2024-06-11 14:09:01 +02:00
| `"[::]:443"`
2024-03-09 10:09:48 +00:00
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.server.listener.https.protocol
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"http"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.server.listener.https.tls.implicit
2024-01-10 02:16:55 +01:00
| bool
2024-03-09 10:09:48 +00:00
| `true`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.server.listener.imap.bind[0]
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"[::]:143"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.server.listener.imap.protocol
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"imap"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.server.listener.imaptls.bind[0]
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"[::]:993"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.server.listener.imaptls.protocol
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"imap"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.server.listener.imaptls.tls.implicit
| bool
| `true`
2024-03-21 15:30:48 +01:00
|
2024-06-11 14:09:01 +02:00
| config.server.listener.pop3.bind[0]
| string
| `"[::]:110"`
|
| config.server.listener.pop3.protocol
| string
| `"pop3"`
|
| config.server.listener.pop3s.bind[0]
| string
| `"[::]:995"`
|
| config.server.listener.pop3s.protocol
| string
| `"pop3"`
|
| config.server.listener.pop3s.tls.implicit
| bool
| `true`
|
2024-03-09 10:09:48 +00:00
| config.server.listener.sieve.bind[0]
2024-03-21 15:30:48 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"[::]:4190"`
2024-03-21 15:30:48 +01:00
|
2024-03-09 10:09:48 +00:00
| config.server.listener.sieve.protocol
| string
| `"managesieve"`
2024-03-21 15:30:48 +01:00
|
2024-03-09 10:09:48 +00:00
| config.server.listener.smtp.bind[0]
| string
| `"[::]:25"`
2024-03-21 15:30:48 +01:00
|
2024-03-09 10:09:48 +00:00
| config.server.listener.smtp.protocol
| string
| `"smtp"`
2024-03-21 15:30:48 +01:00
|
2024-03-09 10:09:48 +00:00
| config.server.listener.submission.bind[0]
2024-03-21 15:30:48 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"[::]:587"`
2024-03-21 15:30:48 +01:00
|
2024-03-09 10:09:48 +00:00
| config.server.listener.submission.protocol
2024-03-21 15:33:12 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"smtp"`
2024-03-21 15:33:12 +01:00
|
2024-03-09 10:09:48 +00:00
| config.server.listener.submissions.bind[0]
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"[::]:465"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.server.listener.submissions.protocol
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"smtp"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.server.listener.submissions.tls.implicit
2024-01-10 02:16:55 +01:00
| bool
| `true`
2024-03-09 10:09:48 +00:00
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.storage.blob
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"rocksdb"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.storage.data
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"rocksdb"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.storage.directory
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"internal"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.storage.fts
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"rocksdb"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.storage.lookup
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"rocksdb"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.store.rocksdb.compression
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"lz4"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.store.rocksdb.path
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"/data"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.store.rocksdb.type
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"rocksdb"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.tracer.otel.enable
2024-01-10 02:16:55 +01:00
| bool
2024-03-09 10:09:48 +00:00
| `false`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.tracer.otel.endpoint
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"https://127.0.0.1/otel"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.tracer.otel.headers
2024-01-10 02:16:55 +01:00
| list
| `[]`
2024-03-09 10:09:48 +00:00
| headers for usage with http (e.g. 'Authorization: <place_auth_here>')
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.tracer.otel.level
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"info"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.tracer.otel.transport
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"grpc"`
| grpc or http
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.tracer.otel.type
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"open-telemetry"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.tracer.stdout.ansi
2024-01-10 02:16:55 +01:00
| bool
| `false`
2024-03-09 10:09:48 +00:00
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.tracer.stdout.enable
2024-01-10 02:16:55 +01:00
| bool
| `true`
2024-03-09 10:09:48 +00:00
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.tracer.stdout.level
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"info"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| config.tracer.stdout.type
2024-01-10 02:16:55 +01:00
| string
2024-03-09 10:09:48 +00:00
| `"stdout"`
|
2024-01-10 02:16:55 +01:00
2024-03-09 10:09:48 +00:00
| env
| list
| `[]`
|
2024-01-10 02:16:55 +01:00
| fullnameOverride
| string
| `""`
|
| global.image.pullPolicy
| string
| `nil`
| if set it will overwrite all pullPolicy
| global.image.registry
| string
| `nil`
| if set it will overwrite all registry entries
| image.pullPolicy
| string
| `"IfNotPresent"`
|
| image.registry
| string
| `"docker.io"`
|
| image.repository
| string
| `"stalwartlabs/mail-server"`
|
| image.tag
| string
| `""`
| Overrides the image tag whose default is the chart appVersion.
| imagePullSecrets
| list
| `[]`
|
| ingress.annotations
| object
| `{}`
|
| ingress.className
| string
| `""`
|
| ingress.enabled
| bool
| `false`
|
| ingress.hosts[0].host
| string
| `"chart-example.local"`
|
| ingress.hosts[0].paths[0].path
| string
| `"/"`
|
| ingress.hosts[0].paths[0].pathType
| string
| `"ImplementationSpecific"`
|
| ingress.tls
| list
| `[]`
|
| nameOverride
| string
| `""`
|
| nodeSelector
| object
| `{}`
|
| persistence.accessMode
| string
| `"ReadWriteOnce"`
| accessMode
| persistence.annotations
| object
| `{}`
|
| persistence.enabled
| bool
| `true`
| Enable persistence using Persistent Volume Claims ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
| persistence.existingClaim
| string
| `nil`
| A manually managed Persistent Volume and Claim Requires persistence.enabled: true If defined, PVC must be created manually before volume will be bound
| persistence.hostPath
| string
| `nil`
| Do not create an PVC, direct use hostPath in Pod
| persistence.size
| string
| `"10Gi"`
| size
| persistence.storageClass
| string
| `nil`
| Persistent Volume Storage Class If defined, storageClassName: <storageClass> If set to "-", storageClassName: "", which disables dynamic provisioning If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner. (gp2 on AWS, standard on GKE, AWS & OpenStack)
| podAnnotations
| object
| `{}`
|
| podLabels
| object
| `{}`
|
| podSecurityContext
| object
| `{}`
|
| replicaCount
| int
| `1`
|
| resources
| object
| `{}`
|
| securityContext
| object
| `{}`
|
| service.annotations
| object
| `{}`
|
| service.ipFamilies[0]
| string
| `"IPv4"`
|
| service.ipFamilyPolicy
| string
| `"SingleStack"`
| other option is RequireDualStack
2024-06-11 14:09:01 +02:00
| service.ports.https
2024-01-10 02:16:55 +01:00
| int
2024-06-11 14:09:01 +02:00
| `443`
2024-01-10 02:16:55 +01:00
|
| service.ports.imap
| int
| `143`
|
2024-06-11 14:09:01 +02:00
| service.ports.imaptls
2024-01-10 02:16:55 +01:00
| int
| `993`
|
2024-06-11 14:09:01 +02:00
| service.ports.pop3
| int
| `110`
|
| service.ports.pop3s
| int
| `995`
|
2024-01-10 02:16:55 +01:00
| service.ports.sieve
| int
| `4190`
|
| service.ports.smtp
| int
| `25`
|
| service.ports.smtp-submission
| int
| `587`
|
| service.ports.smtps
| int
| `465`
|
| service.type
| string
| `"ClusterIP"`
|
| serviceAccount.annotations
| object
| `{}`
|
| serviceAccount.automount
| bool
| `true`
|
| serviceAccount.create
| bool
| `false`
|
| serviceAccount.name
| string
| `""`
|
| tolerations
| list
| `[]`
|
| traefik.enabled
| bool
| `false`
|
2024-06-11 14:09:01 +02:00
| traefik.ports.https
2024-01-10 02:16:55 +01:00
| string
| `"websecure"`
|
2024-06-11 14:09:01 +02:00
| traefik.ports.imaptls
2024-01-10 02:16:55 +01:00
| string
| `"imaps"`
|
2024-06-11 14:09:01 +02:00
| traefik.ports.pop3s
| string
| `"pop3s"`
|
| traefik.ports.sieve
| string
| `"sieve"`
|
| traefik.ports.smtp
| string
| `"smtp"`
|
2024-01-10 02:16:55 +01:00
| traefik.ports.smtps
| string
| `"smtps"`
|
| volumeMounts
| list
| `[]`
|
| volumes
| list
| `[]`
|
|===
Autogenerated from chart metadata using https://github.com/norwoodj/helm-docs[helm-docs]