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

72 lines
2.3 KiB
Text

let _concerns_lib = import "schemas/lib/concerns.ncl" in
let _context_lib = import "schemas/catalog/context.ncl" in
{
CV = {
context | _context_lib.ComponentContext | optional,
name | String,
namespace | String,
catalog_ref | String | optional,
image | String,
image_tag | String | default = "latest",
port | Number | default = 8080,
# Optional command override — e.g. ["servcvgen", "-f", "/config/config.yaml"]
# When absent the image CMD is used.
command | Array String | optional,
domain | String,
dns_zone | String,
acme_email | String,
cluster_issuer | String,
gateway_fip | String,
gateway_name | String | default = "libre-wuji",
gateway_ns | String | default = "kube-system",
# Data PVC — CV data, templates, output, assets.
pvc_name | String | default = "cv-home",
pvc_mount | String | default = "/home",
pvc_size | String | default = "2Gi",
pvc_class | String | default = "longhorn-retain",
# Config file mounted at {config_mount}/{config_filename}.
# Non-sensitive content lives in catalog/components/cv/cluster/config.yaml.tmpl (git).
# CV_JWT_KEY and CV_MAIL_PSWD are injected at deploy time from cv-jesusperez.sops.yaml.
config_mount | String | default = "/config",
config_filename | String | default = "config.yaml",
requires | {
storage | { size | String, persistent | Bool } | optional,
ports | Array {
port | Number,
exposure | [| 'public, 'private, 'internal |] | default = 'public,
} | default = [],
credentials | Array String | default = [],
} | default = {},
provides | {
service | String | optional,
port | Number | optional,
endpoints | Array String | default = [],
} | default = {},
operations | {
install | Bool | default = true,
update | Bool | default = true,
delete | Bool | default = true,
health | Bool | default = true,
} | default = {},
live_check | {
strategy | [| 'k8s_pods, 'http_get |] | default = 'k8s_pods,
scope | [| 'cp_only, 'all_nodes |] | default = 'cp_only,
} | default = {},
concerns | _concerns_lib.ServiceConcerns | optional,
..
},
}