[maddy] enable configuring storage and imap (#1391)

* enable configuring storage and imap

* update docs

* Update charts/stable/maddy/Chart.yaml

Co-authored-by: Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs <me@bjw-s.dev>

Co-authored-by: angelnu <git@angelnucom>
Co-authored-by: Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs <me@bjw-s.dev>
This commit is contained in:
Angel Nunez Mencias 2022-01-30 20:54:52 +01:00 committed by GitHub
parent 9c4cc4fefd
commit 1db3745ec4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 46 additions and 19 deletions

View File

@ -2,7 +2,7 @@ apiVersion: v2
appVersion: v0.5.2
description: Maddy Mail Server
name: maddy
version: 1.0.0
version: 2.0.0
kubeVersion: ">=1.16.0-0"
keywords:
- maddy
@ -25,5 +25,7 @@ dependencies:
condition: postgresql.enabled
annotations:
artifacthub.io/changes: |
- kind: added
description: Initial version
- kind: changed
description: **Breaking**: `alias` content moved from `maddy.alias` to `maddy.config_files.alias`
- kid: added
description: additional settings for imap and local_mailboxes under `extra_settings`.

View File

@ -1,6 +1,6 @@
# maddy
![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: v0.5.2](https://img.shields.io/badge/AppVersion-v0.5.2-informational?style=flat-square)
![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![AppVersion: v0.5.2](https://img.shields.io/badge/AppVersion-v0.5.2-informational?style=flat-square)
Maddy Mail Server
@ -81,7 +81,6 @@ about how to do this.
| image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
| image.repository | string | `"foxcpp/maddy"` | image repository |
| image.tag | string | chart.appVersion | image tag |
| maddy.alias | string | `"## Replace 'cat' with any domain to 'dog'.\n## E.g. cat@example.net -> dog@example.net\n# cat: dog\n\n## Replace cat@example.org with cat@example.com.\n## Takes priority over the previous line.\n#cat@example.org: cat@example.com\n"` | Alias file used in smtp_rule See [alias examples](https://maddy.email/man/_generated_maddy-filters.5/). |
| maddy.auth.ldap | object | See [See Maddy auth](https://maddy.email/man/_generated_maddy-auth.5/#configuration-directives_5) | If type is ldap the following options are required |
| maddy.auth.ldap."bind plain" | string | `"\"cn=maddy,ou=people,dc=maddy,dc=test\" \"123456\""` | Specify initial bind credentials. Not required ('bind off') if DN template is used. |
| maddy.auth.ldap.base_dn | string | `"\"ou=people,dc=maddy,dc=test\""` | Specify base_dn to lookup DN. |
@ -92,6 +91,9 @@ about how to do this.
| maddy.auth.ldap.starttls | string | `"off"` | Whether to upgrade connection to TLS using STARTTLS. |
| maddy.auth.ldap.urls | string | `"ldap://maddy.test:389"` | URLs of the directory servers to use. First available server is used - no load-balancing is done. |
| maddy.auth.type | string | `"sql"` | Where to store authorised users. Valid values are `sql` and `ldap` |
| maddy.config_files.alias | string | `"## Replace 'cat' with any domain to 'dog'.\n## E.g. cat@example.net -> dog@example.net\n# cat: dog\n\n## Replace cat@example.org with cat@example.com.\n## Takes priority over the previous line.\n#cat@example.org: cat@example.com\n"` | Alias file used in smtp_rule See [alias examples](https://maddy.email/man/_generated_maddy-filters.5/). |
| maddy.extra_settings.imap | object | `{}` | Additional settings for imap backend |
| maddy.extra_settings.local_mailboxes | object | `{}` | Additional settings for local_mailboxes storage |
| maddy.hostname | string | `"mx.example.com"` | Hostname the service will listen to (incoming SMTP and IMAP) |
| maddy.primary_domain | string | `"example.com"` | Primary domain - will be included in SMTP protocol |
| maddy.secondary_domains | string | `nil` | Space separated list of additional domains this server handles |
@ -115,11 +117,11 @@ about how to do this.
## Changelog
### Version 1.0.0
### Version 2.0.0
#### Added
* Initial version
N/A
#### Changed

View File

@ -92,6 +92,10 @@ storage.imapsql local_mailboxes {
{{- else }}
{{- fail (printf "Not a valid sql type (%s)" .Values.maddy.sql.type ) }}
{{- end }}
# Other settings
{{- range $option, $value := .Values.maddy.extra_settings.local_mailboxes }}
{{ $option }} {{ tpl $value $ }}
{{- end }}
}
# ----------------------------------------------------------------------------
@ -116,7 +120,11 @@ hostname $(hostname)
# ----------------------------------------------------------------------------
# IMAP endpoints
imap tls://0.0.0.0:993 tcp://0.0.0.0:143 {
imap tls://0.0.0.0:{{ .Values.service.main.ports.imaps.port }} tcp://0.0.0.0:{{ .Values.service.main.ports.imap.port }} {
auth &local_authdb
storage &local_mailboxes
# Other settings
{{- range $option, $value := .Values.maddy.extra_settings.imap }}
{{ $option }} {{ tpl $value $ }}
{{- end }}
}

View File

@ -32,8 +32,10 @@ configmap:
data:
maddy.conf: |
{{ tpl (.Files.Get "files/maddy.conf") . | nindent 8 }}
aliases: |
{{ tpl (.Values.maddy.alias) . | nindent 8 }}
{{- range $configfile, $configfilecontent := .Values.maddy.config_files }}
{{ tpl $configfile $ }}: |
{{ tpl $configfilecontent $ | nindent 8 }}
{{- end }}
persistence:
config:

View File

@ -100,16 +100,29 @@ maddy:
custom: |
# Rule block example
# -- Alias file used in smtp_rule
# See [alias examples](https://maddy.email/man/_generated_maddy-filters.5/).
alias: |
## Replace 'cat' with any domain to 'dog'.
## E.g. cat@example.net -> dog@example.net
# cat: dog
config_files:
# -- Alias file used in smtp_rule
# See [alias examples](https://maddy.email/man/_generated_maddy-filters.5/).
alias: |
## Replace 'cat' with any domain to 'dog'.
## E.g. cat@example.net -> dog@example.net
# cat: dog
## Replace cat@example.org with cat@example.com.
## Takes priority over the previous line.
#cat@example.org: cat@example.com
## Replace cat@example.org with cat@example.com.
## Takes priority over the previous line.
#cat@example.org: cat@example.com
extra_settings:
# -- Additional settings for local_mailboxes storage
local_mailboxes: {}
# imap_filter: |
# {
# command /etc/maddy/sieve.sh {account_name}
# }
# -- Additional settings for imap backend
imap: {}
# debug: yes
# io_debug: yes
# -- Configures service settings for the chart.
# @default -- See values.yaml