[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 appVersion: v0.5.2
description: Maddy Mail Server description: Maddy Mail Server
name: maddy name: maddy
version: 1.0.0 version: 2.0.0
kubeVersion: ">=1.16.0-0" kubeVersion: ">=1.16.0-0"
keywords: keywords:
- maddy - maddy
@ -25,5 +25,7 @@ dependencies:
condition: postgresql.enabled condition: postgresql.enabled
annotations: annotations:
artifacthub.io/changes: | artifacthub.io/changes: |
- kind: added - kind: changed
description: Initial version 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 # 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 Maddy Mail Server
@ -81,7 +81,6 @@ about how to do this.
| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | | image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
| image.repository | string | `"foxcpp/maddy"` | image repository | | image.repository | string | `"foxcpp/maddy"` | image repository |
| image.tag | string | chart.appVersion | image tag | | 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 | 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."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. | | 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.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.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.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.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.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 | | maddy.secondary_domains | string | `nil` | Space separated list of additional domains this server handles |
@ -115,11 +117,11 @@ about how to do this.
## Changelog ## Changelog
### Version 1.0.0 ### Version 2.0.0
#### Added #### Added
* Initial version N/A
#### Changed #### Changed

View File

@ -92,6 +92,10 @@ storage.imapsql local_mailboxes {
{{- else }} {{- else }}
{{- fail (printf "Not a valid sql type (%s)" .Values.maddy.sql.type ) }} {{- fail (printf "Not a valid sql type (%s)" .Values.maddy.sql.type ) }}
{{- end }} {{- 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 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 auth &local_authdb
storage &local_mailboxes 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: data:
maddy.conf: | maddy.conf: |
{{ tpl (.Files.Get "files/maddy.conf") . | nindent 8 }} {{ tpl (.Files.Get "files/maddy.conf") . | nindent 8 }}
aliases: | {{- range $configfile, $configfilecontent := .Values.maddy.config_files }}
{{ tpl (.Values.maddy.alias) . | nindent 8 }} {{ tpl $configfile $ }}: |
{{ tpl $configfilecontent $ | nindent 8 }}
{{- end }}
persistence: persistence:
config: config:

View File

@ -100,16 +100,29 @@ maddy:
custom: | custom: |
# Rule block example # Rule block example
# -- Alias file used in smtp_rule config_files:
# See [alias examples](https://maddy.email/man/_generated_maddy-filters.5/). # -- Alias file used in smtp_rule
alias: | # See [alias examples](https://maddy.email/man/_generated_maddy-filters.5/).
## Replace 'cat' with any domain to 'dog'. alias: |
## E.g. cat@example.net -> dog@example.net ## Replace 'cat' with any domain to 'dog'.
# cat: dog ## E.g. cat@example.net -> dog@example.net
# cat: dog
## Replace cat@example.org with cat@example.com. ## Replace cat@example.org with cat@example.com.
## Takes priority over the previous line. ## Takes priority over the previous line.
#cat@example.org: cat@example.com #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. # -- Configures service settings for the chart.
# @default -- See values.yaml # @default -- See values.yaml