236 lines
5.2 KiB
Plaintext
Raw Normal View History

# 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,
},
}