58 lines
1.9 KiB
Plaintext
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)"
|
|
|