Jesús Pérez 44648e3206
chore: complete nickel migration and consolidate legacy configs
- Remove KCL ecosystem (~220 files deleted)
- Migrate all infrastructure to Nickel schema system
- Consolidate documentation: legacy docs → provisioning/docs/src/
- Add CI/CD workflows (.github/) and Rust build config (.cargo/)
- Update core system for Nickel schema parsing
- Update README.md and CHANGES.md for v5.0.0 release
- Fix pre-commit hooks: end-of-file, trailing-whitespace
- Breaking changes: KCL workspaces require migration
- Migration bridge available in docs/src/development/
2026-01-08 09:55:37 +00:00

219 lines
5.5 KiB
Plaintext

# Kubernetes Deployment Contracts
#
# Type definitions for K8s deployments
# Migrated from provisioning/kcl/k8s_deploy.k
{
K8sPort = {
name | String,
typ | String | optional | default = "TCP",
container | Number | optional,
nodePort | Number | optional,
target | Number | optional,
},
K8sKeyVal = {
key | String,
value | String,
},
K8sKeyPath = {
key | String,
path | String,
},
K8sVolumeMount = {
name | String,
readOnly | Bool | default = false,
mountPath | String,
subPath | String | optional,
},
K8sVolumeClaim = {
name | String,
storageClassName | String | default = "manual",
modes | Array String | default = ["ReadWriteOnce"],
abbrev_mode | Array String | optional | default = ["RWO"],
reclaimPolicy | String | optional | default = "Retain",
storage | String | optional,
typ | String | default = "",
pvMode | String | optional,
pvcMode | String | optional,
hostPath | String | optional,
},
K8sConfigMap = {
name | String,
},
K8sSecret = {
name | String,
items | Array K8sKeyPath,
},
K8sVolume = {
name | String,
typ | String | default = "volumeClaim",
persistentVolumeClaim | K8sVolumeClaim | optional,
items | Array K8sKeyPath | optional,
configMap | K8sConfigMap | optional,
secret | K8sSecret | optional,
},
K8sService = {
name | String,
typ | String | default = "ClusterIP",
externalName | String | optional,
proto | String | default = "TCP",
ports | Array K8sPort,
selector | Array K8sKeyVal | optional,
externalIPs | Array String | optional,
},
K8sResources = {
memory | String,
cpu | String,
},
K8sContainers = {
name | String | default = "main",
resources_requests | K8sResources | optional,
resources_limits | K8sResources | optional,
image | String,
cmd | String | optional,
imagePull | String | default = "IfNotPresent",
env | Array K8sKeyVal | optional,
ports | Array K8sPort | optional,
volumeMounts | Array K8sVolumeMount | optional,
},
K8sBackup = {
name | String,
typ | String,
mount_path | String,
},
K8sAffinityMatch = {
key | String,
operator | String,
values | Array String,
},
K8sAffinityLabelSelector = {
typ | String | default = "requiredDuringSchedulingIgnoredDuringExecution",
labelSelector | Array K8sAffinityMatch,
topologyKey | String | optional,
matchLabelKeys | Array String | optional,
},
K8sAntyAffinityLabelSelector = {
typ | String | default = "requiredDuringSchedulingIgnoredDuringExecution",
labelSelector | Array K8sAffinityMatch,
topologyKey | String | optional,
matchLabelKeys | Array String | optional,
weight | Number | default = 100,
},
K8sAffinity = {
affinity | K8sAffinityLabelSelector | optional,
antiAffinity | K8sAntyAffinityLabelSelector | optional,
},
K8sDeploySpec = {
replicas | Number | default = 1,
hostUsers | Bool | optional | default = true,
containers | Array K8sContainers,
imagePullSecret | String | optional,
nodeSelector | Array K8sKeyVal | optional,
nodeName | String | optional,
affinity | K8sAffinity | optional,
volumes | Array K8sVolume | optional,
secrets | Array K8sSecret | optional,
},
K8sPrxyTLS = {
httpsRedirect | Bool | optional | default = false,
mode | String | optional | default = "SIMPLE",
credentialName | String | optional,
},
K8sPrxyPort = {
name | String,
number | Number | optional,
proto | String | default = "HTTPS",
},
K8sPrxyGatewayServer = {
port | K8sPrxyPort,
tls | K8sPrxyTLS | optional,
hosts | Array String | optional,
},
K8sPrxyVirtualServiceRoute = {
port_number | Number,
host | String,
},
K8sPrxyVirtualServiceMatchURL = {
port | Number | optional,
sniHost | Array String | optional,
},
K8sPrxyVirtualServiceMatch = {
typ | String,
location | Array K8sPrxyVirtualServiceMatchURL | optional,
route_destination | Array K8sPrxyVirtualServiceRoute | optional,
},
K8sPrxyVirtualService = {
hosts | Array String,
gateways | Array String,
matches | Array K8sPrxyVirtualServiceMatch | optional,
},
K8sDefs = {
name | String,
ns | String,
domain | String,
full_domain | String,
primary_dom | String,
cluster_domain | String,
},
K8sServiceMeshConfig = {
mtls_enabled | Bool | optional | default = true,
tracing_enabled | Bool | optional | default = true,
},
K8sIngressConfig = {
tls_enabled | Bool | optional | default = true,
default_backend | String | optional,
},
K8sDeploy = {
name | String,
name_in_files | String,
namespace | String,
create_ns | Bool | default = false,
full_domain | String | optional,
labels | Array K8sKeyVal,
sel_labels | Array K8sKeyVal,
tpl_labels | Array K8sKeyVal,
spec | K8sDeploySpec,
service_mesh | String | optional,
service_mesh_ns | String | optional,
service_mesh_config | K8sServiceMeshConfig | optional,
ingress_controller | String | optional,
ingress_ns | String | optional,
ingress_config | K8sIngressConfig | optional,
prxy | String | optional,
prxy_ns | String | optional | default = "istio-system",
prxyGatewayServers | Array K8sPrxyGatewayServer | optional,
prxyVirtualService | K8sPrxyVirtualService | optional,
tls_path | String | optional | default = "ssl",
bin_apply | Bool | default = true,
service | K8sService | optional,
backups | Array K8sBackup | optional,
},
}