diff --git a/hack/violation_exception_v1beta1.list b/hack/violation_exception_v1beta1.list index 1ed6c8e7602..e69de29bb2d 100644 --- a/hack/violation_exception_v1beta1.list +++ b/hack/violation_exception_v1beta1.list @@ -1,30 +0,0 @@ -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/common/v1beta1,AlgorithmSpec,AlgorithmSettings -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/common/v1beta1,EarlyStoppingSpec,AlgorithmSettings -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/common/v1beta1,FilterSpec,MetricsFormat -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/common/v1beta1,ObjectiveSpec,AdditionalMetricNames -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/common/v1beta1,ObjectiveSpec,MetricStrategies -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/common/v1beta1,Observation,Metrics -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,ExperimentSpec,Parameters -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,ExperimentStatus,Conditions -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,ExperimentStatus,EarlyStoppedTrialList -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,ExperimentStatus,FailedTrialList -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,ExperimentStatus,KilledTrialList -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,ExperimentStatus,MetricsUnavailableTrialList -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,ExperimentStatus,PendingTrialList -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,ExperimentStatus,RunningTrialList -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,ExperimentStatus,SucceededTrialList -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,FeasibleSpace,List -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,GraphConfig,InputSizes -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,GraphConfig,OutputSizes -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,NasConfig,Operations -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,Operation,Parameters -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,OptimalTrial,ParameterAssignments -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/experiments/v1beta1,TrialTemplate,TrialParameters -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/suggestions/v1beta1,SuggestionStatus,AlgorithmSettings -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/suggestions/v1beta1,SuggestionStatus,Conditions -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/suggestions/v1beta1,SuggestionStatus,Suggestions -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/suggestions/v1beta1,TrialAssignment,EarlyStoppingRules -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/suggestions/v1beta1,TrialAssignment,ParameterAssignments -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/trials/v1beta1,TrialSpec,EarlyStoppingRules -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/trials/v1beta1,TrialSpec,ParameterAssignments -API rule violation: list_type_missing,github.com/kubeflow/katib/pkg/apis/controller/trials/v1beta1,TrialStatus,Conditions diff --git a/pkg/apis/controller/common/v1beta1/common_types.go b/pkg/apis/controller/common/v1beta1/common_types.go index 251f8887042..5805f603efa 100644 --- a/pkg/apis/controller/common/v1beta1/common_types.go +++ b/pkg/apis/controller/common/v1beta1/common_types.go @@ -27,6 +27,8 @@ type AlgorithmSpec struct { AlgorithmName string `json:"algorithmName,omitempty"` // Key-value pairs representing settings for suggestion algorithms. + // +listType=map + // +listMapKey=name AlgorithmSettings []AlgorithmSetting `json:"algorithmSettings,omitempty"` } @@ -46,6 +48,8 @@ type EarlyStoppingSpec struct { AlgorithmName string `json:"algorithmName,omitempty"` // Key-value pairs representing settings for early stopping algorithm. + // +listType=map + // +listMapKey=name AlgorithmSettings []EarlyStoppingSetting `json:"algorithmSettings,omitempty"` } @@ -105,10 +109,13 @@ type ObjectiveSpec struct { // AdditionalMetricNames represents metrics that should be collected from Trials. // This can be empty if we only care about the objective metric. // Note: If we adopt a push instead of pull mechanism, this can be omitted completely. + // +listType=set AdditionalMetricNames []string `json:"additionalMetricNames,omitempty"` // MetricStrategies defines various rules (min, max or latest) to extract metrics values. // This field is allowed to missing, experiment defaulter (webhook) will fill it. + // +listType=map + // +listMapKey=name MetricStrategies []MetricStrategy `json:"metricStrategies,omitempty"` } @@ -150,6 +157,8 @@ type Metric struct { // +k8s:deepcopy-gen=true type Observation struct { // Key-value pairs for metric names and values + // +listType=map + // +listMapKey=name Metrics []Metric `json:"metrics,omitempty"` } @@ -177,6 +186,7 @@ type SourceSpec struct { type FilterSpec struct { // When the metrics output follows format as this field specified, metricsCollector // collects it and reports to metrics server, it can be ": " or else + // +listType=set MetricsFormat []string `json:"metricsFormat,omitempty"` } diff --git a/pkg/apis/controller/experiments/v1beta1/experiment_types.go b/pkg/apis/controller/experiments/v1beta1/experiment_types.go index 2d8e1d6968b..32921590d3c 100644 --- a/pkg/apis/controller/experiments/v1beta1/experiment_types.go +++ b/pkg/apis/controller/experiments/v1beta1/experiment_types.go @@ -26,6 +26,8 @@ import ( // ExperimentSpec is the specification of an Experiment. type ExperimentSpec struct { // List of hyperparameter configurations. + // +listType=map + // +listMapKey=name Parameters []ParameterSpec `json:"parameters,omitempty"` // Describes the objective of the experiment. @@ -78,30 +80,39 @@ type ExperimentStatus struct { LastReconcileTime *metav1.Time `json:"lastReconcileTime,omitempty"` // List of observed runtime conditions for this Experiment. + // +listType=map + // +listMapKey=type Conditions []ExperimentCondition `json:"conditions,omitempty"` // Current optimal trial parameters and observations. CurrentOptimalTrial OptimalTrial `json:"currentOptimalTrial,omitempty"` // List of trial names which are running. + // +listType=set RunningTrialList []string `json:"runningTrialList,omitempty"` // List of trial names which are pending. + // +listType=set PendingTrialList []string `json:"pendingTrialList,omitempty"` // List of trial names which have already failed. + // +listType=set FailedTrialList []string `json:"failedTrialList,omitempty"` // List of trial names which have already succeeded. + // +listType=set SucceededTrialList []string `json:"succeededTrialList,omitempty"` // List of trial names which have been killed. + // +listType=set KilledTrialList []string `json:"killedTrialList,omitempty"` // List of trial names which have been early stopped. + // +listType=set EarlyStoppedTrialList []string `json:"earlyStoppedTrialList,omitempty"` // List of trial names which have been metrics unavailable + // +listType=set MetricsUnavailableTrialList []string `json:"metricsUnavailableTrialList,omitempty"` // Trials is the total number of trials owned by the experiment. @@ -134,6 +145,8 @@ type OptimalTrial struct { // BestTrialName is the name of the best trial. BestTrialName string `json:"bestTrialName,omitempty"` // Key-value pairs for hyperparameters and assignment values. + // +listType=map + // +listMapKey=name ParameterAssignments []common.ParameterAssignment `json:"parameterAssignments,omitempty"` // Observation for this trial @@ -207,8 +220,10 @@ const ( ) type FeasibleSpace struct { - Max string `json:"max,omitempty"` - Min string `json:"min,omitempty"` + Max string `json:"max,omitempty"` + Min string `json:"min,omitempty"` + + // +listType=set List []string `json:"list,omitempty"` Step string `json:"step,omitempty"` Distribution Distribution `json:"distribution,omitempty"` @@ -233,6 +248,8 @@ type TrialTemplate struct { TrialSource `json:",inline"` // List of parameters that are used in trial template + // +listType=map + // +listMapKey=name TrialParameters []TrialParameterSpec `json:"trialParameters,omitempty"` // Labels that determines if pod needs to be injected by Katib sidecar container. @@ -314,20 +331,30 @@ type ExperimentList struct { // NasConfig contains config for NAS job type NasConfig struct { GraphConfig GraphConfig `json:"graphConfig,omitempty"` - Operations []Operation `json:"operations,omitempty"` + + // +listType=map + // +listMapKey=operationType + Operations []Operation `json:"operations,omitempty"` } // GraphConfig contains a config of DAG type GraphConfig struct { - NumLayers *int32 `json:"numLayers,omitempty"` - InputSizes []int32 `json:"inputSizes,omitempty"` + NumLayers *int32 `json:"numLayers,omitempty"` + + // +listType=set + InputSizes []int32 `json:"inputSizes,omitempty"` + + // +listType=set OutputSizes []int32 `json:"outputSizes,omitempty"` } // Operation contains type of operation in DAG type Operation struct { - OperationType string `json:"operationType,omitempty"` - Parameters []ParameterSpec `json:"parameters,omitempty"` + OperationType string `json:"operationType,omitempty"` + + // +listType=map + // +listMapKey=name + Parameters []ParameterSpec `json:"parameters,omitempty"` } func init() { diff --git a/pkg/apis/controller/suggestions/v1beta1/suggestion_types.go b/pkg/apis/controller/suggestions/v1beta1/suggestion_types.go index 9c56c3f6a14..29b0e3bc067 100644 --- a/pkg/apis/controller/suggestions/v1beta1/suggestion_types.go +++ b/pkg/apis/controller/suggestions/v1beta1/suggestion_types.go @@ -46,12 +46,16 @@ type SuggestionStatus struct { // AlgorithmSettings defines HP or NAS algorithm settings which suggestion gRPC service returns. // These settings overwrites Experiment's settings before the gRPC request. // It can be empty if settings haven't been changed. + // +listType=map + // +listMapKey=name AlgorithmSettings []common.AlgorithmSetting `json:"algorithmSettings,omitempty"` // Number of suggestion results SuggestionCount int32 `json:"suggestionCount,omitempty"` // Suggestion results + // +listType=map + // +listMapKey=name Suggestions []TrialAssignment `json:"suggestions,omitempty"` // Represents time when the Suggestion was acknowledged by the Suggestion controller. @@ -70,12 +74,16 @@ type SuggestionStatus struct { LastReconcileTime *metav1.Time `json:"lastReconcileTime,omitempty"` // List of observed runtime conditions for this Suggestion. + // +listType=map + // +listMapKey=type Conditions []SuggestionCondition `json:"conditions,omitempty"` } // TrialAssignment is the assignment for one trial. type TrialAssignment struct { // Suggestion results with Trial parameters + // +listType=map + // +listMapKey=name ParameterAssignments []common.ParameterAssignment `json:"parameterAssignments,omitempty"` // Name of the suggestion @@ -83,6 +91,8 @@ type TrialAssignment struct { // Rules for early stopping techniques // Contains rule name, value and comparison type + // +listType=map + // +listMapKey=name EarlyStoppingRules []common.EarlyStoppingRule `json:"earlyStoppingRules,omitempty"` // Suggestion label metadata to attach to Trial job diff --git a/pkg/apis/controller/trials/v1beta1/trial_types.go b/pkg/apis/controller/trials/v1beta1/trial_types.go index 81c1a3a5193..bd0054166b6 100644 --- a/pkg/apis/controller/trials/v1beta1/trial_types.go +++ b/pkg/apis/controller/trials/v1beta1/trial_types.go @@ -29,10 +29,14 @@ type TrialSpec struct { Objective *common.ObjectiveSpec `json:"objective,omitempty"` // Key-value pairs for hyperparameters and assignment values. + // +listType=map + // +listMapKey=name ParameterAssignments []common.ParameterAssignment `json:"parameterAssignments,omitempty"` // Rules for early stopping techniques. // Each rule should be met to early stop Trial. + // +listType=map + // +listMapKey=name EarlyStoppingRules []common.EarlyStoppingRule `json:"earlyStoppingRules,omitempty"` // Raw text for the trial run spec. This can be any generic Kubernetes @@ -84,6 +88,8 @@ type TrialStatus struct { LastReconcileTime *metav1.Time `json:"lastReconcileTime,omitempty"` // List of observed runtime conditions for this Trial. + // +listType=map + // +listMapKey=type Conditions []TrialCondition `json:"conditions,omitempty"` // Results of the Trial - objectives and other metrics values. diff --git a/pkg/apis/v1beta1/swagger.json b/pkg/apis/v1beta1/swagger.json index 6bf22ab0433..bd2dfa25eab 100644 --- a/pkg/apis/v1beta1/swagger.json +++ b/pkg/apis/v1beta1/swagger.json @@ -130,7 +130,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.AlgorithmSetting" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" }, "completionTime": { "description": "Represents time when the Suggestion was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", @@ -142,7 +146,11 @@ "items": { "default": {}, "$ref": "#/definitions/.v1beta1.SuggestionCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "Type" + ], + "x-kubernetes-list-type": "map" }, "lastReconcileTime": { "description": "Represents last time when the Suggestion was reconciled. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", @@ -163,7 +171,11 @@ "items": { "default": {}, "$ref": "#/definitions/.v1beta1.TrialAssignment" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" } } }, @@ -203,7 +215,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.EarlyStoppingRule" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" }, "labels": { "description": "Suggestion label metadata to attach to Trial job", @@ -223,7 +239,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.ParameterAssignment" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" } } }, @@ -301,7 +321,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.EarlyStoppingRule" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" }, "failureCondition": { "description": "Condition when trial custom resource is failed. Condition must be in GJSON format, ref https://github.com/tidwall/gjson. For example for BatchJob: status.conditions.#(type==\"Failed\")#|#(status==\"True\")#", @@ -330,7 +354,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.ParameterAssignment" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" }, "primaryContainerName": { "description": "Name of training container where actual model training is running", @@ -372,7 +400,11 @@ "items": { "default": {}, "$ref": "#/definitions/.v1beta1.TrialCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "Type" + ], + "x-kubernetes-list-type": "map" }, "lastReconcileTime": { "description": "Represents last time when the Trial was reconciled. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", @@ -416,7 +448,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.AlgorithmSetting" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" } } }, @@ -501,7 +537,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.EarlyStoppingSetting" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" } } }, @@ -639,7 +679,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.ParameterSpec" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" }, "resumePolicy": { "description": "Describes resuming policy which usually take effect after experiment terminated. Default value is Never.", @@ -665,7 +709,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.ExperimentCondition" - } + }, + "x-kubernetes-list-map-keys": [ + "Type" + ], + "x-kubernetes-list-type": "map" }, "currentOptimalTrial": { "description": "Current optimal trial parameters and observations.", @@ -678,7 +726,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "set" }, "failedTrialList": { "description": "List of trial names which have already failed.", @@ -686,7 +735,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "set" }, "killedTrialList": { "description": "List of trial names which have been killed.", @@ -694,7 +744,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "set" }, "lastReconcileTime": { "description": "Represents last time when the Experiment was reconciled. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", @@ -706,7 +757,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "set" }, "pendingTrialList": { "description": "List of trial names which are pending.", @@ -714,7 +766,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "set" }, "runningTrialList": { "description": "List of trial names which are running.", @@ -722,7 +775,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "set" }, "startTime": { "description": "Represents time when the Experiment was acknowledged by the Experiment controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", @@ -734,7 +788,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "set" }, "trialMetricsUnavailable": { "description": "How many trials are currently metrics unavailable.", @@ -789,7 +844,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "set" }, "max": { "type": "string" @@ -825,7 +881,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "set" } } }, @@ -839,7 +896,8 @@ "type": "integer", "format": "int32", "default": 0 - } + }, + "x-kubernetes-list-type": "set" }, "numLayers": { "type": "integer", @@ -851,7 +909,8 @@ "type": "integer", "format": "int32", "default": 0 - } + }, + "x-kubernetes-list-type": "set" } } }, @@ -907,7 +966,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.Operation" - } + }, + "x-kubernetes-list-map-keys": [ + "OperationType" + ], + "x-kubernetes-list-type": "map" } } }, @@ -921,7 +984,8 @@ "items": { "type": "string", "default": "" - } + }, + "x-kubernetes-list-type": "set" }, "goal": { "description": "Goal is the Experiment's objective goal that should be reached. In case of empty goal, Experiment is running until MaxTrialCount = TrialsSucceeded.", @@ -934,7 +998,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.MetricStrategy" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" }, "objectiveMetricName": { "description": "ObjectiveMetricName represents primary Experiment's metric to optimize.", @@ -955,7 +1023,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.Metric" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" } } }, @@ -971,7 +1043,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.ParameterSpec" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" } } }, @@ -994,7 +1070,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.ParameterAssignment" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" } } }, @@ -1111,7 +1191,11 @@ "items": { "default": {}, "$ref": "#/definitions/v1beta1.TrialParameterSpec" - } + }, + "x-kubernetes-list-map-keys": [ + "Name" + ], + "x-kubernetes-list-type": "map" }, "trialSpec": { "description": "TrialSpec represents trial template in unstructured format", diff --git a/pkg/apis/v1beta1/zz_generated.openapi.go b/pkg/apis/v1beta1/zz_generated.openapi.go index 986c37d3ed6..57d147b29db 100644 --- a/pkg/apis/v1beta1/zz_generated.openapi.go +++ b/pkg/apis/v1beta1/zz_generated.openapi.go @@ -114,6 +114,14 @@ func schema_apis_controller_common_v1beta1_AlgorithmSpec(ref common.ReferenceCal }, }, "algorithmSettings": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "Key-value pairs representing settings for suggestion algorithms.", Type: []string{"array"}, @@ -244,6 +252,14 @@ func schema_apis_controller_common_v1beta1_EarlyStoppingSpec(ref common.Referenc }, }, "algorithmSettings": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "Key-value pairs representing settings for early stopping algorithm.", Type: []string{"array"}, @@ -302,6 +318,11 @@ func schema_apis_controller_common_v1beta1_FilterSpec(ref common.ReferenceCallba Type: []string{"object"}, Properties: map[string]spec.Schema{ "metricsFormat": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ Description: "When the metrics output follows format as this field specified, metricsCollector collects it and reports to metrics server, it can be \": \" or else", Type: []string{"array"}, @@ -435,6 +456,11 @@ func schema_apis_controller_common_v1beta1_ObjectiveSpec(ref common.ReferenceCal }, }, "additionalMetricNames": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ Description: "AdditionalMetricNames represents metrics that should be collected from Trials. This can be empty if we only care about the objective metric. Note: If we adopt a push instead of pull mechanism, this can be omitted completely.", Type: []string{"array"}, @@ -450,6 +476,14 @@ func schema_apis_controller_common_v1beta1_ObjectiveSpec(ref common.ReferenceCal }, }, "metricStrategies": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "MetricStrategies defines various rules (min, max or latest) to extract metrics values. This field is allowed to missing, experiment defaulter (webhook) will fill it.", Type: []string{"array"}, @@ -478,6 +512,14 @@ func schema_apis_controller_common_v1beta1_Observation(ref common.ReferenceCallb Type: []string{"object"}, Properties: map[string]spec.Schema{ "metrics": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "Key-value pairs for metric names and values", Type: []string{"array"}, @@ -751,6 +793,14 @@ func schema_apis_controller_experiments_v1beta1_ExperimentSpec(ref common.Refere Type: []string{"object"}, Properties: map[string]spec.Schema{ "parameters": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "List of hyperparameter configurations.", Type: []string{"array"}, @@ -861,6 +911,14 @@ func schema_apis_controller_experiments_v1beta1_ExperimentStatus(ref common.Refe }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "List of observed runtime conditions for this Experiment.", Type: []string{"array"}, @@ -882,6 +940,11 @@ func schema_apis_controller_experiments_v1beta1_ExperimentStatus(ref common.Refe }, }, "runningTrialList": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ Description: "List of trial names which are running.", Type: []string{"array"}, @@ -897,6 +960,11 @@ func schema_apis_controller_experiments_v1beta1_ExperimentStatus(ref common.Refe }, }, "pendingTrialList": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ Description: "List of trial names which are pending.", Type: []string{"array"}, @@ -912,6 +980,11 @@ func schema_apis_controller_experiments_v1beta1_ExperimentStatus(ref common.Refe }, }, "failedTrialList": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ Description: "List of trial names which have already failed.", Type: []string{"array"}, @@ -927,6 +1000,11 @@ func schema_apis_controller_experiments_v1beta1_ExperimentStatus(ref common.Refe }, }, "succeededTrialList": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ Description: "List of trial names which have already succeeded.", Type: []string{"array"}, @@ -942,6 +1020,11 @@ func schema_apis_controller_experiments_v1beta1_ExperimentStatus(ref common.Refe }, }, "killedTrialList": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ Description: "List of trial names which have been killed.", Type: []string{"array"}, @@ -957,6 +1040,11 @@ func schema_apis_controller_experiments_v1beta1_ExperimentStatus(ref common.Refe }, }, "earlyStoppedTrialList": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ Description: "List of trial names which have been early stopped.", Type: []string{"array"}, @@ -972,6 +1060,11 @@ func schema_apis_controller_experiments_v1beta1_ExperimentStatus(ref common.Refe }, }, "metricsUnavailableTrialList": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ Description: "List of trial names which have been metrics unavailable", Type: []string{"array"}, @@ -1069,6 +1162,11 @@ func schema_apis_controller_experiments_v1beta1_FeasibleSpace(ref common.Referen }, }, "list": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ Type: []string{"array"}, Items: &spec.SchemaOrArray{ @@ -1114,6 +1212,11 @@ func schema_apis_controller_experiments_v1beta1_GraphConfig(ref common.Reference }, }, "inputSizes": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ Type: []string{"array"}, Items: &spec.SchemaOrArray{ @@ -1128,6 +1231,11 @@ func schema_apis_controller_experiments_v1beta1_GraphConfig(ref common.Reference }, }, "outputSizes": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ Type: []string{"array"}, Items: &spec.SchemaOrArray{ @@ -1161,6 +1269,14 @@ func schema_apis_controller_experiments_v1beta1_NasConfig(ref common.ReferenceCa }, }, "operations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "OperationType", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Type: []string{"array"}, Items: &spec.SchemaOrArray{ @@ -1195,6 +1311,14 @@ func schema_apis_controller_experiments_v1beta1_Operation(ref common.ReferenceCa }, }, "parameters": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Type: []string{"array"}, Items: &spec.SchemaOrArray{ @@ -1230,6 +1354,14 @@ func schema_apis_controller_experiments_v1beta1_OptimalTrial(ref common.Referenc }, }, "parameterAssignments": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "Key-value pairs for hyperparameters and assignment values.", Type: []string{"array"}, @@ -1378,6 +1510,14 @@ func schema_apis_controller_experiments_v1beta1_TrialTemplate(ref common.Referen }, }, "trialParameters": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "List of parameters that are used in trial template", Type: []string{"array"}, @@ -1639,6 +1779,14 @@ func schema_apis_controller_suggestions_v1beta1_SuggestionStatus(ref common.Refe Type: []string{"object"}, Properties: map[string]spec.Schema{ "algorithmSettings": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "AlgorithmSettings defines HP or NAS algorithm settings which suggestion gRPC service returns. These settings overwrites Experiment's settings before the gRPC request. It can be empty if settings haven't been changed.", Type: []string{"array"}, @@ -1660,6 +1808,14 @@ func schema_apis_controller_suggestions_v1beta1_SuggestionStatus(ref common.Refe }, }, "suggestions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "Suggestion results", Type: []string{"array"}, @@ -1692,6 +1848,14 @@ func schema_apis_controller_suggestions_v1beta1_SuggestionStatus(ref common.Refe }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "List of observed runtime conditions for this Suggestion.", Type: []string{"array"}, @@ -1721,6 +1885,14 @@ func schema_apis_controller_suggestions_v1beta1_TrialAssignment(ref common.Refer Type: []string{"object"}, Properties: map[string]spec.Schema{ "parameterAssignments": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "Suggestion results with Trial parameters", Type: []string{"array"}, @@ -1742,6 +1914,14 @@ func schema_apis_controller_suggestions_v1beta1_TrialAssignment(ref common.Refer }, }, "earlyStoppingRules": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "Rules for early stopping techniques Contains rule name, value and comparison type", Type: []string{"array"}, @@ -1947,6 +2127,14 @@ func schema_apis_controller_trials_v1beta1_TrialSpec(ref common.ReferenceCallbac }, }, "parameterAssignments": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "Key-value pairs for hyperparameters and assignment values.", Type: []string{"array"}, @@ -1961,6 +2149,14 @@ func schema_apis_controller_trials_v1beta1_TrialSpec(ref common.ReferenceCallbac }, }, "earlyStoppingRules": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Name", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "Rules for early stopping techniques. Each rule should be met to early stop Trial.", Type: []string{"array"}, @@ -2081,6 +2277,14 @@ func schema_apis_controller_trials_v1beta1_TrialStatus(ref common.ReferenceCallb }, }, "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "Type", + }, + "x-kubernetes-list-type": "map", + }, + }, SchemaProps: spec.SchemaProps{ Description: "List of observed runtime conditions for this Trial.", Type: []string{"array"},