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

62 lines
2.2 KiB
Text

let _concerns_lib = import "schemas/lib/concerns.ncl" in
{
Woodpecker = {
name | String,
version | String,
image_server | String | default = "woodpecker/server:latest",
image_agent | String | default = "woodpecker/agent:latest",
namespace | String | default = "data",
http_port | Number | default = 8000,
grpc_port | Number | default = 9000,
database | String,
db_host | String | default = "postgresql.data.svc",
forgejo_url | String,
forgejo_client | String | default = "",
admin | String | default = "",
hostname | String | default = "",
cluster_issuer | String | default = "letsencrypt-prod-librecloud",
tls_secret | String | default = "woodpecker-tls",
gateway_name | String | default = "libre-daoshi",
gateway_ns | String | default = "kube-system",
acme_email | String | default = "",
dns_zone | String | default = "",
cert_secret_ref | String | default = "dns-librecloud-online",
mode | [| 'taskserv, 'cluster, 'container |] | default = 'cluster,
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). Public CI forge with TLS via cert-manager.
concerns | _concerns_lib.ServiceConcerns | optional,
..
},
}