| { | |
| "$schema": "http://json-schema.org/schema#", | |
| "type": "object", | |
| "properties": { | |
| "image": { | |
| "type": "object", | |
| "properties": { | |
| "repository": { | |
| "type": "string" | |
| }, | |
| "tag": { | |
| "type": "string" | |
| }, | |
| "command": { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| } | |
| }, | |
| "required": [ | |
| "command", | |
| "repository", | |
| "tag" | |
| ] | |
| }, | |
| "containerPort": { | |
| "type": "integer" | |
| }, | |
| "serviceName": { | |
| "type": "null" | |
| }, | |
| "servicePort": { | |
| "type": "integer" | |
| }, | |
| "extraPorts": { | |
| "type": "array" | |
| }, | |
| "replicaCount": { | |
| "type": "integer" | |
| }, | |
| "deploymentStrategy": { | |
| "type": "object" | |
| }, | |
| "resources": { | |
| "type": "object", | |
| "properties": { | |
| "requests": { | |
| "type": "object", | |
| "properties": { | |
| "cpu": { | |
| "type": "integer" | |
| }, | |
| "memory": { | |
| "type": "string" | |
| }, | |
| "nvidia.com/gpu": { | |
| "type": "integer" | |
| } | |
| }, | |
| "required": [ | |
| "cpu", | |
| "memory", | |
| "nvidia.com/gpu" | |
| ] | |
| }, | |
| "limits": { | |
| "type": "object", | |
| "properties": { | |
| "cpu": { | |
| "type": "integer" | |
| }, | |
| "memory": { | |
| "type": "string" | |
| }, | |
| "nvidia.com/gpu": { | |
| "type": "integer" | |
| } | |
| }, | |
| "required": [ | |
| "cpu", | |
| "memory", | |
| "nvidia.com/gpu" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "limits", | |
| "requests" | |
| ] | |
| }, | |
| "gpuModels": { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "autoscaling": { | |
| "type": "object", | |
| "properties": { | |
| "enabled": { | |
| "type": "boolean" | |
| }, | |
| "minReplicas": { | |
| "type": "integer" | |
| }, | |
| "maxReplicas": { | |
| "type": "integer" | |
| }, | |
| "targetCPUUtilizationPercentage": { | |
| "type": "integer" | |
| } | |
| }, | |
| "required": [ | |
| "enabled", | |
| "maxReplicas", | |
| "minReplicas", | |
| "targetCPUUtilizationPercentage" | |
| ] | |
| }, | |
| "configs": { | |
| "type": "object" | |
| }, | |
| "secrets": { | |
| "type": "object" | |
| }, | |
| "externalConfigs": { | |
| "type": "array" | |
| }, | |
| "customObjects": { | |
| "type": "array" | |
| }, | |
| "maxUnavailablePodDisruptionBudget": { | |
| "type": "string" | |
| }, | |
| "extraInit": { | |
| "type": "object", | |
| "properties": { | |
| "modelDownload": { | |
| "type": "object", | |
| "properties": { | |
| "enabled": { | |
| "type": "boolean" | |
| }, | |
| "image": { | |
| "type": "object", | |
| "properties": { | |
| "repository": { | |
| "type": "string" | |
| }, | |
| "tag": { | |
| "type": "string" | |
| }, | |
| "pullPolicy": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": ["repository", "tag", "pullPolicy"] | |
| }, | |
| "waitContainer": { | |
| "type": "object", | |
| "properties": { | |
| "command": { | |
| "type": "array", | |
| "items": {"type": "string"} | |
| }, | |
| "args": { | |
| "type": "array", | |
| "items": {"type": "string"} | |
| }, | |
| "env": { | |
| "type": "array", | |
| "items": {"type": "object"} | |
| } | |
| }, | |
| "required": ["command", "args"] | |
| }, | |
| "downloadJob": { | |
| "type": "object", | |
| "properties": { | |
| "command": { | |
| "type": "array", | |
| "items": {"type": "string"} | |
| }, | |
| "args": { | |
| "type": "array", | |
| "items": {"type": "string"} | |
| }, | |
| "env": { | |
| "type": "array", | |
| "items": {"type": "object"} | |
| } | |
| }, | |
| "required": ["command", "args"] | |
| } | |
| }, | |
| "required": ["enabled", "image", "waitContainer", "downloadJob"] | |
| }, | |
| "initContainers": { | |
| "type": "array", | |
| "items": {"type": "object"} | |
| }, | |
| "s3modelpath": { | |
| "type": "string" | |
| }, | |
| "pvcStorage": { | |
| "type": "string" | |
| }, | |
| "awsEc2MetadataDisabled": { | |
| "type": "boolean" | |
| } | |
| }, | |
| "required": [ | |
| "modelDownload", | |
| "initContainers", | |
| "pvcStorage" | |
| ] | |
| }, | |
| "extraContainers": { | |
| "type": "array" | |
| }, | |
| "readinessProbe": { | |
| "type": "object", | |
| "properties": { | |
| "initialDelaySeconds": { | |
| "type": "integer" | |
| }, | |
| "periodSeconds": { | |
| "type": "integer" | |
| }, | |
| "failureThreshold": { | |
| "type": "integer" | |
| }, | |
| "httpGet": { | |
| "type": "object", | |
| "properties": { | |
| "path": { | |
| "type": "string" | |
| }, | |
| "port": { | |
| "type": "integer" | |
| } | |
| }, | |
| "required": [ | |
| "path", | |
| "port" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "failureThreshold", | |
| "httpGet", | |
| "initialDelaySeconds", | |
| "periodSeconds" | |
| ] | |
| }, | |
| "livenessProbe": { | |
| "type": "object", | |
| "properties": { | |
| "initialDelaySeconds": { | |
| "type": "integer" | |
| }, | |
| "failureThreshold": { | |
| "type": "integer" | |
| }, | |
| "periodSeconds": { | |
| "type": "integer" | |
| }, | |
| "httpGet": { | |
| "type": "object", | |
| "properties": { | |
| "path": { | |
| "type": "string" | |
| }, | |
| "port": { | |
| "type": "integer" | |
| } | |
| }, | |
| "required": [ | |
| "path", | |
| "port" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "failureThreshold", | |
| "httpGet", | |
| "initialDelaySeconds", | |
| "periodSeconds" | |
| ] | |
| }, | |
| "labels": { | |
| "type": "object", | |
| "properties": { | |
| "environment": { | |
| "type": "string" | |
| }, | |
| "release": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "environment", | |
| "release" | |
| ] | |
| } | |
| }, | |
| "required": [ | |
| "autoscaling", | |
| "configs", | |
| "containerPort", | |
| "customObjects", | |
| "deploymentStrategy", | |
| "externalConfigs", | |
| "extraContainers", | |
| "extraInit", | |
| "extraPorts", | |
| "gpuModels", | |
| "image", | |
| "labels", | |
| "livenessProbe", | |
| "maxUnavailablePodDisruptionBudget", | |
| "readinessProbe", | |
| "replicaCount", | |
| "resources", | |
| "secrets", | |
| "servicePort" | |
| ] | |
| } |