63 lines
2.4 KiB
Plaintext
63 lines
2.4 KiB
Plaintext
# Info: KCL Local provider defaults schemas for provisioning (Provisioning)
|
|
# Author: JesusPerezLorenzo
|
|
# Release: 0.0.4
|
|
# Date: 15-12-2023
|
|
import regex
|
|
import provisioning
|
|
|
|
schema Storage_local(provisioning.Storage):
|
|
"""
|
|
Local Storage settings
|
|
"""
|
|
volname: str = ""
|
|
labels: str = ""
|
|
encrypted: bool = False
|
|
|
|
check:
|
|
len(volname) > 0, "Check volume name"
|
|
|
|
schema ServerDefaults_local(provisioning.ServerDefaults):
|
|
"""
|
|
Local Server Defaults settings
|
|
"""
|
|
provider: "local" = "local"
|
|
# Local provision data settings
|
|
prov_settings: str = "defs/local_data.k"
|
|
# Local provision data settings clean
|
|
prov_settings_clean: bool = False
|
|
not_use: bool = False
|
|
time_zone: str = "UTC"
|
|
# Local Plan name
|
|
plan?: str
|
|
storage_os?: str
|
|
storages?: [Storage_local]
|
|
#storage_size: int
|
|
# Add one or more SSH keys to the admin account. Accepted values are SSH public keys or filenames from
|
|
# where to read the keys.
|
|
# ssh public key to be included in /root/.ssh/authorized_keys
|
|
ssh_key_path?: str
|
|
# Public certificate must be created or imported as a key_name
|
|
# use: providers/aws/bin/on-ssh.sh (add -h to get info)
|
|
ssh_key_name?: str
|
|
# To use private network, IPs will be set in servers items
|
|
priv_cidr_block?: str = "10.11.1.0/24"
|
|
# ssh_key_mode: rewrite
|
|
#network_utility_ipv4: bool = True
|
|
#network_utility_ipv6: bool = False
|
|
#network_public_ipv4?: bool = True
|
|
#network_public_ipv6?: bool = False
|
|
network_private_name?: str = "Private Network"
|
|
liveness_ip?: str = "$network_public_ip"
|
|
liveness_port: int = 22
|
|
|
|
# Labels to describe the server in `key: value` format, multiple can be declared.
|
|
# Usage: env: dev
|
|
labels: str = "{Key=cluster,Value=k8s}"
|
|
user: str = "root"
|
|
|
|
check:
|
|
len(user) > 0, "Check user value"
|
|
priv_cidr_block == Undefined or regex.match(priv_cidr_block, "^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}\/(?:3[0-2]|[0-2]?[0-9])$"), "'priv_cidr_block = ${priv_cidr_block}' check value definition"
|
|
liveness_ip == Undefined or regex.match(liveness_ip, "^\$.*$") or regex.match(liveness_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])$"), "'liveness_ip = ${liveness_ip}' check value definition (use $vaule or xx.xx.xx.xx)"
|
|
|