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

69 lines
2.1 KiB
Text
Raw Permalink Normal View History

let _presets = (import "schemas/lib/concerns_presets.ncl").presets in
{
web_app | default = {
name | default = "web-app",
namespace | default = "",
catalog_ref | default = "web_app",
image | default = "nginx",
image_tag | default = "1.27-alpine",
http_port | default = 80,
domain | default = "",
domains_extra | default = [],
dns_zone | default = "",
acme_email | default = "",
cluster_issuer | default = "letsencrypt-prod",
gateway_fip | default = "",
gateway_name | default = "libre-wuji",
gateway_ns | default = "kube-system",
storage_class | default = "longhorn-retain",
storage_size | default = "2Gi",
data_dir | default = "/usr/share/nginx/html",
nginx_conf_extra | default = "",
auth_paths | default = [],
requires | default = {
storage = { size = "2Gi", persistent = true },
ports = [{ port = 80, exposure = 'public }],
credentials = [],
},
provides | default = {
service = "web-app",
port = 80,
endpoints = [],
},
operations | default = {
install = true,
update = true,
delete = true,
health = true,
},
live_check | default = {
strategy = 'k8s_pods,
scope = 'cp_only,
},
concerns | default =
let _name = name in
let _domain = domain in
let _dns_zone = dns_zone in
let _acme_email = acme_email in
let _cluster_issuer = cluster_issuer in
(_presets.tls_endpoint_with_acme {
tls_secret = "%{_name}-tls",
cluster_issuer = _cluster_issuer,
hostnames = [_domain],
dns_internal = [],
dns_zone = _dns_zone,
acme_server = "https://acme-v02.api.letsencrypt.org/directory",
acme_email = _acme_email,
cert_secret_ref = "",
cert_provider = 'cloudflare,
backup_backlog_ref = "",
}),
},
}