48 lines
1.5 KiB
Plaintext
48 lines
1.5 KiB
Plaintext
|
|
# 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 ]
|
||
|
|
|