2025-10-07 11:20:26 +01:00

58 lines
1.9 KiB
Plaintext

# Info: KCL ETCD task schemas for provisioning (Provisioning)
# Author: JesusPerezLorenzo
# Release: 0.0.4
# Date: 29-12-2023
import regex
schema ETCD:
version: str
name: str = "etcd"
etcd_name: str = "$hostname"
# how to generate ssl certificates
ssl_mode: "cfssl"| "openssl" = "openssl"
# It seems only RSA works (dic-2023)
ssl_sign: "ECC" | "RSA" = "RSA"
ca_sign: "ECC" | "RSA" = "RSA"
ssl_curve: "" | "secp384r1" | "secp256k1" | "secp521r1" | "prime256v1" = "prime256v1"
long_sign: 2048 | 4096 = 4096
cipher: "" | "-aes256" = ""
ca_sign_days: int = 1460
sign_days: int = 730
sign_sha: 256 | 384 | 512 = 256
sign_pass: str = ""
etcd_protocol: "https"| "http" = "https"
source_url: "google" | "github" = "github"
cluster_name: str
hostname: str
cn: str
c: str
data_dir: str = "/var/lib/etcd"
conf_path: str = "/etc/etcd/config.yaml"
log_level: "warn" | "error" = "warn"
log_out: "stdout" | "stderr" = "stderr"
discover_url: str = ""
cli_ip: str
cli_port: int = 2379
peer_ip: str
peer_port: int = 2380
cluster_list: str
token: str
certs_path: str = "/etc/ssl/etcd"
prov_path: str = "etcdcerts"
listen_peers: str = ""
adv_listen_peers: str = ""
initial_peers: str = ""
listen_clients: str = ""
adv_listen_clients: str = ""
use_localhost: bool = False
dns_domain_path: str = ""
domain_name: str = ""
discovery_srv: str = ""
use_dns: bool = True
#check:
# cli_ip == Undefined or regex.match(cli_ip,"^\$.*$") or regex.match(cli_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])$"), "'cp_ip = ${cp_ip}' check value definition (use $vaule or xx.xx.xx.xx)"
# peer_ip == Undefined or regex.match(peer_ip,"^\$.*$") or regex.match(peer_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])$"), "'cp_ip = ${cp_ip}' check value definition (use $vaule or xx.xx.xx.xx)"