provisioning-catalog/components/stalwart/nickel/contracts.ncl

67 lines
2.1 KiB
Text

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,
..
},
}