let _concerns_lib = import "schemas/lib/concerns.ncl" in let _context_lib = import "schemas/catalog/context.ncl" in { WordpressSite = { context | _context_lib.ComponentContext | optional, name | String, namespace | String, # FPM image — e.g. termas.librecloud.online/images/wordpress-fpm image | String, image_tag | String | default = "latest", # Nginx sidecar image nginx_image | String | default = "nginx:1.27-alpine", # Primary domain (canonical). www redirect handled via httproute-redirect. domain | String, # Additional domains for the TLS cert dnsNames (e.g. www.diegodelgado.es). domains_extra | Array String | default = [], dns_zone | String, acme_email | String, cluster_issuer | String, gateway_fip | String, gateway_name | String | default = "libre-wuji", gateway_ns | String | default = "kube-system", registry_secret | String | default = "regcred", storage_class | String | default = "longhorn-retain", storage_size | String | default = "10Gi", db_host | String, db_name | String, db_user | String | default = "wordpress", db_table_prefix | String | default = "wp_", # Optional php-fpm pool overrides mounted at /usr/local/etc/php-fpm.d/zz-custom.conf. # Empty string = no extra mount. fpm_pool_extra | String | default = "", # External wp-cron CronJob. When true, creates a K8s CronJob that calls # wp-cron.php via the internal service on the given schedule. # Requires DISABLE_WP_CRON=true in wp-config.php. wp_cron_enabled | Bool | default = false, wp_cron_schedule | String | default = "*/5 * * * *", smtp_host | String | default = "mail.librecloud.online", smtp_port | Number | default = 587, smtp_from | String, smtp_from_name | String | default = "", # Full canonical URL used for WordPress home/siteurl constants. wordpress_home | String, wordpress_siteurl | String, 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, .. }, }