mirror of
https://github.com/hanzo-ml/kserve.git
synced 2026-10-30 20:53:49 +00:00
Signed-off-by: Pierangelo Di Pilato <[email protected]> Co-authored-by: Claude Opus 4.6 <[email protected]>
13772 lines
655 KiB
Go
Generated
13772 lines
655 KiB
Go
Generated
//go:build !ignore_autogenerated
|
|
// +build !ignore_autogenerated
|
|
|
|
/*
|
|
Copyright 2023 The KServe Authors.
|
|
|
|
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.
|
|
*/
|
|
|
|
// Code generated by openapi-gen. DO NOT EDIT.
|
|
|
|
package openapi
|
|
|
|
import (
|
|
common "k8s.io/kube-openapi/pkg/common"
|
|
spec "k8s.io/kube-openapi/pkg/validation/spec"
|
|
)
|
|
|
|
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
|
|
return map[string]common.OpenAPIDefinition{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.BuiltInAdapter": schema_pkg_apis_serving_v1alpha1_BuiltInAdapter(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ClusterServingRuntime": schema_pkg_apis_serving_v1alpha1_ClusterServingRuntime(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ClusterServingRuntimeList": schema_pkg_apis_serving_v1alpha1_ClusterServingRuntimeList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ClusterStorageContainer": schema_pkg_apis_serving_v1alpha1_ClusterStorageContainer(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ClusterStorageContainerList": schema_pkg_apis_serving_v1alpha1_ClusterStorageContainerList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InfereceGraphRouterTimeouts": schema_pkg_apis_serving_v1alpha1_InfereceGraphRouterTimeouts(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceGraph": schema_pkg_apis_serving_v1alpha1_InferenceGraph(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceGraphList": schema_pkg_apis_serving_v1alpha1_InferenceGraphList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceGraphSpec": schema_pkg_apis_serving_v1alpha1_InferenceGraphSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceGraphStatus": schema_pkg_apis_serving_v1alpha1_InferenceGraphStatus(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceRouter": schema_pkg_apis_serving_v1alpha1_InferenceRouter(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceStep": schema_pkg_apis_serving_v1alpha1_InferenceStep(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceTarget": schema_pkg_apis_serving_v1alpha1_InferenceTarget(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceService": schema_pkg_apis_serving_v1alpha1_LLMInferenceService(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceConfig": schema_pkg_apis_serving_v1alpha1_LLMInferenceServiceConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceConfigList": schema_pkg_apis_serving_v1alpha1_LLMInferenceServiceConfigList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceList": schema_pkg_apis_serving_v1alpha1_LLMInferenceServiceList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelCache": schema_pkg_apis_serving_v1alpha1_LocalModelCache(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelCacheList": schema_pkg_apis_serving_v1alpha1_LocalModelCacheList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelCacheSpec": schema_pkg_apis_serving_v1alpha1_LocalModelCacheSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNamespaceCache": schema_pkg_apis_serving_v1alpha1_LocalModelNamespaceCache(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNamespaceCacheList": schema_pkg_apis_serving_v1alpha1_LocalModelNamespaceCacheList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNamespaceCacheSpec": schema_pkg_apis_serving_v1alpha1_LocalModelNamespaceCacheSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNode": schema_pkg_apis_serving_v1alpha1_LocalModelNode(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeGroup": schema_pkg_apis_serving_v1alpha1_LocalModelNodeGroup(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeGroupList": schema_pkg_apis_serving_v1alpha1_LocalModelNodeGroupList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeGroupSpec": schema_pkg_apis_serving_v1alpha1_LocalModelNodeGroupSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeList": schema_pkg_apis_serving_v1alpha1_LocalModelNodeList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeSpec": schema_pkg_apis_serving_v1alpha1_LocalModelNodeSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelStorageSpec": schema_pkg_apis_serving_v1alpha1_LocalModelStorageSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ModelSpec": schema_pkg_apis_serving_v1alpha1_ModelSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntime": schema_pkg_apis_serving_v1alpha1_ServingRuntime(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntimeList": schema_pkg_apis_serving_v1alpha1_ServingRuntimeList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntimePodSpec": schema_pkg_apis_serving_v1alpha1_ServingRuntimePodSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntimeSpec": schema_pkg_apis_serving_v1alpha1_ServingRuntimeSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntimeStatus": schema_pkg_apis_serving_v1alpha1_ServingRuntimeStatus(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.StorageContainerSpec": schema_pkg_apis_serving_v1alpha1_StorageContainerSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.StorageHelper": schema_pkg_apis_serving_v1alpha1_StorageHelper(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.SupportedModelFormat": schema_pkg_apis_serving_v1alpha1_SupportedModelFormat(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.SupportedUriFormat": schema_pkg_apis_serving_v1alpha1_SupportedUriFormat(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.TrainedModel": schema_pkg_apis_serving_v1alpha1_TrainedModel(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.TrainedModelList": schema_pkg_apis_serving_v1alpha1_TrainedModelList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.TrainedModelSpec": schema_pkg_apis_serving_v1alpha1_TrainedModelSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceService": schema_pkg_apis_serving_v1alpha2_LLMInferenceService(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceConfig": schema_pkg_apis_serving_v1alpha2_LLMInferenceServiceConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceConfigList": schema_pkg_apis_serving_v1alpha2_LLMInferenceServiceConfigList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceList": schema_pkg_apis_serving_v1alpha2_LLMInferenceServiceList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ARTExplainerSpec": schema_pkg_apis_serving_v1beta1_ARTExplainerSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.AuthenticationRef": schema_pkg_apis_serving_v1beta1_AuthenticationRef(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.AutoScalingSpec": schema_pkg_apis_serving_v1beta1_AutoScalingSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.AutoscalerConfig": schema_pkg_apis_serving_v1beta1_AutoscalerConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.Batcher": schema_pkg_apis_serving_v1beta1_Batcher(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ComponentExtensionSpec": schema_pkg_apis_serving_v1beta1_ComponentExtensionSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ComponentStatusSpec": schema_pkg_apis_serving_v1beta1_ComponentStatusSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec": schema_pkg_apis_serving_v1beta1_ConfidentialSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.CustomExplainer": schema_pkg_apis_serving_v1beta1_CustomExplainer(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.CustomPredictor": schema_pkg_apis_serving_v1beta1_CustomPredictor(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.CustomTransformer": schema_pkg_apis_serving_v1beta1_CustomTransformer(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.DeployConfig": schema_pkg_apis_serving_v1beta1_DeployConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.DeploymentRolloutStrategy": schema_pkg_apis_serving_v1beta1_DeploymentRolloutStrategy(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExplainerConfig": schema_pkg_apis_serving_v1beta1_ExplainerConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExplainerExtensionSpec": schema_pkg_apis_serving_v1beta1_ExplainerExtensionSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExplainerSpec": schema_pkg_apis_serving_v1beta1_ExplainerSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExplainersConfig": schema_pkg_apis_serving_v1beta1_ExplainersConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExtMetricAuthentication": schema_pkg_apis_serving_v1beta1_ExtMetricAuthentication(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExternalMetricSource": schema_pkg_apis_serving_v1beta1_ExternalMetricSource(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExternalMetrics": schema_pkg_apis_serving_v1beta1_ExternalMetrics(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.FailureInfo": schema_pkg_apis_serving_v1beta1_FailureInfo(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.HuggingFaceRuntimeSpec": schema_pkg_apis_serving_v1beta1_HuggingFaceRuntimeSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceService": schema_pkg_apis_serving_v1beta1_InferenceService(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceServiceDefaulter": schema_pkg_apis_serving_v1beta1_InferenceServiceDefaulter(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceServiceList": schema_pkg_apis_serving_v1beta1_InferenceServiceList(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceServiceSpec": schema_pkg_apis_serving_v1beta1_InferenceServiceSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceServiceStatus": schema_pkg_apis_serving_v1beta1_InferenceServiceStatus(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceServiceValidator": schema_pkg_apis_serving_v1beta1_InferenceServiceValidator(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceServicesConfig": schema_pkg_apis_serving_v1beta1_InferenceServicesConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.IngressConfig": schema_pkg_apis_serving_v1beta1_IngressConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.LightGBMSpec": schema_pkg_apis_serving_v1beta1_LightGBMSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.LocalModelConfig": schema_pkg_apis_serving_v1beta1_LocalModelConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.LoggerSpec": schema_pkg_apis_serving_v1beta1_LoggerSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.LoggerStorageSpec": schema_pkg_apis_serving_v1beta1_LoggerStorageSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricTarget": schema_pkg_apis_serving_v1beta1_MetricTarget(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricsSpec": schema_pkg_apis_serving_v1beta1_MetricsSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelCopies": schema_pkg_apis_serving_v1beta1_ModelCopies(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelFormat": schema_pkg_apis_serving_v1beta1_ModelFormat(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelRevisionStates": schema_pkg_apis_serving_v1beta1_ModelRevisionStates(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelSpec": schema_pkg_apis_serving_v1beta1_ModelSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStatus": schema_pkg_apis_serving_v1beta1_ModelStatus(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec": schema_pkg_apis_serving_v1beta1_ModelStorageSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.MultiNodeConfig": schema_pkg_apis_serving_v1beta1_MultiNodeConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ONNXRuntimeSpec": schema_pkg_apis_serving_v1beta1_ONNXRuntimeSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.OtelCollectorConfig": schema_pkg_apis_serving_v1beta1_OtelCollectorConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.PMMLSpec": schema_pkg_apis_serving_v1beta1_PMMLSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.PaddleServerSpec": schema_pkg_apis_serving_v1beta1_PaddleServerSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.PodMetricSource": schema_pkg_apis_serving_v1beta1_PodMetricSource(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.PodMetrics": schema_pkg_apis_serving_v1beta1_PodMetrics(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.PodSpec": schema_pkg_apis_serving_v1beta1_PodSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.PredictorExtensionSpec": schema_pkg_apis_serving_v1beta1_PredictorExtensionSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.PredictorSpec": schema_pkg_apis_serving_v1beta1_PredictorSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ResourceConfig": schema_pkg_apis_serving_v1beta1_ResourceConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ResourceMetricSource": schema_pkg_apis_serving_v1beta1_ResourceMetricSource(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.RolloutSpec": schema_pkg_apis_serving_v1beta1_RolloutSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.SKLearnSpec": schema_pkg_apis_serving_v1beta1_SKLearnSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.SecurityConfig": schema_pkg_apis_serving_v1beta1_SecurityConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ServiceConfig": schema_pkg_apis_serving_v1beta1_ServiceConfig(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.StorageSpec": schema_pkg_apis_serving_v1beta1_StorageSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.StorageUri": schema_pkg_apis_serving_v1beta1_StorageUri(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.TFServingSpec": schema_pkg_apis_serving_v1beta1_TFServingSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.TorchServeSpec": schema_pkg_apis_serving_v1beta1_TorchServeSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.TransformerSpec": schema_pkg_apis_serving_v1beta1_TransformerSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.TritonSpec": schema_pkg_apis_serving_v1beta1_TritonSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.WorkerSpec": schema_pkg_apis_serving_v1beta1_WorkerSpec(ref),
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.XGBoostSpec": schema_pkg_apis_serving_v1beta1_XGBoostSpec(ref),
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_BuiltInAdapter(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"serverType": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServerType must be one of the supported built-in types such as \"triton\" or \"mlserver\", and the runtime's container must have the same name",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeManagementPort": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Port which the runtime server listens for model management requests",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"memBufferBytes": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Fixed memory overhead to subtract from runtime container's memory allocation to determine model capacity",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"modelLoadingTimeoutMillis": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Timeout for model loading operations in milliseconds",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"env": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Environment variables used to control other aspects of the built-in adapter's behaviour (uncommon)",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"k8s.io/api/core/v1.EnvVar"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_ClusterServingRuntime(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ClusterServingRuntime is the Schema for the servingruntimes API",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntimeSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntimeStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntimeSpec", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntimeStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_ClusterServingRuntimeList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ClusterServingRuntimeList contains a list of ServingRuntime",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ClusterServingRuntime"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ClusterServingRuntime", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_ClusterStorageContainer(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.StorageContainerSpec"),
|
|
},
|
|
},
|
|
"disabled": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.StorageContainerSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_ClusterStorageContainerList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ClusterStorageContainer"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ClusterStorageContainer", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_InfereceGraphRouterTimeouts(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"serverRead": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServerRead specifies the number of seconds to wait before timing out a request read by the server.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"serverWrite": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServerWrite specifies the maximum duration in seconds before timing out writes of the response.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"serverIdle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServerIdle specifies the maximum amount of time in seconds to wait for the next request when keep-alives are enabled.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"serviceClient": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceClient specifies a time limit in seconds for requests made to the graph components by HTTP client.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_InferenceGraph(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceGraph is the Schema for the InferenceGraph API for multiple models",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceGraphSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceGraphStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceGraphSpec", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceGraphStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_InferenceGraphList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceGraphList contains a list of InferenceGraph",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "set",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceGraph"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceGraph", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_InferenceGraphSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceGraphSpec defines the InferenceGraph spec",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"nodes": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Map of InferenceGraph router nodes Each node defines the router which can be different routing types",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceRouter"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"affinity": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("k8s.io/api/core/v1.Affinity"),
|
|
},
|
|
},
|
|
"timeout": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TimeoutSeconds specifies the number of seconds to wait before timing out a request to the component.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"routerTimeouts": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InfereceGraphRouterTimeouts"),
|
|
},
|
|
},
|
|
"minReplicas": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Minimum number of replicas, defaults to 1 but can be set to 0 to enable scale-to-zero.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"maxReplicas": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Maximum number of replicas for autoscaling.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"scaleTarget": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ScaleTarget specifies the integer target value of the metric type the Autoscaler watches for. concurrency and rps targets are supported by Knative Pod Autoscaler (https://knative.dev/docs/serving/autoscaling/autoscaling-targets/).",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"scaleMetric": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ScaleMetric defines the scaling metric type watched by autoscaler possible values are concurrency, rps, cpu, memory. concurrency, rps are supported via Knative Pod Autoscaler(https://knative.dev/docs/serving/autoscaling/autoscaling-metrics).",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tolerations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Toleration specifies the toleration for the InferenceGraph. https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Toleration"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"nodeSelector": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeSelector specifies the node selector for the InferenceGraph. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"nodeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeName specifies the node name for the InferenceGraph. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceAccountName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceAccountName specifies the service account name for the InferenceGraph. https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"nodes"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InfereceGraphRouterTimeouts", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceRouter", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_InferenceGraphStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceGraphStatus defines the InferenceGraph conditions and status",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"observedGeneration": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ObservedGeneration is the 'Generation' of the Service that was last processed by the controller.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"conditions": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "type",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Conditions the latest available observations of a resource's current state.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("knative.dev/pkg/apis.Condition"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"annotations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Annotations is additional Status fields for the Resource to save some additional State as well as convey more information to the user. This is roughly akin to Annotations on any k8s resource, just the reconciler conveying richer information outwards.",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"url": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Url for the InferenceGraph",
|
|
Ref: ref("knative.dev/pkg/apis.URL"),
|
|
},
|
|
},
|
|
"deploymentMode": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceGraph DeploymentMode",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"knative.dev/pkg/apis.Condition", "knative.dev/pkg/apis.URL"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_InferenceRouter(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceRouter defines the router for each InferenceGraph node with one or multiple steps\n\n```yaml kind: InferenceGraph metadata:\n\n\tname: canary-route\n\nspec:\n\n\tnodes:\n\t root:\n\t routerType: Splitter\n\t routes:\n\t - service: mymodel1\n\t weight: 20\n\t - service: mymodel2\n\t weight: 80\n\n```\n\n```yaml kind: InferenceGraph metadata:\n\n\tname: abtest\n\nspec:\n\n\tnodes:\n\t mymodel:\n\t routerType: Switch\n\t routes:\n\t - service: mymodel1\n\t condition: \"{ .input.userId == 1 }\"\n\t - service: mymodel2\n\t condition: \"{ .input.userId == 2 }\"\n\n```\n\nScoring a case using a model ensemble consists of scoring it using each model separately, then combining the results into a single scoring result using one of the pre-defined combination methods.\n\nTree Ensemble constitutes a case where simple algorithms for combining results of either classification or regression trees are well known. Multiple classification trees, for example, are commonly combined using a \"majority-vote\" method. Multiple regression trees are often combined using various averaging techniques. e.g tagging models with segment identifiers and weights to be used for their combination in these ways. ```yaml kind: InferenceGraph metadata:\n\n\tname: ensemble\n\nspec:\n\n\tnodes:\n\t root:\n\t routerType: Sequence\n\t routes:\n\t - service: feast\n\t - nodeName: ensembleModel\n\t data: $response\n\t ensembleModel:\n\t routerType: Ensemble\n\t routes:\n\t - service: sklearn-model\n\t - service: xgboost-model\n\n```\n\nScoring a case using a sequence, or chain of models allows the output of one model to be passed in as input to the subsequent models. ```yaml kind: InferenceGraph metadata:\n\n\tname: model-chainer\n\nspec:\n\n\tnodes:\n\t root:\n\t routerType: Sequence\n\t routes:\n\t - service: mymodel-s1\n\t - service: mymodel-s2\n\t data: $response\n\t - service: mymodel-s3\n\t data: $response\n\n```\n\nIn the flow described below, the pre_processing node base64 encodes the image and passes it to two model nodes in the flow. The encoded data is available to both these nodes for classification. The second node i.e. dog-breed-classification takes the original input from the pre_processing node along-with the response from the cat-dog-classification node to do further classification of the dog breed if required. ```yaml kind: InferenceGraph metadata:\n\n\tname: dog-breed-classification\n\nspec:\n\n\tnodes:\n\t root:\n\t routerType: Sequence\n\t routes:\n\t - service: cat-dog-classifier\n\t - nodeName: breed-classifier\n\t data: $request\n\t breed-classifier:\n\t routerType: Switch\n\t routes:\n\t - service: dog-breed-classifier\n\t condition: { .predictions.class == \"dog\" }\n\t - service: cat-breed-classifier\n\t condition: { .predictions.class == \"cat\" }\n\n```",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"routerType": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RouterType\n\n- `Sequence:` chain multiple inference steps with input/output from previous step\n\n- `Splitter:` randomly routes to the target service according to the weight\n\n- `Ensemble:` routes the request to multiple models and then merge the responses\n\n- `Switch:` routes the request to one of the steps based on condition",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"steps": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Steps defines destinations for the current router node",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceStep"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"routerType"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.InferenceStep"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_InferenceStep(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceStep defines the inference target of the current step with condition, weights and data.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Unique name for the step within this node",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The node name for routing as next step",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "named reference for InferenceService",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceUrl": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceService URL, mutually exclusive with ServiceName",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"data": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "request data sent to the next route with input/output from the previous step $request $response.predictions",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"mapPredictionsToInstances": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If true, maps the 'predictions' field from the previous step's response to the 'instances' field of this step's request. Useful in sequential inference graphs where one step's output becomes the input for the next.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"weight": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "the weight for split of the traffic, only used for Split Router when weight is specified all the routing targets should be sum to 100",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"condition": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "routing based on the condition",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"dependency": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "to decide whether a step is a hard or a soft dependency in the Inference Graph",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_InferenceTarget(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Exactly one InferenceTarget field must be specified",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"nodeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The node name for routing as next step",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "named reference for InferenceService",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceUrl": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceService URL, mutually exclusive with ServiceName",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LLMInferenceService(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LLMInferenceService is the Schema for the llminferenceservices API, representing a single LLM deployment. It orchestrates the creation of underlying Kubernetes resources like Deployments and Services, and configures networking for exposing the model.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceSpec", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LLMInferenceServiceConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LLMInferenceServiceConfig is the Schema for the llminferenceserviceconfigs API. It acts as a template to provide base configurations that can be inherited by multiple LLMInferenceService instances.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceConfigStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceConfigStatus", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LLMInferenceServiceConfigList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LLMInferenceServiceConfigList is the list type for LLMInferenceServiceConfig.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceConfig"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceServiceConfig", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LLMInferenceServiceList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LLMInferenceServiceList is the list type for LLMInferenceService.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceService"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LLMInferenceService", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelCache(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LocalModelCache",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelCacheSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelCacheStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelCacheSpec", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelCacheStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelCacheList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LocalModelCacheList",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelCache"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelCache", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelCacheSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LocalModelCacheSpec",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"sourceModelUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Original StorageUri",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"modelSize": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Model size to make sure it does not exceed the disk space reserved for local models. The limit is defined on the NodeGroup.",
|
|
Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
|
|
},
|
|
},
|
|
"nodeGroups": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "group of nodes to cache the model on. Todo: support more than 1 node groups",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"serviceAccountName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceAccountName specifies the service account to use for credential lookup.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelStorageSpec"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"sourceModelUri", "modelSize", "nodeGroups"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelStorageSpec", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelNamespaceCache(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LocalModelNamespaceCache is a namespace-scoped version of LocalModelCache. It allows InferenceServices only in the same namespace to use the cached model.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNamespaceCacheSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelCacheStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelCacheStatus", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNamespaceCacheSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelNamespaceCacheList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LocalModelNamespaceCacheList contains a list of LocalModelNamespaceCache",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNamespaceCache"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNamespaceCache", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelNamespaceCacheSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LocalModelNamespaceCacheSpec defines the spec for namespace-scoped local model cache",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"sourceModelUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Original StorageUri",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"modelSize": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Model size to make sure it does not exceed the disk space reserved for local models. The limit is defined on the NodeGroup.",
|
|
Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
|
|
},
|
|
},
|
|
"nodeGroups": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "group of nodes to cache the model on.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"serviceAccountName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceAccountName specifies the service account to use for credential lookup.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelStorageSpec"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"sourceModelUri", "modelSize", "nodeGroups"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelStorageSpec", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelNode(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeSpec", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelNodeGroup(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeGroupSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeGroupStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeGroupSpec", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeGroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelNodeGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeGroup"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNodeGroup", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelNodeGroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LocalModelNodeGroupSpec defines a group of nodes for to download the model to.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageLimit": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Max storage size per node in this node group",
|
|
Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
|
|
},
|
|
},
|
|
"persistentVolumeSpec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Used to create PersistentVolumes for downloading models and in inference service namespaces",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PersistentVolumeSpec"),
|
|
},
|
|
},
|
|
"persistentVolumeClaimSpec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Used to create PersistentVolumeClaims for download and in inference service namespaces",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"storageLimit", "persistentVolumeSpec", "persistentVolumeClaimSpec"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"k8s.io/api/core/v1.PersistentVolumeClaimSpec", "k8s.io/api/core/v1.PersistentVolumeSpec", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelNodeList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNode"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelNode", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelNodeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"localModels": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of model source URI and their names",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelInfo"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"localModels"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.LocalModelInfo"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_LocalModelStorageSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LocalModelStorageSpec defines credential and storage configuration for model download",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"key": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The Storage Key in the secret for this object.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"parameters": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Parameters to override the default storage credentials and config.",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_ModelSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ModelSpec describes a TrainedModel",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage URI for the model repository",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"framework": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Machine Learning <framework name> The values could be: \"tensorflow\",\"pytorch\",\"sklearn\",\"onnx\",\"xgboost\", \"myawesomeinternalframework\" etc.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"memory": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Maximum memory this model will consume, this field is used to decide if a model server has enough memory to load this model.",
|
|
Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"storageUri", "framework", "memory"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"k8s.io/apimachinery/pkg/api/resource.Quantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_ServingRuntime(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServingRuntime is the Schema for the servingruntimes API",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntimeSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntimeStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntimeSpec", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntimeStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_ServingRuntimeList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServingRuntimeList contains a list of ServingRuntime",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntime"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ServingRuntime", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_ServingRuntimePodSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"containers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumes": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Volume"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"nodeSelector": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"affinity": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's scheduling constraints",
|
|
Ref: ref("k8s.io/api/core/v1.Affinity"),
|
|
},
|
|
},
|
|
"tolerations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's tolerations.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Toleration"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"labels": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Labels that will be add to the pod. More info: http://kubernetes.io/docs/user-guide/labels",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"annotations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Annotations that will be add to the pod. More info: http://kubernetes.io/docs/user-guide/annotations",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"imagePullSecrets": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostIPC": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's ipc namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"schedulerName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"containers"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_ServingRuntimeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServingRuntimeSpec defines the desired state of ServingRuntime. This spec is currently provisional and are subject to change as details regarding single-model serving and multi-model serving are hammered out.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"supportedModelFormats": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Model formats and version supported by this runtime",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.SupportedModelFormat"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"multiModel": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this ServingRuntime is intended for multi-model usage or not.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"disabled": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Set to true to disable use of this runtime",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersions": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Supported protocol versions (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workerSpec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Set WorkerSpec to enable multi-node/multi-gpu",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.WorkerSpec"),
|
|
},
|
|
},
|
|
"containers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumes": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Volume"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"nodeSelector": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"affinity": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's scheduling constraints",
|
|
Ref: ref("k8s.io/api/core/v1.Affinity"),
|
|
},
|
|
},
|
|
"tolerations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's tolerations.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Toleration"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"labels": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Labels that will be add to the pod. More info: http://kubernetes.io/docs/user-guide/labels",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"annotations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Annotations that will be add to the pod. More info: http://kubernetes.io/docs/user-guide/annotations",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"imagePullSecrets": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostIPC": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's ipc namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"schedulerName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"grpcEndpoint": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Grpc endpoint for internal model-management (implementing mmesh.ModelRuntime gRPC service) Assumed to be single-model runtime if omitted",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"grpcDataEndpoint": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Grpc endpoint for inferencing",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"httpDataEndpoint": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HTTP endpoint for inferencing",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"replicas": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Configure the number of replicas in the Deployment generated by this ServingRuntime If specified, this overrides the podsPerRuntime configuration value",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"storageHelper": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Configuration for this runtime's use of the storage helper (model puller) It is enabled unless explicitly disabled",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.StorageHelper"),
|
|
},
|
|
},
|
|
"builtInAdapter": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Provide the details about built-in runtime adapter",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.BuiltInAdapter"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"containers"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.BuiltInAdapter", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.StorageHelper", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.SupportedModelFormat", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.WorkerSpec", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_ServingRuntimeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServingRuntimeStatus defines the observed state of ServingRuntime",
|
|
Type: []string{"object"},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_StorageContainerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StorageContainerSpec defines the container spec for the storage initializer init container, and the protocols it supports.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"container": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container spec for the storage initializer init container",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
"supportedUriFormats": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of URI formats that this container supports",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.SupportedUriFormat"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workloadType": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"supportsMultiModelDownload": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"container", "supportedUriFormats"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.SupportedUriFormat", "k8s.io/api/core/v1.Container"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_StorageHelper(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"disabled": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_SupportedModelFormat(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the model format.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"version": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Version of the model format. Used in validating that a predictor is supported by a runtime. Can be \"major\", \"major.minor\" or \"major.minor.patch\".",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"autoSelect": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Set to true to allow the ServingRuntime to be used for automatic model placement if this model format is specified with no explicit runtime.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"priority": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Priority of this serving runtime for auto selection. This is used to select the serving runtime if more than one serving runtime supports the same model format. The value should be greater than zero. The higher the value, the higher the priority. Priority is not considered if AutoSelect is either false or not specified. Priority can be overridden by specifying the runtime in the InferenceService.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_SupportedUriFormat(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SupportedUriFormat can be either prefix or regex. Todo: Add validation that only one of them is set.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"prefix": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"regex": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_TrainedModel(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TrainedModel is the Schema for the TrainedModel API",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.TrainedModelSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.TrainedModelStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.TrainedModelSpec", "github.com/kserve/kserve/pkg/apis/serving/v1alpha1.TrainedModelStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_TrainedModelList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TrainedModelList contains a list of TrainedModel",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "set",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.TrainedModel"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.TrainedModel", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha1_TrainedModelSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TrainedModelSpec defines the TrainedModel spec",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"inferenceService": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "parent inference service to deploy to",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"model": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Predictor model spec",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ModelSpec"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"inferenceService", "model"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha1.ModelSpec"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha2_LLMInferenceService(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LLMInferenceService is the Schema for the llminferenceservices API, representing a single LLM deployment. It orchestrates the creation of underlying Kubernetes resources like Deployments and Services, and configures networking for exposing the model.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceSpec", "github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha2_LLMInferenceServiceConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LLMInferenceServiceConfig is the Schema for the llminferenceserviceconfigs API. It acts as a template to provide base configurations that can be inherited by multiple LLMInferenceService instances.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceConfigStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceConfigStatus", "github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha2_LLMInferenceServiceConfigList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LLMInferenceServiceConfigList is the list type for LLMInferenceServiceConfig.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceConfig"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceServiceConfig", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1alpha2_LLMInferenceServiceList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LLMInferenceServiceList is the list type for LLMInferenceService.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceService"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1alpha2.LLMInferenceService", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ARTExplainerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ARTExplainerType defines the arguments for configuring an ART Explanation Server",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"type": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The type of ART explainer",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The location of a trained explanation model",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Defaults to latest Explainer Version",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"config": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Inline custom parameter settings for explainer",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"type", "name"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_AuthenticationRef(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "name is the name of the authentication secret",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_AutoScalingSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"metrics": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "metrics is a list of metrics spec to be used for autoscaling",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricsSpec"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"behavior": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Behavior contains the scaling behavior configuration for the Horizontal Pod Autoscaler.",
|
|
Ref: ref("k8s.io/api/autoscaling/v2.HorizontalPodAutoscalerBehavior"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricsSpec", "k8s.io/api/autoscaling/v2.HorizontalPodAutoscalerBehavior"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_AutoscalerConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"scaleUpStabilizationWindowSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"scaleDownStabilizationWindowSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_Batcher(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Batcher specifies optional payload batching available for all components",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"maxBatchSize": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the max number of requests to trigger a batch",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"maxLatency": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the max latency to trigger a batch",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"timeout": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the timeout of a batch",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ComponentExtensionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ComponentExtensionSpec defines the deployment configuration for a given InferenceService component",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"minReplicas": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Minimum number of replicas, defaults to 1 but can be set to 0 to enable scale-to-zero.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"maxReplicas": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Maximum number of replicas for autoscaling.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"scaleTarget": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ScaleTarget specifies the integer target value of the metric type the Autoscaler watches for. concurrency and rps targets are supported by Knative Pod Autoscaler (https://knative.dev/docs/serving/autoscaling/autoscaling-targets/).",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"scaleMetric": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ScaleMetric defines the scaling metric type watched by autoscaler. possible values are concurrency, rps, cpu, memory. concurrency, rps are supported via Knative Pod Autoscaler(https://knative.dev/docs/serving/autoscaling/autoscaling-metrics).",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"scaleMetricType": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Type of metric to use. Options are Utilization, or AverageValue.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"autoScaling": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "AutoScaling autoscaling spec which is backed up HPA or KEDA.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.AutoScalingSpec"),
|
|
},
|
|
},
|
|
"containerConcurrency": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ContainerConcurrency specifies how many requests can be processed concurrently, this sets the hard limit of the container concurrency(https://knative.dev/docs/serving/autoscaling/concurrency).",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"timeout": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TimeoutSeconds specifies the number of seconds to wait before timing out a request to the component.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"canaryTrafficPercent": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "CanaryTrafficPercent defines the traffic split percentage between the candidate revision and the last ready revision",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"logger": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Activate request/response logging and logger configurations",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.LoggerSpec"),
|
|
},
|
|
},
|
|
"batcher": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Activate request batching and batching configurations",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.Batcher"),
|
|
},
|
|
},
|
|
"labels": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Labels that will be added to the component pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"annotations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Annotations that will be added to the component pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"deploymentStrategy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The deployment strategy to use to replace existing pods with new ones. Only applicable for raw deployment mode.",
|
|
Ref: ref("k8s.io/api/apps/v1.DeploymentStrategy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.AutoScalingSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.Batcher", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.LoggerSpec", "k8s.io/api/apps/v1.DeploymentStrategy"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ComponentStatusSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ComponentStatusSpec describes the state of the component",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"latestReadyRevision": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Latest revision name that is in ready state",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"latestCreatedRevision": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Latest revision name that is created",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"previousRolledoutRevision": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Previous revision name that is rolled out with 100 percent traffic",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"latestRolledoutRevision": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Latest revision name that is rolled out with 100 percent traffic",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"traffic": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Traffic holds the configured traffic distribution for latest ready revision and previous rolled out revision.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("knative.dev/serving/pkg/apis/serving/v1.TrafficTarget"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"url": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "URL holds the primary url that will distribute traffic over the provided traffic targets. This will be one the REST or gRPC endpoints that are available. It generally has the form http[s]://{route-name}.{route-namespace}.{cluster-level-suffix}",
|
|
Ref: ref("knative.dev/pkg/apis.URL"),
|
|
},
|
|
},
|
|
"restUrl": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "REST endpoint of the component if available.",
|
|
Ref: ref("knative.dev/pkg/apis.URL"),
|
|
},
|
|
},
|
|
"grpcUrl": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "gRPC endpoint of the component if available.",
|
|
Ref: ref("knative.dev/pkg/apis.URL"),
|
|
},
|
|
},
|
|
"address": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Addressable endpoint for the InferenceService",
|
|
Ref: ref("knative.dev/pkg/apis/duck/v1.Addressable"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"knative.dev/pkg/apis.URL", "knative.dev/pkg/apis/duck/v1.Addressable", "knative.dev/serving/pkg/apis/serving/v1.TrafficTarget"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ConfidentialSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ConfidentialSpec enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer will decrypt model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"enabled": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Enabled controls whether confidential model serving is active. When true, the confidential storage initializer image is used and encrypted model artifacts are decrypted after download.",
|
|
Default: false,
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"resourceId": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ResourceId is the KBS resource identifier for the decryption key, in the format kbs:///<repo>/<type>/<tag>.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"enabled"},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_CustomExplainer(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "CustomExplainer defines arguments for configuring a custom explainer.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"volumes": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Volume"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"initContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"containers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"ephemeralContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EphemeralContainer"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationGracePeriodSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"activeDeadlineSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"dnsPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeSelector": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-map-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"serviceAccountName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceAccount": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"automountServiceAccountToken": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostNetwork": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostPID": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's pid namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostIPC": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's ipc namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"shareProcessNamespace": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.",
|
|
Ref: ref("k8s.io/api/core/v1.PodSecurityContext"),
|
|
},
|
|
},
|
|
"imagePullSecrets": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostname": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"subdomain": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\". If not specified, the pod will not have a domainname at all.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"affinity": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's scheduling constraints",
|
|
Ref: ref("k8s.io/api/core/v1.Affinity"),
|
|
},
|
|
},
|
|
"schedulerName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tolerations": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's tolerations.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Toleration"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostAliases": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"ip",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "ip",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.HostAlias"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"priorityClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"priority": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"dnsConfig": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
|
|
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
|
|
},
|
|
},
|
|
"readinessGates": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodReadinessGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"runtimeClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"enableServiceLinks": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"preemptionPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"overhead": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"topologySpreadConstraints": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"topologyKey",
|
|
"whenUnsatisfiable",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "topologyKey",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"setHostnameAsFQDN": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"os": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup",
|
|
Ref: ref("k8s.io/api/core/v1.PodOS"),
|
|
},
|
|
},
|
|
"hostUsers": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"schedulingGates": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodSchedulingGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resourceClaims": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \"cpu\", \"memory\" and \"hugepages-\" resource names only. ResourceClaims are not supported.\n\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\n\nThis is an alpha field and requires enabling the PodLevelResources feature gate.",
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"hostnameOverride": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false.\n\nThis field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"containers"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodOS", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSchedulingGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_CustomPredictor(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "CustomPredictor defines arguments for configuring a custom server.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"volumes": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Volume"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"initContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"containers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"ephemeralContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EphemeralContainer"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationGracePeriodSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"activeDeadlineSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"dnsPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeSelector": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-map-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"serviceAccountName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceAccount": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"automountServiceAccountToken": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostNetwork": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostPID": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's pid namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostIPC": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's ipc namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"shareProcessNamespace": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.",
|
|
Ref: ref("k8s.io/api/core/v1.PodSecurityContext"),
|
|
},
|
|
},
|
|
"imagePullSecrets": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostname": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"subdomain": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\". If not specified, the pod will not have a domainname at all.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"affinity": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's scheduling constraints",
|
|
Ref: ref("k8s.io/api/core/v1.Affinity"),
|
|
},
|
|
},
|
|
"schedulerName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tolerations": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's tolerations.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Toleration"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostAliases": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"ip",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "ip",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.HostAlias"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"priorityClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"priority": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"dnsConfig": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
|
|
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
|
|
},
|
|
},
|
|
"readinessGates": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodReadinessGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"runtimeClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"enableServiceLinks": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"preemptionPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"overhead": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"topologySpreadConstraints": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"topologyKey",
|
|
"whenUnsatisfiable",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "topologyKey",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"setHostnameAsFQDN": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"os": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup",
|
|
Ref: ref("k8s.io/api/core/v1.PodOS"),
|
|
},
|
|
},
|
|
"hostUsers": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"schedulingGates": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodSchedulingGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resourceClaims": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \"cpu\", \"memory\" and \"hugepages-\" resource names only. ResourceClaims are not supported.\n\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\n\nThis is an alpha field and requires enabling the PodLevelResources feature gate.",
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"hostnameOverride": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false.\n\nThis field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"containers"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodOS", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSchedulingGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_CustomTransformer(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "CustomTransformer defines arguments for configuring a custom transformer.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"volumes": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Volume"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"initContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"containers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"ephemeralContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EphemeralContainer"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationGracePeriodSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"activeDeadlineSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"dnsPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeSelector": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-map-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"serviceAccountName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceAccount": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"automountServiceAccountToken": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostNetwork": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostPID": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's pid namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostIPC": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's ipc namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"shareProcessNamespace": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.",
|
|
Ref: ref("k8s.io/api/core/v1.PodSecurityContext"),
|
|
},
|
|
},
|
|
"imagePullSecrets": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostname": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"subdomain": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\". If not specified, the pod will not have a domainname at all.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"affinity": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's scheduling constraints",
|
|
Ref: ref("k8s.io/api/core/v1.Affinity"),
|
|
},
|
|
},
|
|
"schedulerName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tolerations": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's tolerations.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Toleration"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostAliases": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"ip",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "ip",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.HostAlias"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"priorityClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"priority": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"dnsConfig": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
|
|
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
|
|
},
|
|
},
|
|
"readinessGates": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodReadinessGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"runtimeClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"enableServiceLinks": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"preemptionPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"overhead": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"topologySpreadConstraints": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"topologyKey",
|
|
"whenUnsatisfiable",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "topologyKey",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"setHostnameAsFQDN": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"os": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup",
|
|
Ref: ref("k8s.io/api/core/v1.PodOS"),
|
|
},
|
|
},
|
|
"hostUsers": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"schedulingGates": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodSchedulingGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resourceClaims": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \"cpu\", \"memory\" and \"hugepages-\" resource names only. ResourceClaims are not supported.\n\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\n\nThis is an alpha field and requires enabling the PodLevelResources feature gate.",
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"hostnameOverride": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false.\n\nThis field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"containers"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodOS", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSchedulingGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_DeployConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"defaultDeploymentMode": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"deploymentRolloutStrategy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.DeploymentRolloutStrategy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.DeploymentRolloutStrategy"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_DeploymentRolloutStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "DeploymentRolloutStrategy defines the rollout strategy configuration for deployments",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"defaultRollout": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "DefaultRollout specifies the default rollout configuration",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.RolloutSpec"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.RolloutSpec"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ExplainerConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "explainer docker image name",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"defaultImageVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "default explainer docker image version",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"image", "defaultImageVersion"},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ExplainerExtensionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ExplainerExtensionSpec defines configuration shared across all explainer frameworks",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The location of a trained explanation model",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Defaults to latest Explainer Version",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"config": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Inline custom parameter settings for explainer",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ExplainerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ExplainerSpec defines the container spec for a model explanation server, The following fields follow a \"1-of\" semantic. Users must specify exactly one spec.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"art": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for ART explainer",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ARTExplainerSpec"),
|
|
},
|
|
},
|
|
"volumes": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Volume"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"initContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"containers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"ephemeralContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EphemeralContainer"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationGracePeriodSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"activeDeadlineSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"dnsPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeSelector": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-map-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"serviceAccountName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceAccount": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\n\nDeprecated: Use serviceAccountName instead.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"automountServiceAccountToken": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostNetwork": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostPID": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's pid namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostIPC": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's ipc namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"shareProcessNamespace": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.",
|
|
Ref: ref("k8s.io/api/core/v1.PodSecurityContext"),
|
|
},
|
|
},
|
|
"imagePullSecrets": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostname": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"subdomain": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\". If not specified, the pod will not have a domainname at all.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"affinity": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's scheduling constraints",
|
|
Ref: ref("k8s.io/api/core/v1.Affinity"),
|
|
},
|
|
},
|
|
"schedulerName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tolerations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's tolerations.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Toleration"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostAliases": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "ip",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.HostAlias"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"priorityClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"priority": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"dnsConfig": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
|
|
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
|
|
},
|
|
},
|
|
"readinessGates": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodReadinessGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"runtimeClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"enableServiceLinks": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"preemptionPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"overhead": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"topologySpreadConstraints": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"topologyKey",
|
|
"whenUnsatisfiable",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "topologyKey",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"setHostnameAsFQDN": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"os": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup",
|
|
Ref: ref("k8s.io/api/core/v1.PodOS"),
|
|
},
|
|
},
|
|
"hostUsers": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"schedulingGates": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodSchedulingGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resourceClaims": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \"cpu\" and \"memory\" resource names only. ResourceClaims are not supported.\n\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\n\nThis is an alpha field and requires enabling the PodLevelResources feature gate.",
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"hostnameOverride": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false.\n\nThis field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"minReplicas": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Minimum number of replicas, defaults to 1 but can be set to 0 to enable scale-to-zero.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"maxReplicas": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Maximum number of replicas for autoscaling.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"scaleTarget": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ScaleTarget specifies the integer target value of the metric type the Autoscaler watches for. concurrency and rps targets are supported by Knative Pod Autoscaler (https://knative.dev/docs/serving/autoscaling/autoscaling-targets/).",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"scaleMetric": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ScaleMetric defines the scaling metric type watched by autoscaler. possible values are concurrency, rps, cpu, memory. concurrency, rps are supported via Knative Pod Autoscaler(https://knative.dev/docs/serving/autoscaling/autoscaling-metrics).",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"scaleMetricType": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Type of metric to use. Options are Utilization, or AverageValue.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"autoScaling": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "AutoScaling autoscaling spec which is backed up HPA or KEDA.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.AutoScalingSpec"),
|
|
},
|
|
},
|
|
"containerConcurrency": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ContainerConcurrency specifies how many requests can be processed concurrently, this sets the hard limit of the container concurrency(https://knative.dev/docs/serving/autoscaling/concurrency).",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"timeout": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TimeoutSeconds specifies the number of seconds to wait before timing out a request to the component.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"canaryTrafficPercent": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "CanaryTrafficPercent defines the traffic split percentage between the candidate revision and the last ready revision",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"logger": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Activate request/response logging and logger configurations",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.LoggerSpec"),
|
|
},
|
|
},
|
|
"batcher": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Activate request batching and batching configurations",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.Batcher"),
|
|
},
|
|
},
|
|
"labels": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Labels that will be added to the component pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"annotations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Annotations that will be added to the component pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"deploymentStrategy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The deployment strategy to use to replace existing pods with new ones. Only applicable for raw deployment mode.",
|
|
Ref: ref("k8s.io/api/apps/v1.DeploymentStrategy"),
|
|
},
|
|
},
|
|
"storageUris": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for multiple storage uris.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.StorageUri"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ARTExplainerSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.AutoScalingSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.Batcher", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.LoggerSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.StorageUri", "k8s.io/api/apps/v1.DeploymentStrategy", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodOS", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSchedulingGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ExplainersConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"art": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExplainerConfig"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExplainerConfig"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ExtMetricAuthentication(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"authenticationRef": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "authenticationRef is a reference to the authentication information for more information see: https://keda.sh/docs/2.17/scalers/prometheus/#authentication-parameters",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.AuthenticationRef"),
|
|
},
|
|
},
|
|
"authModes": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "authModes defines the authentication modes for the metrics backend possible values are bearer, basic, tls. for more information see: https://keda.sh/docs/2.17/scalers/prometheus/#authentication-parameters",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"authenticationRef"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.AuthenticationRef"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ExternalMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"metric": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "metric identifies the target metric by name and selector",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExternalMetrics"),
|
|
},
|
|
},
|
|
"authenticationRef": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "authenticationRef is a reference to the authentication information for more information see: https://keda.sh/docs/2.17/scalers/prometheus/#authentication-parameters",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExtMetricAuthentication"),
|
|
},
|
|
},
|
|
"target": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "target specifies the target value for the given metric",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricTarget"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"metric", "target"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExtMetricAuthentication", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExternalMetrics", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricTarget"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ExternalMetrics(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"backend": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "MetricsBackend defines the scaling metric type watched by autoscaler possible values are prometheus, graphite.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serverAddress": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Address of MetricsBackend server.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"query": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Query to run to get metrics from MetricsBackend",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"namespace": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "For namespaced query",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_FailureInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"location": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of component to which the failure relates (usually Pod name)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"reason": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "High level class of failure",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"message": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Detailed error message",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"modelRevisionName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Internal Revision/ID of model, tied to specific Spec contents",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"time": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Time failure occurred or was discovered",
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
|
|
},
|
|
},
|
|
"exitCode": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Exit status from the last termination of the container",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_HuggingFaceRuntimeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HuggingFaceRuntimeSpec defines arguments for configuring HuggingFace model serving.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "This field points to the location of the trained model which is mounted onto the pod.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Runtime version of the predictor docker image",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Protocol version to use by the predictor (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
"confidential": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Confidential enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer decrypts model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec"),
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_InferenceService(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceService is the Schema for the InferenceServices API",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
},
|
|
},
|
|
"spec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceServiceSpec"),
|
|
},
|
|
},
|
|
"status": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceServiceStatus"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceServiceSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceServiceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_InferenceServiceDefaulter(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceServiceDefaulter is responsible for setting default values on the InferenceService when created or updated.\n\nNOTE: The +kubebuilder:object:generate=false marker prevents controller-gen from generating DeepCopy methods, as it is used only for temporary operations and does not need to be deeply copied.",
|
|
Type: []string{"object"},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_InferenceServiceList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceServiceList contains a list of Service",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"kind": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"apiVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadata": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
},
|
|
},
|
|
"items": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "set",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceService"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"items"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.InferenceService", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_InferenceServiceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceServiceSpec is the top level type for this resource",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"predictor": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Predictor defines the model serving spec",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.PredictorSpec"),
|
|
},
|
|
},
|
|
"explainer": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Explainer defines the model explanation service spec, explainer service calls to predictor or transformer if it is specified.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExplainerSpec"),
|
|
},
|
|
},
|
|
"transformer": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Transformer defines the pre/post processing before and after the predictor call, transformer service calls to predictor service.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.TransformerSpec"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"predictor"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExplainerSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.PredictorSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.TransformerSpec"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_InferenceServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceServiceStatus defines the observed state of InferenceService",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"observedGeneration": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ObservedGeneration is the 'Generation' of the Service that was last processed by the controller.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"conditions": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "type",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Conditions the latest available observations of a resource's current state.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("knative.dev/pkg/apis.Condition"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"annotations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Annotations is additional Status fields for the Resource to save some additional State as well as convey more information to the user. This is roughly akin to Annotations on any k8s resource, just the reconciler conveying richer information outwards.",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"address": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Addressable endpoint for the InferenceService",
|
|
Ref: ref("knative.dev/pkg/apis/duck/v1.Addressable"),
|
|
},
|
|
},
|
|
"url": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "URL holds the url that will distribute traffic over the provided traffic targets. It generally has the form http[s]://{route-name}.{route-namespace}.{cluster-level-suffix}",
|
|
Ref: ref("knative.dev/pkg/apis.URL"),
|
|
},
|
|
},
|
|
"components": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Statuses for the components of the InferenceService",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ComponentStatusSpec"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"modelStatus": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Model related statuses",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStatus"),
|
|
},
|
|
},
|
|
"deploymentMode": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceService DeploymentMode",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"servingRuntimeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServingRuntimeName is the name of the ServingRuntime that the InferenceService is using",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"clusterServingRuntimeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ClusterServingRuntimeName is the name of the ClusterServingRuntime that the InferenceService is using",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ComponentStatusSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStatus", "knative.dev/pkg/apis.Condition", "knative.dev/pkg/apis.URL", "knative.dev/pkg/apis/duck/v1.Addressable"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_InferenceServiceValidator(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "InferenceServiceValidator is responsible for validating the InferenceService resource when it is created, updated, or deleted.\n\nNOTE: The +kubebuilder:object:generate=false marker prevents controller-gen from generating DeepCopy methods, as this struct is used only for temporary operations and does not need to be deeply copied.",
|
|
Type: []string{"object"},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_InferenceServicesConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"explainers": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Explainer configurations",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExplainersConfig"),
|
|
},
|
|
},
|
|
"serviceAnnotationDisallowedList": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceAnnotationDisallowedList is a list of annotations that are not allowed to be propagated to Knative revisions",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"serviceLabelDisallowedList": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceLabelDisallowedList is a list of labels that are not allowed to be propagated to Knative revisions",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resource": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resource configurations",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ResourceConfig"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"explainers"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExplainersConfig", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ResourceConfig"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_IngressConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"enableGatewayApi": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"kserveIngressGateway": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ingressGateway": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"knativeLocalGatewayService": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"localGateway": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"localGatewayService": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ingressDomain": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ingressClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"additionalIngressDomains": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"domainTemplate": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"urlScheme": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"enableLLMInferenceServiceTLS": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"disableIstioVirtualHost": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"pathTemplate": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"disableIngressCreation": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"disableHTTPRouteTimeout": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"modelBasedRoutingHeaderName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"modelBasedRoutingMode": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_LightGBMSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LightGBMSpec defines arguments for configuring LightGBMSpec model serving.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "This field points to the location of the trained model which is mounted onto the pod.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Runtime version of the predictor docker image",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Protocol version to use by the predictor (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
"confidential": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Confidential enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer decrypts model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec"),
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_LocalModelConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"enabled": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: false,
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"jobNamespace": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"defaultJobImage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"fsGroup": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"jobTTLSecondsAfterFinished": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"reconcilationFrequencyInSecs": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"disableVolumeManagement": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"enabled", "jobNamespace"},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_LoggerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "LoggerSpec specifies optional payload logging available for all components",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"url": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "URL to send logging events",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"mode": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the scope of the loggers. <br /> Valid values are: <br /> - \"all\" (default): log both request and response; <br /> - \"request\": log only request; <br /> - \"response\": log only response <br />",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metadataHeaders": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Matched metadata HTTP headers for propagating to inference logger cloud events.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"metadataAnnotations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Matched inference service annotations for propagating to inference logger cloud events.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the storage location for the inference logger cloud events.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.LoggerStorageSpec"),
|
|
},
|
|
},
|
|
"marshallerUrl": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "URL of the log marshaller service that transforms log records before storage. Defaults to the embedded JSON marshaller at http://localhost:9083/marshal.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"batchSize": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Number of log records per batch for blob storage. Defaults to 1 (immediate).",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"batchInterval": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Max duration to wait before flushing a partial batch (e.g. \"5s\", \"100ms\"). Only used when BatchSize > 1. Defaults to \"0\" (no time-based flushing).",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.LoggerStorageSpec"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_LoggerStorageSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"path": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The path to the object in the storage. Note that this path is relative to the storage URI.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"parameters": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Parameters to override the default storage credentials and config.",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"key": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The Storage Key in the secret for this object.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceAccountName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_MetricTarget(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "MetricTarget defines the target value, average value, or average utilization of a specific metric",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"type": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "type represents whether the metric type is Utilization, Value, or AverageValue",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"value": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "value is the target value of the metric (as a quantity).",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricQuantity"),
|
|
},
|
|
},
|
|
"averageValue": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricQuantity"),
|
|
},
|
|
},
|
|
"averageUtilization": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricQuantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_MetricsSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "MetricsSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"type": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "type is the type of metric source. It should be one of \"Resource\", \"External\", \"PodMetric\". \"Resource\" or \"External\" each mapping to a matching field in the object.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"resource": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ResourceMetricSource"),
|
|
},
|
|
},
|
|
"external": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from load balancer running outside of cluster).",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExternalMetricSource"),
|
|
},
|
|
},
|
|
"podmetric": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.PodMetricSource"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"type"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ExternalMetricSource", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.PodMetricSource", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ResourceMetricSource"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ModelCopies(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"failedCopies": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "How many copies of this predictor's models failed to load recently",
|
|
Default: 0,
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"totalCopies": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Total number of copies of this predictor's models across all states (Pending, Loading, Loaded, FailedToLoad).",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"failedCopies"},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ModelFormat(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the model format.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"version": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Version of the model format. Used in validating that a predictor is supported by a runtime. Can be \"major\", \"major.minor\" or \"major.minor.patch\".",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ModelRevisionStates(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"activeModelState": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "High level state string: Pending, Standby, Loading, Loaded, FailedToLoad",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"targetModelState": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"activeModelState"},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ModelSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"modelFormat": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ModelFormat being served.",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelFormat"),
|
|
},
|
|
},
|
|
"runtime": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specific ClusterServingRuntime/ServingRuntime name to use for deployment.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "This field points to the location of the trained model which is mounted onto the pod.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Runtime version of the predictor docker image",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Protocol version to use by the predictor (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
"confidential": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Confidential enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer decrypts model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"modelFormat"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelFormat", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ModelStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"transitionStatus": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the available predictor endpoints reflect the current Spec or is in transition",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"states": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "State information of the predictor's model.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelRevisionStates"),
|
|
},
|
|
},
|
|
"lastFailureInfo": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Details of last failure, when load of target model is failed or blocked.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.FailureInfo"),
|
|
},
|
|
},
|
|
"copies": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Model copy information of the predictor's model.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelCopies"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"transitionStatus"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.FailureInfo", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelCopies", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelRevisionStates"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ModelStorageSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"path": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The path to the object in the storage. Note that this path is relative to the storage URI.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"parameters": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Parameters to override the default storage credentials and config.",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"key": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The Storage Key in the secret for this object.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"schemaPath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The path to the model schema file in the storage.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_MultiNodeConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"customGPUResourceTypeList": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "CustomGPUResourceTypeList is a list of custom GPU resource types that are allowed to be used in the ServingRuntime and inferenceService",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ONNXRuntimeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ONNXRuntimeSpec defines arguments for configuring ONNX model serving.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "This field points to the location of the trained model which is mounted onto the pod.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Runtime version of the predictor docker image",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Protocol version to use by the predictor (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
"confidential": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Confidential enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer decrypts model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec"),
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_OtelCollectorConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"scrapeInterval": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metricReceiverEndpoint": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metricScalerEndpoint": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"resource": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ResourceConfig"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ResourceConfig"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_PMMLSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PMMLSpec defines arguments for configuring PMML model serving.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "This field points to the location of the trained model which is mounted onto the pod.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Runtime version of the predictor docker image",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Protocol version to use by the predictor (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
"confidential": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Confidential enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer decrypts model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec"),
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_PaddleServerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "This field points to the location of the trained model which is mounted onto the pod.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Runtime version of the predictor docker image",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Protocol version to use by the predictor (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
"confidential": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Confidential enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer decrypts model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec"),
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_PodMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PodMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"metric": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "metric identifies the target metric by name and selector",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.PodMetrics"),
|
|
},
|
|
},
|
|
"target": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "target specifies the target value for the given metric",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricTarget"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"metric", "target"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricTarget", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.PodMetrics"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_PodMetrics(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"backend": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Backend defines the scaling metric type watched by the autoscaler. Possible value: opentelemetry.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serverAddress": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServerAddress specifies the address of the PodsMetricsBackend server.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"metricNames": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "MetricNames is the list of metric names in the backend.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"query": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Query specifies the query to run to get metrics from the PodsMetricsBackend.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"operationOverTime": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "OperationOverTime specifies the operation to aggregate the metrics over time. Possible values are last_one, avg, max, min, rate, count. Default is 'last_one'.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_PodSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PodSpec is a description of a pod.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"volumes": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Volume"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"initContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"containers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"ephemeralContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EphemeralContainer"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationGracePeriodSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"activeDeadlineSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"dnsPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeSelector": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-map-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"serviceAccountName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceAccount": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\n\nDeprecated: Use serviceAccountName instead.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"automountServiceAccountToken": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostNetwork": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostPID": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's pid namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostIPC": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's ipc namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"shareProcessNamespace": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.",
|
|
Ref: ref("k8s.io/api/core/v1.PodSecurityContext"),
|
|
},
|
|
},
|
|
"imagePullSecrets": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostname": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"subdomain": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\". If not specified, the pod will not have a domainname at all.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"affinity": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's scheduling constraints",
|
|
Ref: ref("k8s.io/api/core/v1.Affinity"),
|
|
},
|
|
},
|
|
"schedulerName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tolerations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's tolerations.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Toleration"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostAliases": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "ip",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.HostAlias"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"priorityClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"priority": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"dnsConfig": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
|
|
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
|
|
},
|
|
},
|
|
"readinessGates": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodReadinessGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"runtimeClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"enableServiceLinks": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"preemptionPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"overhead": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"topologySpreadConstraints": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"topologyKey",
|
|
"whenUnsatisfiable",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "topologyKey",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"setHostnameAsFQDN": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"os": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup",
|
|
Ref: ref("k8s.io/api/core/v1.PodOS"),
|
|
},
|
|
},
|
|
"hostUsers": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"schedulingGates": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodSchedulingGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resourceClaims": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \"cpu\" and \"memory\" resource names only. ResourceClaims are not supported.\n\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\n\nThis is an alpha field and requires enabling the PodLevelResources feature gate.",
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"hostnameOverride": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false.\n\nThis field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodOS", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSchedulingGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_PredictorExtensionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PredictorExtensionSpec defines configuration shared across all predictor frameworks",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "This field points to the location of the trained model which is mounted onto the pod.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Runtime version of the predictor docker image",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Protocol version to use by the predictor (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
"confidential": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Confidential enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer decrypts model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec"),
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_PredictorSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PredictorSpec defines the configuration for a predictor, The following fields follow a \"1-of\" semantic. Users must specify exactly one spec.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"sklearn": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for SKLearn model server",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.SKLearnSpec"),
|
|
},
|
|
},
|
|
"xgboost": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for XGBoost model server",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.XGBoostSpec"),
|
|
},
|
|
},
|
|
"tensorflow": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for TFServing (https://github.com/tensorflow/serving)",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.TFServingSpec"),
|
|
},
|
|
},
|
|
"pytorch": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for TorchServe (https://pytorch.org/serve)",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.TorchServeSpec"),
|
|
},
|
|
},
|
|
"triton": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for Triton Inference Server (https://github.com/triton-inference-server/server)",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.TritonSpec"),
|
|
},
|
|
},
|
|
"onnx": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for ONNX runtime (https://github.com/microsoft/onnxruntime)",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ONNXRuntimeSpec"),
|
|
},
|
|
},
|
|
"huggingface": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for HuggingFace runtime (https://github.com/huggingface)",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.HuggingFaceRuntimeSpec"),
|
|
},
|
|
},
|
|
"pmml": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for PMML (http://dmg.org/pmml/v4-1/GeneralStructure.html)",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.PMMLSpec"),
|
|
},
|
|
},
|
|
"lightgbm": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for LightGBM model server",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.LightGBMSpec"),
|
|
},
|
|
},
|
|
"paddle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for Paddle model server (https://github.com/PaddlePaddle/Serving)",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.PaddleServerSpec"),
|
|
},
|
|
},
|
|
"model": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Model spec for any arbitrary framework.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelSpec"),
|
|
},
|
|
},
|
|
"storageUris": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for multiple storage uris.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.StorageUri"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"storageContainerName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StorageContainerName specifies the name of the ClusterStorageContainer to use for downloading model artifacts. When set, this ClusterStorageContainer is used instead of auto-matching based on the storage URI scheme. This is similar to storageClassName on PersistentVolumeClaims.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"workerSpec": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "WorkerSpec for enabling multi-node/multi-gpu",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.WorkerSpec"),
|
|
},
|
|
},
|
|
"volumes": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Volume"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"initContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"containers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"ephemeralContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EphemeralContainer"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationGracePeriodSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"activeDeadlineSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"dnsPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeSelector": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-map-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"serviceAccountName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceAccount": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\n\nDeprecated: Use serviceAccountName instead.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"automountServiceAccountToken": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostNetwork": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostPID": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's pid namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostIPC": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's ipc namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"shareProcessNamespace": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.",
|
|
Ref: ref("k8s.io/api/core/v1.PodSecurityContext"),
|
|
},
|
|
},
|
|
"imagePullSecrets": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostname": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"subdomain": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\". If not specified, the pod will not have a domainname at all.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"affinity": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's scheduling constraints",
|
|
Ref: ref("k8s.io/api/core/v1.Affinity"),
|
|
},
|
|
},
|
|
"schedulerName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tolerations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's tolerations.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Toleration"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostAliases": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "ip",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.HostAlias"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"priorityClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"priority": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"dnsConfig": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
|
|
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
|
|
},
|
|
},
|
|
"readinessGates": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodReadinessGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"runtimeClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"enableServiceLinks": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"preemptionPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"overhead": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"topologySpreadConstraints": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"topologyKey",
|
|
"whenUnsatisfiable",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "topologyKey",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"setHostnameAsFQDN": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"os": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup",
|
|
Ref: ref("k8s.io/api/core/v1.PodOS"),
|
|
},
|
|
},
|
|
"hostUsers": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"schedulingGates": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodSchedulingGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resourceClaims": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \"cpu\" and \"memory\" resource names only. ResourceClaims are not supported.\n\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\n\nThis is an alpha field and requires enabling the PodLevelResources feature gate.",
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"hostnameOverride": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false.\n\nThis field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"minReplicas": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Minimum number of replicas, defaults to 1 but can be set to 0 to enable scale-to-zero.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"maxReplicas": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Maximum number of replicas for autoscaling.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"scaleTarget": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ScaleTarget specifies the integer target value of the metric type the Autoscaler watches for. concurrency and rps targets are supported by Knative Pod Autoscaler (https://knative.dev/docs/serving/autoscaling/autoscaling-targets/).",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"scaleMetric": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ScaleMetric defines the scaling metric type watched by autoscaler. possible values are concurrency, rps, cpu, memory. concurrency, rps are supported via Knative Pod Autoscaler(https://knative.dev/docs/serving/autoscaling/autoscaling-metrics).",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"scaleMetricType": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Type of metric to use. Options are Utilization, or AverageValue.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"autoScaling": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "AutoScaling autoscaling spec which is backed up HPA or KEDA.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.AutoScalingSpec"),
|
|
},
|
|
},
|
|
"containerConcurrency": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ContainerConcurrency specifies how many requests can be processed concurrently, this sets the hard limit of the container concurrency(https://knative.dev/docs/serving/autoscaling/concurrency).",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"timeout": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TimeoutSeconds specifies the number of seconds to wait before timing out a request to the component.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"canaryTrafficPercent": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "CanaryTrafficPercent defines the traffic split percentage between the candidate revision and the last ready revision",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"logger": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Activate request/response logging and logger configurations",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.LoggerSpec"),
|
|
},
|
|
},
|
|
"batcher": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Activate request batching and batching configurations",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.Batcher"),
|
|
},
|
|
},
|
|
"labels": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Labels that will be added to the component pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"annotations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Annotations that will be added to the component pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"deploymentStrategy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The deployment strategy to use to replace existing pods with new ones. Only applicable for raw deployment mode.",
|
|
Ref: ref("k8s.io/api/apps/v1.DeploymentStrategy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.AutoScalingSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.Batcher", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.HuggingFaceRuntimeSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.LightGBMSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.LoggerSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ONNXRuntimeSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.PMMLSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.PaddleServerSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.SKLearnSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.StorageUri", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.TFServingSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.TorchServeSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.TritonSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.WorkerSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.XGBoostSpec", "k8s.io/api/apps/v1.DeploymentStrategy", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodOS", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSchedulingGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ResourceConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"cpuLimit": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"memoryLimit": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"cpuRequest": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"memoryRequest": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ResourceMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "name is the name of the resource in question.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"target": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "target specifies the target value for the given metric",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricTarget"),
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"name", "target"},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.MetricTarget"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_RolloutSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RolloutSpec defines the rollout strategy configuration using Kubernetes deployment strategy",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"maxSurge": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "MaxSurge specifies the maximum number of pods that can be created above the desired replica count. Can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"maxUnavailable": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "MaxUnavailable specifies the maximum number of pods that can be unavailable during the update. Can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"maxSurge", "maxUnavailable"},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_SKLearnSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SKLearnSpec defines arguments for configuring SKLearn model serving.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "This field points to the location of the trained model which is mounted onto the pod.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Runtime version of the predictor docker image",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Protocol version to use by the predictor (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
"confidential": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Confidential enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer decrypts model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec"),
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_SecurityConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"autoMountServiceAccountToken": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: false,
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"autoMountServiceAccountToken"},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_ServiceConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"serviceClusterIPNone": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceClusterIPNone is a boolean flag to indicate if the service should have a clusterIP set to None. If the DeploymentMode is Raw, the default value for ServiceClusterIPNone is false when the value is absent.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_StorageSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StorageSpec defines a spec for an object in an object store",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"path": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The path to the object in the storage. Note that this path is relative to the storage URI.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"parameters": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Parameters to override the default storage credentials and config.",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"key": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The Storage Key in the secret for this object.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_StorageUri(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"uri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"mountPath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "MountPath is the path where the model will be mounted inside the container. If not specified, it defaults to /mnt/models.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
Required: []string{"uri"},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_TFServingSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TFServingSpec defines arguments for configuring Tensorflow model serving.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "This field points to the location of the trained model which is mounted onto the pod.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Runtime version of the predictor docker image",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Protocol version to use by the predictor (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
"confidential": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Confidential enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer decrypts model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec"),
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_TorchServeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TorchServeSpec defines arguments for configuring PyTorch model serving.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "This field points to the location of the trained model which is mounted onto the pod.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Runtime version of the predictor docker image",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Protocol version to use by the predictor (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
"confidential": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Confidential enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer decrypts model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec"),
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_TransformerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TransformerSpec defines transformer service for pre/post processing",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"volumes": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Volume"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"initContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"containers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"ephemeralContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EphemeralContainer"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationGracePeriodSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"activeDeadlineSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"dnsPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeSelector": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-map-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"serviceAccountName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceAccount": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\n\nDeprecated: Use serviceAccountName instead.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"automountServiceAccountToken": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostNetwork": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostPID": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's pid namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostIPC": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's ipc namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"shareProcessNamespace": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.",
|
|
Ref: ref("k8s.io/api/core/v1.PodSecurityContext"),
|
|
},
|
|
},
|
|
"imagePullSecrets": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostname": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"subdomain": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\". If not specified, the pod will not have a domainname at all.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"affinity": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's scheduling constraints",
|
|
Ref: ref("k8s.io/api/core/v1.Affinity"),
|
|
},
|
|
},
|
|
"schedulerName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tolerations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's tolerations.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Toleration"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostAliases": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "ip",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.HostAlias"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"priorityClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"priority": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"dnsConfig": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
|
|
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
|
|
},
|
|
},
|
|
"readinessGates": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodReadinessGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"runtimeClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"enableServiceLinks": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"preemptionPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"overhead": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"topologySpreadConstraints": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"topologyKey",
|
|
"whenUnsatisfiable",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "topologyKey",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"setHostnameAsFQDN": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"os": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup",
|
|
Ref: ref("k8s.io/api/core/v1.PodOS"),
|
|
},
|
|
},
|
|
"hostUsers": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"schedulingGates": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodSchedulingGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resourceClaims": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \"cpu\" and \"memory\" resource names only. ResourceClaims are not supported.\n\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\n\nThis is an alpha field and requires enabling the PodLevelResources feature gate.",
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"hostnameOverride": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false.\n\nThis field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"minReplicas": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Minimum number of replicas, defaults to 1 but can be set to 0 to enable scale-to-zero.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"maxReplicas": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Maximum number of replicas for autoscaling.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"scaleTarget": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ScaleTarget specifies the integer target value of the metric type the Autoscaler watches for. concurrency and rps targets are supported by Knative Pod Autoscaler (https://knative.dev/docs/serving/autoscaling/autoscaling-targets/).",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"scaleMetric": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ScaleMetric defines the scaling metric type watched by autoscaler. possible values are concurrency, rps, cpu, memory. concurrency, rps are supported via Knative Pod Autoscaler(https://knative.dev/docs/serving/autoscaling/autoscaling-metrics).",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"scaleMetricType": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Type of metric to use. Options are Utilization, or AverageValue.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"autoScaling": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "AutoScaling autoscaling spec which is backed up HPA or KEDA.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.AutoScalingSpec"),
|
|
},
|
|
},
|
|
"containerConcurrency": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ContainerConcurrency specifies how many requests can be processed concurrently, this sets the hard limit of the container concurrency(https://knative.dev/docs/serving/autoscaling/concurrency).",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"timeout": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TimeoutSeconds specifies the number of seconds to wait before timing out a request to the component.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"canaryTrafficPercent": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "CanaryTrafficPercent defines the traffic split percentage between the candidate revision and the last ready revision",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"logger": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Activate request/response logging and logger configurations",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.LoggerSpec"),
|
|
},
|
|
},
|
|
"batcher": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Activate request batching and batching configurations",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.Batcher"),
|
|
},
|
|
},
|
|
"labels": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Labels that will be added to the component pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"annotations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Annotations that will be added to the component pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"deploymentStrategy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The deployment strategy to use to replace existing pods with new ones. Only applicable for raw deployment mode.",
|
|
Ref: ref("k8s.io/api/apps/v1.DeploymentStrategy"),
|
|
},
|
|
},
|
|
"storageUris": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Spec for multiple storage uris.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.StorageUri"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.AutoScalingSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.Batcher", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.LoggerSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.StorageUri", "k8s.io/api/apps/v1.DeploymentStrategy", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodOS", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSchedulingGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_TritonSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TritonSpec defines arguments for configuring Triton model serving.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "This field points to the location of the trained model which is mounted onto the pod.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Runtime version of the predictor docker image",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Protocol version to use by the predictor (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
"confidential": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Confidential enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer decrypts model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec"),
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_WorkerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"volumes": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Volume"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"initContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"containers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Container"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"ephemeralContainers": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EphemeralContainer"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationGracePeriodSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"activeDeadlineSeconds": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.",
|
|
Type: []string{"integer"},
|
|
Format: "int64",
|
|
},
|
|
},
|
|
"dnsPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeSelector": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-map-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"serviceAccountName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"serviceAccount": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\n\nDeprecated: Use serviceAccountName instead.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"automountServiceAccountToken": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"nodeName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostNetwork": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostPID": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's pid namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"hostIPC": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's ipc namespace. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"shareProcessNamespace": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.",
|
|
Ref: ref("k8s.io/api/core/v1.PodSecurityContext"),
|
|
},
|
|
},
|
|
"imagePullSecrets": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostname": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"subdomain": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\". If not specified, the pod will not have a domainname at all.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"affinity": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's scheduling constraints",
|
|
Ref: ref("k8s.io/api/core/v1.Affinity"),
|
|
},
|
|
},
|
|
"schedulerName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tolerations": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, the pod's tolerations.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.Toleration"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"hostAliases": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-patch-merge-key": "ip",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.HostAlias"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"priorityClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"priority": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"dnsConfig": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
|
|
Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
|
|
},
|
|
},
|
|
"readinessGates": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodReadinessGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"runtimeClassName": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"enableServiceLinks": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"preemptionPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"overhead": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md",
|
|
Type: []string{"object"},
|
|
AdditionalProperties: &spec.SchemaOrBool{
|
|
Allows: true,
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"topologySpreadConstraints": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"topologyKey",
|
|
"whenUnsatisfiable",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "topologyKey",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"setHostnameAsFQDN": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"os": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup",
|
|
Ref: ref("k8s.io/api/core/v1.PodOS"),
|
|
},
|
|
},
|
|
"hostUsers": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"schedulingGates": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodSchedulingGate"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resourceClaims": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge,retainKeys",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \"cpu\" and \"memory\" resource names only. ResourceClaims are not supported.\n\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\n\nThis is an alpha field and requires enabling the PodLevelResources feature gate.",
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"hostnameOverride": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false.\n\nThis field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"pipelineParallelSize": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "PipelineParallelSize defines the number of parallel workers. It also represents the number of replicas in the worker set, where each worker set serves as a scaling unit.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
"tensorParallelSize": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "TensorParallelSize specifies the number of GPUs to be used per node. It indicates the degree of parallelism for tensor computations across the available GPUs.",
|
|
Type: []string{"integer"},
|
|
Format: "int32",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodOS", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSchedulingGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
|
|
}
|
|
}
|
|
|
|
func schema_pkg_apis_serving_v1beta1_XGBoostSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
return common.OpenAPIDefinition{
|
|
Schema: spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "XGBoostSpec defines arguments for configuring XGBoost model serving.",
|
|
Type: []string{"object"},
|
|
Properties: map[string]spec.Schema{
|
|
"storageUri": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "This field points to the location of the trained model which is mounted onto the pod.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"runtimeVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Runtime version of the predictor docker image",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"protocolVersion": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Protocol version to use by the predictor (i.e. v1 or v2 or grpc-v1 or grpc-v2)",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"name": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"image": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"command": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"args": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: "",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"workingDir": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"ports": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"containerPort",
|
|
"protocol",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "containerPort",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerPort"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"envFrom": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"env": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"name",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "name",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "List of environment variables to set in the container. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.EnvVar"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"resources": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
|
|
},
|
|
},
|
|
"resizePolicy": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Resources resize policy for the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"restartPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"restartPolicyRules": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-type": "atomic",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeMounts": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"mountPath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "mountPath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeMount"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"volumeDevices": {
|
|
VendorExtensible: spec.VendorExtensible{
|
|
Extensions: spec.Extensions{
|
|
"x-kubernetes-list-map-keys": []interface{}{
|
|
"devicePath",
|
|
},
|
|
"x-kubernetes-list-type": "map",
|
|
"x-kubernetes-patch-merge-key": "devicePath",
|
|
"x-kubernetes-patch-strategy": "merge",
|
|
},
|
|
},
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "volumeDevices is the list of block devices to be used by the container.",
|
|
Type: []string{"array"},
|
|
Items: &spec.SchemaOrArray{
|
|
Schema: &spec.Schema{
|
|
SchemaProps: spec.SchemaProps{
|
|
Default: map[string]interface{}{},
|
|
Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"livenessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"readinessProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"startupProbe": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
|
|
Ref: ref("k8s.io/api/core/v1.Probe"),
|
|
},
|
|
},
|
|
"lifecycle": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
|
|
Ref: ref("k8s.io/api/core/v1.Lifecycle"),
|
|
},
|
|
},
|
|
"terminationMessagePath": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"terminationMessagePolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"imagePullPolicy": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images",
|
|
Type: []string{"string"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"securityContext": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
|
|
Ref: ref("k8s.io/api/core/v1.SecurityContext"),
|
|
},
|
|
},
|
|
"stdin": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"stdinOnce": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"tty": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
|
|
Type: []string{"boolean"},
|
|
Format: "",
|
|
},
|
|
},
|
|
"storage": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Storage Spec for model location",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec"),
|
|
},
|
|
},
|
|
"confidential": {
|
|
SchemaProps: spec.SchemaProps{
|
|
Description: "Confidential enables confidential model serving with encrypted model artifacts. When enabled, the storage initializer decrypts model files using keys obtained from a Key Broker Service (KBS) via TEE attestation.",
|
|
Ref: ref("github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec"),
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
},
|
|
Dependencies: []string{
|
|
"github.com/kserve/kserve/pkg/apis/serving/v1beta1.ConfidentialSpec", "github.com/kserve/kserve/pkg/apis/serving/v1beta1.ModelStorageSpec", "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
|
|
}
|
|
}
|