let _concerns_lib = import "schemas/lib/concerns.ncl" in { Relay = { host | String, port | Number | default = 587, tls | Bool | default = true, name | String | default = "ses", }, Stalwart = { name | String, version | String, image | String, namespace | String | default = "mail", hostname | String, domain | String, data_dir | String | default = "/var/lib/stalwart", node | String, lb_ipam_ip | String, tls_secret | String | default = "stalwart-tls", cluster_issuer | String | default = "letsencrypt-prod", storage_class | String | default = "hcloud-volumes", mode | [| 'cluster |] | default = 'cluster, smtp_port | Number | default = 25, smtps_port | Number | default = 465, submission_port | Number | default = 587, imaps_port | Number | default = 993, http_port | Number | default = 8080, relay | Relay, requires | { storage | { size | String, persistent | Bool } | optional, ports | Array { port | Number, protocol | String | default = "TCP", exposure | [| 'public, 'private, 'internal |] | default = 'internal, } | default = [], credentials | Array String | default = [], } | default = {}, provides | { service | String | optional, ports | Array Number | default = [], endpoints | Array String | default = [], } | default = {}, operations | { install | Bool | default = true, update | Bool | default = false, reinstall | Bool | default = false, delete | Bool | default = false, backup | Bool | default = false, restore | Bool | default = false, health | Bool | default = false, config | Bool | default = false, restart | Bool | default = false, } | default = {}, # ServiceConcerns umbrella (ADR-008). Stalwart mail server with TLS via cert-manager. concerns | _concerns_lib.ServiceConcerns | optional, .. }, }