{ "$schema": "https://json-schema.org/draft-07/schema#", "copyright": [ "SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.", "SPDX-License-Identifier: Apache-2.0", "Licensed under the Apache License, Version 2.0 (the \"License\");", "you may not use this file except in compliance with the License.", "You may obtain a copy of the License at", "http://www.apache.org/licenses/LICENSE-2.0", "Unless required by applicable law or agreed to in writing, software", "distributed under the License is distributed on an \"AS IS\" BASIS,", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", "See the License for the specific language governing permissions and", "limitations under the License." ], "properties": { "component": { "properties": { "name": { "pattern": "^[a-z]([a-z0-9_\\-]{0,29}[a-z0-9])?$", "type": "string" }, "namespace": { "pattern": "^[a-z]([a-z0-9_\\-]{0,29}[a-z0-9])?$", "oneOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "name" ] }, "image": { "properties": { "pullSecrets": { "oneOf": [ { "items": [ { "properties": { "name": { "$ref": "#/$defs/kubernetes_label", "type": "string" } }, "type": "object" } ], "minItems": 0, "type": "array" }, { "type": "null" } ] }, "name": { "type": "string" } }, "required": [ "name" ], "type": "object" }, "distributed": { "properties": { "requestPlane": { "properties": { "etcdUrl": { "type": "string" }, "natsUrl": { "type": "string" }, "timeout": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ], "required": [ "etcdUrl", "natsUrl" ] }, "workerCount": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ] }, "kubernetes": { "properties": { "checks": { "properties": { "liveness": { "properties": { "enabled": { "oneOf": [ { "type": "boolean" }, { "type": "null" } ] }, "failureThreshold": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] }, "initialDelaySeconds": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] }, "periodSeconds": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] }, "successThreshold": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ] }, "readiness": { "properties": { "enabled": { "oneOf": [ { "type": "boolean" }, { "type": "null" } ] }, "failureThreshold": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] }, "initialDelaySeconds": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] }, "periodSeconds": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] }, "successThreshold": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ] }, "labels": { "oneOf": [ { "items": { "$ref": "#/$defs/kubernetes_label" }, "minItems": 0, "type": "array" }, { "type": "null" } ] }, "terminationGracePeriod": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] }, "tolerations": { "oneOf": [ { "items": { "type": "object" }, "minItems": 0, "type": "array" }, { "type": "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ] }, "model": { "properties": { "instance": { "properties": { "count": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] }, "parallelism": { "properties": { "pipeline": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] }, "tensor": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ] }, "repository": { "properties": { "path": { "oneOf": [ { "type": "string" }, { "type": "null" } ] }, "volumeMounts": { "oneOf": [ { "items": { "properties": { "name": { "$ref": "#/$defs/kubernetes_label" }, "path": { "oneOf": [ { "type": "string" }, { "type": "null" } ] }, "persistentVolumeClaim": { "$ref": "#/$defs/kubernetes_label" } }, "type": "object", "required": [ "name", "persistentVolumeClaim" ] }, "minItems": 0, "type": "array" }, { "type": "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ] }, "ports": { "properties": { "data": { "oneOf": [ { "$ref": "#/$defs/container_port" }, { "type": "null" } ] }, "health": { "oneOf": [ { "$ref": "#/$defs/container_port" }, { "type": "null" } ] }, "metrics": { "oneOf": [ { "$ref": "#/$defs/container_port" }, { "type": "null" } ] }, "request": { "oneOf": [ { "$ref": "#/$defs/container_port" }, { "type": "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ] }, "resources": { "properties": { "cpu": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ] }, "ephemeral": { "oneOf": [ { "$ref": "#/$defs/kubernetes_units" }, { "type": "null" } ] }, "gpu": { "properties": { "count": { "oneOf": [ { "minimum": 1, "type": "integer" }, { "type" : "null" } ] }, "product": { "oneOf": [ { "items": { "$ref": "#/$defs/kubernetes_label" }, "type": "array" }, { "type": "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ] }, "memory": { "oneOf": [ { "$ref": "#/$defs/kubernetes_units" }, { "type" : "null" } ] }, "sharedMemory": { "oneOf": [ { "$ref": "#/$defs/kubernetes_units" }, { "type" : "null" } ] } }, "oneOf": [ { "type": "object" }, { "type": "null" } ] } }, "required": [ "component", "distributed", "image" ], "type": "object", "$defs": { "container_port": { "maximum": 65535, "minimum": 1025, "type": "integer" }, "kubernetes_label": { "pattern": "^[a-z0-9]([a-z0-9_\\-\\/\\.]{0,61}[a-z0-9])?$", "type": "string" }, "kubernetes_units": { "pattern": "^\\d+[GKMgkm]i$", "type": "string" }, "service_port": { "maximum": 32767, "minimum": 30000, "type": "integer" } } }