48 lines
1.5 KiB
Plaintext
Raw Normal View History

2025-10-07 11:20:26 +01:00
# Info: KCL Proxy task schemas for provisioning (Provisioning)
# Author: JesusPerezLorenzo
# Release: 0.0.4
# Date: 10-12-2023
import regex
schema ProxyBackend:
"""
ProxyBackend
"""
name: str = "be_repo"
ssl_sni: str = "localrepo.cloudnative.zone"
mode: "http"| "tcp" = "tcp"
balance: str = "roundrobin"
option: str
server_name: str
server_host_ip: str
server_port: int
server_ops: str = "check fall 3 rise 2"
check:
regex.match(server_host_ip,"^\$.*$") or regex.match(server_host_ip, "^((25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])$"), "'server_hosts_ip = ${server_host_ip}' check value definition (use $vaule or xx.xx.xx.xx)"
schema IPBind:
"""
IP bind settings for https
"""
ip: str
port: int
check:
regex.match(ip,"^\$.*$") or regex.match(ip, "^((25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])$"), "'ip = ${ip}' check value definition (use $vaule or xx.xx.xx.xx)"
schema Proxy:
"""
Proxy settings
"""
proxy_version: str
proxy_lib: str = "/var/lib/haproxy"
proxy_cfg_file: str = "haproxy.cfg"
run_user: str = "haproxy"
run_group: str = "haproxy"
run_user_home: str = "/home/${run_user}"
https_in_binds: [ IPBind ]
https_options: [ str ] = [ "tcplog", "dontlognull" ]
https_log_format: str = "%H %ci:%cp [%t] %ft %b/%s %Tw/%Tc/%Tt %B %ts %ac/%fc/%bc/%sc/%rc %sq/%bq"
backends: [ ProxyBackend ]