31 lines
1.2 KiB
Plaintext
31 lines
1.2 KiB
Plaintext
|
|
# Info: KCL AWS provider server schemas for provisioning (Provisioning)
|
||
|
|
# Author: JesusPerezLorenzo
|
||
|
|
# Release: 0.0.4
|
||
|
|
# Date: 15-12-2023
|
||
|
|
import regex
|
||
|
|
import provisioning
|
||
|
|
|
||
|
|
schema Server_aws(ServerDefaults_aws):
|
||
|
|
"""
|
||
|
|
AWS server settings
|
||
|
|
"""
|
||
|
|
# Hostname as reference for resource if is changed later inside server, change will not be updated in resource inventory
|
||
|
|
hostname: str
|
||
|
|
title: str
|
||
|
|
|
||
|
|
# To use private network it a VPC + Subnet + NetworkInfterface has to be created
|
||
|
|
# It will be done based on aws_priv_cidr_block value (see top file)
|
||
|
|
# IP will be assign here
|
||
|
|
network_private_ip?: str
|
||
|
|
# extra hostnames for server local resolution
|
||
|
|
extra_hostnames?: [str]
|
||
|
|
taskservs?: [provisioning.TaskServDef]
|
||
|
|
clusters?: [provisioning.ClusterDef]
|
||
|
|
|
||
|
|
check:
|
||
|
|
len(hostname) > 0, "Check hostname value"
|
||
|
|
len(title) > 0, "Check titlevalue"
|
||
|
|
network_private_ip == Undefined or regex.match(network_private_ip, "^\$.*$") or regex.match(network_private_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])$"), "'network_private_ip = ${network_private_ip}' check value definition (use $vaule or xx.xx.xx.xx)"
|
||
|
|
storages != Undefined, "🛑 Storages is not defined"
|
||
|
|
|