112 lines
3.6 KiB
Text
112 lines
3.6 KiB
Text
let _presets = (import "schemas/lib/concerns_presets.ncl").presets in
|
|
|
|
{
|
|
docker_mailserver | default = {
|
|
name | default = "docker-mailserver",
|
|
version | default = "15.1.0",
|
|
image | default = "ghcr.io/docker-mailserver/docker-mailserver:15.1.0",
|
|
gui_version | default = "v1.5.7",
|
|
gui_image | default = "audioscavenger/dms-gui:v1.5.7",
|
|
namespace | default = "mail",
|
|
hostname | default = "mail.example.com",
|
|
domain | default = "example.com",
|
|
node | default = "",
|
|
lb_ipam_ip | default = "",
|
|
private_lb_ip | default = "",
|
|
private_cidr | default = "",
|
|
tls_secret | default = "docker-mailserver-tls",
|
|
cluster_issuer | default = "letsencrypt-prod",
|
|
storage_class | default = "hcloud-volumes",
|
|
mode | default = 'cluster,
|
|
|
|
smtp_port | default = 25,
|
|
imap_port | default = 143,
|
|
smtps_port | default = 465,
|
|
submission_port | default = 587,
|
|
imaps_port | default = 993,
|
|
pop3s_port | default = 995,
|
|
gui_port | default = 80,
|
|
|
|
enable_rspamd | default = "1",
|
|
enable_clamav | default = "0",
|
|
enable_fail2ban | default = "0",
|
|
enable_spamassassin | default = "0",
|
|
enable_postgrey | default = "0",
|
|
enable_pop3 | default = "0",
|
|
postgrey_delay | default = "300",
|
|
|
|
postmaster_address | default = "",
|
|
fail2ban_blocktype | default = "drop",
|
|
fail2ban_ignoreip | default = [],
|
|
spam_to_inbox | default = "0",
|
|
move_spam_to_junk | default = "1",
|
|
sa_tag | default = "2.0",
|
|
sa_tag2 | default = "6.31",
|
|
sa_kill | default = "10.0",
|
|
log_level | default = "warn",
|
|
|
|
relay = {
|
|
host | default = "",
|
|
port | default = 587,
|
|
tls | default = true,
|
|
name | default = "ses",
|
|
},
|
|
|
|
requires | default = {
|
|
storage = {
|
|
mail_data = { size = "20Gi", persistent = true },
|
|
},
|
|
ports = [
|
|
{ port = 25, exposure = 'public },
|
|
{ port = 143, exposure = 'public },
|
|
{ port = 465, exposure = 'public },
|
|
{ port = 587, exposure = 'public },
|
|
{ port = 993, exposure = 'public },
|
|
{ port = 80, exposure = 'internal },
|
|
],
|
|
credentials = ["RELAY_USER", "RELAY_PASSWORD", "MAIL_ADMIN_EMAIL", "MAIL_ADMIN_PASS"],
|
|
},
|
|
|
|
provides | default = {
|
|
service = "docker-mailserver",
|
|
ports = [25, 143, 465, 587, 993],
|
|
endpoints = [],
|
|
},
|
|
|
|
operations | default = {
|
|
install = true,
|
|
update = true,
|
|
delete = true,
|
|
backup = true,
|
|
restore = true,
|
|
health = true,
|
|
config = true,
|
|
restart = true,
|
|
},
|
|
live_check | default = {
|
|
strategy = 'k8s_pods,
|
|
scope = 'cp_only,
|
|
},
|
|
|
|
# ServiceConcerns default — docker-mailserver; tls_endpoint_with_acme preset.
|
|
# Reference: ADR-008 (umbrella), ADR-009 (progressive coverage).
|
|
concerns | default = (_presets.tls_endpoint_with_acme {
|
|
tls_secret = "docker-mailserver-tls",
|
|
cluster_issuer = "letsencrypt-prod",
|
|
hostnames = [],
|
|
dns_internal = [],
|
|
dns_zone = "",
|
|
acme_server = "https://acme-v02.api.letsencrypt.org/directory",
|
|
acme_email = "",
|
|
cert_secret_ref = "",
|
|
cert_provider = 'cloudflare,
|
|
backup_backlog_ref = "BACKUP-MAIL-001",
|
|
}) & {
|
|
backup | force = {
|
|
kind = 'pending,
|
|
reason = "BackupPolicy declared at workspace level (mail-stack BackupGroup)",
|
|
backlog_ref = "BACKUP-MAIL-001",
|
|
},
|
|
},
|
|
},
|
|
}
|