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