73 lines
2.4 KiB
Text
73 lines
2.4 KiB
Text
|
|
let _presets = (import "schemas/lib/concerns_presets.ncl").presets in
|
||
|
|
|
||
|
|
{
|
||
|
|
woodpecker | default = {
|
||
|
|
name | default = "woodpecker",
|
||
|
|
version | default = "latest",
|
||
|
|
image_server | default = "woodpecker/server:latest",
|
||
|
|
image_agent | default = "woodpecker/agent:latest",
|
||
|
|
namespace | default = "data",
|
||
|
|
http_port | default = 8000,
|
||
|
|
grpc_port | default = 9000,
|
||
|
|
database | default = "woodpecker",
|
||
|
|
db_host | default = "postgresql.data.svc",
|
||
|
|
forgejo_url | default = "http://forgejo.data.svc:3000",
|
||
|
|
forgejo_client | default = "",
|
||
|
|
admin | default = "",
|
||
|
|
hostname | default = "",
|
||
|
|
cluster_issuer | default = "letsencrypt-prod-librecloud",
|
||
|
|
tls_secret | default = "woodpecker-tls",
|
||
|
|
gateway_name | default = "libre-daoshi",
|
||
|
|
gateway_ns | default = "kube-system",
|
||
|
|
acme_email | default = "",
|
||
|
|
dns_zone | default = "",
|
||
|
|
cert_secret_ref | default = "dns-librecloud-online",
|
||
|
|
mode | default = 'cluster,
|
||
|
|
|
||
|
|
requires | default = {
|
||
|
|
storage = { size = "5Gi", persistent = true },
|
||
|
|
ports = [
|
||
|
|
{ port = 80, exposure = 'public },
|
||
|
|
{ port = 443, exposure = 'public },
|
||
|
|
],
|
||
|
|
credentials = ["WOODPECKER_AGENT_SECRET", "WOODPECKER_FORGEJO_SECRET", "POSTGRES_PASSWORD"],
|
||
|
|
},
|
||
|
|
|
||
|
|
provides | default = {
|
||
|
|
service = "woodpecker",
|
||
|
|
port = 8000,
|
||
|
|
},
|
||
|
|
|
||
|
|
operations | default = {
|
||
|
|
install = true,
|
||
|
|
update = true,
|
||
|
|
delete = true,
|
||
|
|
health = true,
|
||
|
|
},
|
||
|
|
live_check | default = {
|
||
|
|
strategy = 'k8s_pods,
|
||
|
|
scope = 'cp_only,
|
||
|
|
},
|
||
|
|
|
||
|
|
# ServiceConcerns default — public Woodpecker CI; tls_endpoint_with_acme preset.
|
||
|
|
concerns | default = (_presets.tls_endpoint_with_acme {
|
||
|
|
tls_secret = "woodpecker-tls",
|
||
|
|
cluster_issuer = "letsencrypt-prod",
|
||
|
|
hostnames = [],
|
||
|
|
dns_internal = [],
|
||
|
|
dns_zone = "",
|
||
|
|
acme_server = "https://acme-v02.api.letsencrypt.org/directory",
|
||
|
|
acme_email = "",
|
||
|
|
cert_secret_ref = "",
|
||
|
|
cert_provider = 'cloudflare,
|
||
|
|
backup_backlog_ref = "BACKUP-WOODPECKER-001",
|
||
|
|
}) & {
|
||
|
|
backup | force = {
|
||
|
|
kind = 'pending,
|
||
|
|
reason = "BackupPolicy declared at workspace level (DB + agent state)",
|
||
|
|
backlog_ref = "BACKUP-WOODPECKER-001",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
}
|