236 lines
5.2 KiB
Plaintext
236 lines
5.2 KiB
Plaintext
|
|
# K8s Deploy Contracts
|
||
|
|
#
|
||
|
|
# Type definitions for Kubernetes deployment schemas.
|
||
|
|
|
||
|
|
{
|
||
|
|
PortType = [| 'TCP, 'UDP |],
|
||
|
|
StorageClassName = [| 'manual, 'nfs_client, 'rook_cephfs |],
|
||
|
|
AccessMode = [| 'ReadWriteOnce, 'ReadOnlyMany, 'ReadWriteMany, 'ReadWriteOncePod |],
|
||
|
|
AbbrevMode = [| 'RWO, 'ROX, 'RWX, 'RWOP |],
|
||
|
|
ReclaimPolicy = [| 'Recycle, 'Retain, 'Delete |],
|
||
|
|
VolumeMode = [| 'unspecified, 'Filesystem, 'Block |],
|
||
|
|
VolumeType = [| 'volumeClaim, 'configMap, 'secret, 'empty |],
|
||
|
|
ServiceType = [| 'ClusterIP, 'NodePort, 'LoadBalancer, 'ExternalName, 'Headless, 'None |],
|
||
|
|
ImagePullPolicy = [| 'IfNotPresent, 'Always, 'Never |],
|
||
|
|
AffinityOperator = [| 'In, 'NotIn, 'Exists, 'DoesNotExist |],
|
||
|
|
AffinityType = [| 'requiredDuringSchedulingIgnoredDuringExecution, 'preferredDuringSchedulingIgnoredDuringExecution |],
|
||
|
|
TlsMode = [| 'SIMPLE, 'PASSTHROUGH, 'MULTI, 'empty |],
|
||
|
|
ProxyProtocol = [| 'HTTP, 'HTTPS, 'TCP |],
|
||
|
|
MatchType = [| 'tcp, 'http, 'tls |],
|
||
|
|
ServiceMesh = [| 'istio, 'linkerd, 'cilium |],
|
||
|
|
IngressController = [| 'nginx, 'traefik, 'contour, 'haproxy, 'istio_gateway |],
|
||
|
|
LegacyProxy = [| 'istio, 'linkerd, 'nginx, 'traefik, 'contour, 'haproxy |],
|
||
|
|
|
||
|
|
K8sPort = {
|
||
|
|
name | String,
|
||
|
|
typ | optional | String,
|
||
|
|
container | optional | Number,
|
||
|
|
nodePort | optional | Number,
|
||
|
|
target | optional | Number,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sKeyVal = {
|
||
|
|
key | String,
|
||
|
|
value | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sKeyPath = {
|
||
|
|
key | String,
|
||
|
|
path | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sVolumeMount = {
|
||
|
|
name | String,
|
||
|
|
readOnly | Bool,
|
||
|
|
mountPath | String,
|
||
|
|
subPath | optional | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sVolumeClaim = {
|
||
|
|
name | String,
|
||
|
|
storageClassName | StorageClassName,
|
||
|
|
modes,
|
||
|
|
abbrev_mode | optional,
|
||
|
|
reclaimPolicy | optional | ReclaimPolicy,
|
||
|
|
storage | optional | String,
|
||
|
|
typ | VolumeType,
|
||
|
|
pvMode | optional | VolumeMode,
|
||
|
|
pvcMode | optional | VolumeMode,
|
||
|
|
hostPath | optional | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sConfigMap = {
|
||
|
|
name | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sSecret = {
|
||
|
|
name | String,
|
||
|
|
items,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sVolume = {
|
||
|
|
name | String,
|
||
|
|
typ | VolumeType,
|
||
|
|
persistentVolumeClaim | optional,
|
||
|
|
items | optional,
|
||
|
|
configMap | optional,
|
||
|
|
secret | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sService = {
|
||
|
|
name | String,
|
||
|
|
typ | ServiceType,
|
||
|
|
externalName | optional | String,
|
||
|
|
proto | String,
|
||
|
|
ports,
|
||
|
|
selector | optional,
|
||
|
|
externalIPs | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sResources = {
|
||
|
|
memory | String,
|
||
|
|
cpu | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sContainers = {
|
||
|
|
name | String,
|
||
|
|
resources_requests | optional,
|
||
|
|
resources_limits | optional,
|
||
|
|
image | String,
|
||
|
|
cmd | optional | String,
|
||
|
|
imagePull | ImagePullPolicy,
|
||
|
|
env | optional,
|
||
|
|
ports | optional,
|
||
|
|
volumeMounts | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sBackup = {
|
||
|
|
name | String,
|
||
|
|
typ | String,
|
||
|
|
mount_path | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sAffinityMatch = {
|
||
|
|
key | String,
|
||
|
|
operator | AffinityOperator,
|
||
|
|
values,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sAffinityLabelSelector = {
|
||
|
|
typ | AffinityType,
|
||
|
|
labelSelector,
|
||
|
|
topologyKey | optional | String,
|
||
|
|
matchLabelKeys | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sAntyAffinityLabelSelector = {
|
||
|
|
typ | AffinityType,
|
||
|
|
labelSelector,
|
||
|
|
topologyKey | optional | String,
|
||
|
|
matchLabelKeys | optional,
|
||
|
|
weight | Number,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sAffinity = {
|
||
|
|
affinity | optional,
|
||
|
|
antiAffinity | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sDeploySpec = {
|
||
|
|
replicas | Number,
|
||
|
|
hostUsers | optional | Bool,
|
||
|
|
containers,
|
||
|
|
imagePullSecret | optional | String,
|
||
|
|
nodeSelector | optional,
|
||
|
|
nodeName | optional | String,
|
||
|
|
affinity | optional,
|
||
|
|
volumes | optional,
|
||
|
|
secrets | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sPrxyTLS = {
|
||
|
|
httpsRedirect | optional | Bool,
|
||
|
|
mode | optional | TlsMode,
|
||
|
|
credentialName | optional | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sPrxyPort = {
|
||
|
|
name | String,
|
||
|
|
number | optional | Number,
|
||
|
|
proto | ProxyProtocol,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sPrxyGatewayServer = {
|
||
|
|
port,
|
||
|
|
tls | optional,
|
||
|
|
hosts | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sPrxyVirtualServiceRoute = {
|
||
|
|
port_number | Number,
|
||
|
|
host | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sPrxyVirtualServiceMatchURL = {
|
||
|
|
port | optional | Number,
|
||
|
|
sniHost | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sPrxyVirtualServiceMatch = {
|
||
|
|
typ | MatchType,
|
||
|
|
location | optional,
|
||
|
|
route_destination | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sPrxyVirtualService = {
|
||
|
|
hosts,
|
||
|
|
gateways,
|
||
|
|
matches | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sDefs = {
|
||
|
|
name | String,
|
||
|
|
ns | String,
|
||
|
|
domain | String,
|
||
|
|
full_domain | String,
|
||
|
|
primary_dom | String,
|
||
|
|
cluster_domain | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sServiceMeshConfig = {
|
||
|
|
mtls_enabled | optional | Bool,
|
||
|
|
tracing_enabled | optional | Bool,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sIngressConfig = {
|
||
|
|
tls_enabled | optional | Bool,
|
||
|
|
default_backend | optional | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
K8sDeploy = {
|
||
|
|
name | String,
|
||
|
|
name_in_files | String,
|
||
|
|
namespace | String,
|
||
|
|
create_ns | Bool,
|
||
|
|
full_domain | optional | String,
|
||
|
|
labels,
|
||
|
|
sel_labels,
|
||
|
|
tpl_labels,
|
||
|
|
spec,
|
||
|
|
service_mesh | optional | ServiceMesh,
|
||
|
|
service_mesh_ns | optional | String,
|
||
|
|
service_mesh_config | optional,
|
||
|
|
ingress_controller | optional | IngressController,
|
||
|
|
ingress_ns | optional | String,
|
||
|
|
ingress_config | optional,
|
||
|
|
prxy | optional | LegacyProxy,
|
||
|
|
prxy_ns | optional | String,
|
||
|
|
prxyGatewayServers | optional,
|
||
|
|
prxyVirtualService | optional,
|
||
|
|
tls_path | optional | String,
|
||
|
|
bin_apply | Bool,
|
||
|
|
service | optional,
|
||
|
|
backups | optional,
|
||
|
|
},
|
||
|
|
}
|