{ "title": "Chart Values", "type": "object", "properties": { "addons": { "description": "Cluster addons configuration.", "type": "object", "default": {}, "required": [ "certManager", "cilium", "coredns", "fluxcd", "gatewayAPI", "gpuOperator", "ingressNginx", "monitoringAgents", "velero", "verticalPodAutoscaler" ], "properties": { "certManager": { "description": "Cert-manager addon.", "type": "object", "default": {}, "required": [ "enabled", "valuesOverride" ], "properties": { "enabled": { "description": "Enable cert-manager.", "type": "boolean", "default": false }, "valuesOverride": { "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true } } }, "cilium": { "description": "Cilium CNI plugin.", "type": "object", "default": {}, "required": [ "valuesOverride" ], "properties": { "valuesOverride": { "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true } } }, "coredns": { "description": "CoreDNS addon.", "type": "object", "default": {}, "required": [ "valuesOverride" ], "properties": { "valuesOverride": { "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true } } }, "fluxcd": { "description": "FluxCD GitOps operator.", "type": "object", "default": {}, "required": [ "enabled", "valuesOverride" ], "properties": { "enabled": { "description": "Enable FluxCD.", "type": "boolean", "default": false }, "valuesOverride": { "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true } } }, "gatewayAPI": { "description": "Gateway API addon.", "type": "object", "default": {}, "required": [ "enabled" ], "properties": { "enabled": { "description": "Enable Gateway API.", "type": "boolean", "default": false } } }, "gpuOperator": { "description": "NVIDIA GPU Operator.", "type": "object", "default": {}, "required": [ "enabled", "valuesOverride" ], "properties": { "enabled": { "description": "Enable GPU Operator.", "type": "boolean", "default": false }, "valuesOverride": { "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true } } }, "ingressNginx": { "description": "Ingress-NGINX controller.", "type": "object", "default": {}, "required": [ "enabled", "exposeMethod", "valuesOverride" ], "properties": { "enabled": { "description": "Enable the controller (requires nodes labeled `ingress-nginx`).", "type": "boolean", "default": false }, "exposeMethod": { "description": "Method to expose the controller. Allowed values: `Proxied`, `LoadBalancer`.", "type": "string", "default": "Proxied" }, "hosts": { "description": "Domains routed to this tenant cluster when `exposeMethod` is `Proxied`.", "type": "array", "default": [], "items": { "type": "string" } }, "valuesOverride": { "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true } } }, "monitoringAgents": { "description": "Monitoring agents.", "type": "object", "default": {}, "required": [ "enabled", "valuesOverride" ], "properties": { "enabled": { "description": "Enable monitoring agents.", "type": "boolean", "default": false }, "valuesOverride": { "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true } } }, "velero": { "description": "Velero backup/restore addon.", "type": "object", "default": {}, "required": [ "enabled", "valuesOverride" ], "properties": { "enabled": { "description": "Enable Velero.", "type": "boolean", "default": false }, "valuesOverride": { "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true } } }, "verticalPodAutoscaler": { "description": "Vertical Pod Autoscaler.", "type": "object", "default": {}, "required": [ "valuesOverride" ], "properties": { "valuesOverride": { "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true } } } } }, "controlPlane": { "description": "Kubernetes control-plane configuration.", "type": "object", "default": {}, "required": [ "apiServer", "controllerManager", "konnectivity", "replicas", "scheduler" ], "properties": { "apiServer": { "description": "API Server configuration.", "type": "object", "default": {}, "required": [ "resources", "resourcesPreset" ], "properties": { "resources": { "description": "CPU and memory resources for API Server.", "type": "object", "default": {}, "properties": { "cpu": { "description": "CPU available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { "type": "integer" }, { "type": "string" } ], "x-kubernetes-int-or-string": true }, "memory": { "description": "Memory (RAM) available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { "type": "integer" }, { "type": "string" } ], "x-kubernetes-int-or-string": true } } }, "resourcesPreset": { "description": "Preset if `resources` omitted.", "type": "string", "default": "medium", "enum": [ "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge" ] } } }, "controllerManager": { "description": "Controller Manager configuration.", "type": "object", "default": {}, "required": [ "resources", "resourcesPreset" ], "properties": { "resources": { "description": "CPU and memory resources for Controller Manager.", "type": "object", "default": {}, "properties": { "cpu": { "description": "CPU available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { "type": "integer" }, { "type": "string" } ], "x-kubernetes-int-or-string": true }, "memory": { "description": "Memory (RAM) available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { "type": "integer" }, { "type": "string" } ], "x-kubernetes-int-or-string": true } } }, "resourcesPreset": { "description": "Preset if `resources` omitted.", "type": "string", "default": "micro", "enum": [ "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge" ] } } }, "konnectivity": { "description": "Konnectivity configuration.", "type": "object", "default": {}, "required": [ "server" ], "properties": { "server": { "description": "Konnectivity Server configuration.", "type": "object", "default": {}, "required": [ "resources", "resourcesPreset" ], "properties": { "resources": { "description": "CPU and memory resources for Konnectivity.", "type": "object", "default": {}, "properties": { "cpu": { "description": "CPU available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { "type": "integer" }, { "type": "string" } ], "x-kubernetes-int-or-string": true }, "memory": { "description": "Memory (RAM) available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { "type": "integer" }, { "type": "string" } ], "x-kubernetes-int-or-string": true } } }, "resourcesPreset": { "description": "Preset if `resources` omitted.", "type": "string", "default": "micro", "enum": [ "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge" ] } } } } }, "replicas": { "description": "Number of control-plane replicas.", "type": "integer", "default": 2 }, "scheduler": { "description": "Scheduler configuration.", "type": "object", "default": {}, "required": [ "resources", "resourcesPreset" ], "properties": { "resources": { "description": "CPU and memory resources for Scheduler.", "type": "object", "default": {}, "properties": { "cpu": { "description": "CPU available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { "type": "integer" }, { "type": "string" } ], "x-kubernetes-int-or-string": true }, "memory": { "description": "Memory (RAM) available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { "type": "integer" }, { "type": "string" } ], "x-kubernetes-int-or-string": true } } }, "resourcesPreset": { "description": "Preset if `resources` omitted.", "type": "string", "default": "micro", "enum": [ "nano", "micro", "small", "medium", "large", "xlarge", "2xlarge" ] } } } } }, "host": { "description": "External hostname for Kubernetes cluster. Defaults to `.` if empty.", "type": "string", "default": "" }, "nodeGroups": { "description": "Worker nodes configuration map.", "type": "object", "default": { "md0": { "ephemeralStorage": "20Gi", "gpus": [], "instanceType": "u1.medium", "maxReplicas": 10, "minReplicas": 0, "resources": {}, "roles": [ "ingress-nginx" ] } }, "additionalProperties": { "type": "object", "required": [ "ephemeralStorage", "instanceType", "maxReplicas", "minReplicas", "resources" ], "properties": { "ephemeralStorage": { "description": "Ephemeral storage size.", "default": "20Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { "type": "integer" }, { "type": "string" } ], "x-kubernetes-int-or-string": true }, "gpus": { "description": "List of GPUs to attach (NVIDIA driver requires at least 4 GiB RAM).", "type": "array", "items": { "type": "object", "required": [ "name" ], "properties": { "name": { "description": "Name of GPU, such as \"nvidia.com/AD102GL_L40S\".", "type": "string" } } } }, "instanceType": { "description": "Virtual machine instance type.", "type": "string", "default": "u1.medium" }, "maxReplicas": { "description": "Maximum number of replicas.", "type": "integer", "default": 10 }, "minReplicas": { "description": "Minimum number of replicas.", "type": "integer", "default": 0 }, "resources": { "description": "CPU and memory resources for each worker node.", "type": "object", "properties": { "cpu": { "description": "CPU available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { "type": "integer" }, { "type": "string" } ], "x-kubernetes-int-or-string": true }, "memory": { "description": "Memory (RAM) available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { "type": "integer" }, { "type": "string" } ], "x-kubernetes-int-or-string": true } } }, "roles": { "description": "List of node roles.", "type": "array", "items": { "type": "string" } } } } }, "storageClass": { "description": "StorageClass used to store the data.", "type": "string", "default": "replicated" }, "version": { "description": "Kubernetes version (vMAJOR.MINOR). Supported: 1.28–1.33.", "type": "string", "default": "v1.33", "enum": [ "v1.28", "v1.29", "v1.30", "v1.31", "v1.32", "v1.33" ] } } }