provisioning-catalog/components/rev_proxy/nickel/defaults.ncl

84 lines
2.6 KiB
Text
Raw Normal View History

let _presets = (import "schemas/lib/concerns_presets.ncl").presets in
{
rev_proxy | default = {
name | default = "rev-proxy",
namespace | default = "rvprxy",
catalog_ref | default = "rev_proxy",
image | default = "sadoyan/aralez",
image_tag | default = "latest",
fip_name | default = "librecloud-fip-rvprxy",
http_port | default = 6193,
https_port | default = 6194,
config_port | default = 3000,
storage_class | default = "longhorn-retain",
storage_size | default = "2Gi",
data_dir | default = "/opt/storage",
acme_email | default = "",
sites | default = [],
requires | default = {
storage = { size = "2Gi", persistent = true },
ports = [
{ port = 6193, exposure = 'public },
{ port = 6194, exposure = 'public },
],
credentials = [],
},
provides | default = {
service = "rev-proxy",
port = 6193,
endpoints = [],
},
operations | default = {
install = true,
update = true,
delete = true,
health = true,
},
live_check | default = {
strategy = 'k8s_pods,
scope = 'cp_only,
},
# Shared proxy — certs are per-site, managed individually in manifests.
# The preset is used for the shared TLS concern metadata; hostnames = []
# since each site has its own Certificate resource.
concerns | default =
let _name = name in
let _acme_email = acme_email in
(_presets.tls_endpoint_with_acme {
tls_secret = "%{_name}-tls",
cluster_issuer = "letsencrypt-prod",
hostnames = [],
dns_internal = [],
dns_zone = "",
acme_server = "https://acme-v02.api.letsencrypt.org/directory",
acme_email = _acme_email,
cert_secret_ref = "",
cert_provider = 'cloudflare,
backup_backlog_ref = "BACKUP-RVPRXY-001",
}) & {
backup | force = {
kind = 'pending,
reason = "Shared content PVC covered by cluster-level backup policy",
backlog_ref = "BACKUP-RVPRXY-001",
},
manifest_hooks = {
init = { pre = [
{ action = 'create-cf-secret },
{ file = "clusterissuers", action = 'apply, skip_if_exists = true },
{ file = "certificates", action = 'apply, skip_if_exists = true },
] },
update = { pre = [
{ file = "certificates", action = 'apply, skip_if_exists = true },
] },
delete = { pre = [] },
},
},
},
}