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

65 lines
2.2 KiB
Text

let _concerns_lib = import "schemas/lib/concerns.ncl" in
{
PostgreSQL = {
name | String,
version | String,
port | Number | default = 5432,
data_dir | String | default = "/var/lib/data/postgresql",
databases | Array String | default = [],
mode | [| 'taskserv, 'cluster, 'container |] | default = 'cluster,
postgres_version | String | optional,
vers_num | Number | optional,
run_path | String | optional,
lib_path | String | optional,
data_path | String | optional,
etc_path | String | optional,
config_file | String | optional,
run_user | String | optional,
run_group | String | optional,
run_user_home | String | optional,
namespace | String | optional,
image | String | optional,
replicas | Number | optional,
service_type | [| 'ClusterIP, 'NodePort, 'LoadBalancer |] | optional,
storage_class | String | optional,
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,
port | Number | optional,
databases | Array String | 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,
scripts | Bool | default = false,
restart | Bool | default = false,
} | default = {},
# ServiceConcerns umbrella (ADR-008). Database — backup decided at
# workspace level via BackupPolicy with database scope + dump_strategy.
concerns | _concerns_lib.ServiceConcerns | optional,
..
},
}