diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index a90636d11c6..7648d793986 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -19125,7 +19125,15 @@ "description": "Gang specifies that the pods in this group should be scheduled using all-or-nothing semantics." } }, - "type": "object" + "type": "object", + "x-kubernetes-unions": [ + { + "fields-to-discriminateBy": { + "basic": "Basic", + "gang": "Gang" + } + } + ] }, "io.k8s.api.scheduling.v1alpha1.TypedLocalObjectReference": { "description": "TypedLocalObjectReference allows to reference typed object inside the same namespace.", diff --git a/api/openapi-spec/v3/apis__scheduling.k8s.io__v1alpha1_openapi.json b/api/openapi-spec/v3/apis__scheduling.k8s.io__v1alpha1_openapi.json index 897abf9c1b1..7a38f8d6559 100644 --- a/api/openapi-spec/v3/apis__scheduling.k8s.io__v1alpha1_openapi.json +++ b/api/openapi-spec/v3/apis__scheduling.k8s.io__v1alpha1_openapi.json @@ -64,7 +64,15 @@ "description": "Gang specifies that the pods in this group should be scheduled using all-or-nothing semantics." } }, - "type": "object" + "type": "object", + "x-kubernetes-unions": [ + { + "fields-to-discriminateBy": { + "basic": "Basic", + "gang": "Gang" + } + } + ] }, "io.k8s.api.scheduling.v1alpha1.TypedLocalObjectReference": { "description": "TypedLocalObjectReference allows to reference typed object inside the same namespace.", diff --git a/pkg/generated/openapi/zz_generated.openapi.go b/pkg/generated/openapi/zz_generated.openapi.go index 535aba16981..805409848bf 100644 --- a/pkg/generated/openapi/zz_generated.openapi.go +++ b/pkg/generated/openapi/zz_generated.openapi.go @@ -53351,6 +53351,18 @@ func schema_k8sio_api_scheduling_v1alpha1_PodGroupPolicy(ref common.ReferenceCal }, }, }, + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-unions": []interface{}{ + map[string]interface{}{ + "fields-to-discriminateBy": map[string]interface{}{ + "basic": "Basic", + "gang": "Gang", + }, + }, + }, + }, + }, }, Dependencies: []string{ schedulingv1alpha1.BasicSchedulingPolicy{}.OpenAPIModelName(), schedulingv1alpha1.GangSchedulingPolicy{}.OpenAPIModelName()}, diff --git a/staging/src/k8s.io/api/scheduling/v1alpha1/generated.proto b/staging/src/k8s.io/api/scheduling/v1alpha1/generated.proto index f89ebcac632..e0dc025e1b2 100644 --- a/staging/src/k8s.io/api/scheduling/v1alpha1/generated.proto +++ b/staging/src/k8s.io/api/scheduling/v1alpha1/generated.proto @@ -63,6 +63,7 @@ message PodGroup { } // PodGroupPolicy defines the scheduling configuration for a PodGroup. +// +union message PodGroupPolicy { // Basic specifies that the pods in this group should be scheduled using // standard Kubernetes scheduling behavior. diff --git a/staging/src/k8s.io/api/scheduling/v1alpha1/types.go b/staging/src/k8s.io/api/scheduling/v1alpha1/types.go index 3724c279007..ed4228a82af 100644 --- a/staging/src/k8s.io/api/scheduling/v1alpha1/types.go +++ b/staging/src/k8s.io/api/scheduling/v1alpha1/types.go @@ -181,6 +181,7 @@ type PodGroup struct { } // PodGroupPolicy defines the scheduling configuration for a PodGroup. +// +union type PodGroupPolicy struct { // Basic specifies that the pods in this group should be scheduled using // standard Kubernetes scheduling behavior. diff --git a/staging/src/k8s.io/client-go/applyconfigurations/internal/internal.go b/staging/src/k8s.io/client-go/applyconfigurations/internal/internal.go index bf4f28b9627..368e4df3a47 100644 --- a/staging/src/k8s.io/client-go/applyconfigurations/internal/internal.go +++ b/staging/src/k8s.io/client-go/applyconfigurations/internal/internal.go @@ -14363,6 +14363,12 @@ var schemaYAML = typed.YAMLObject(`types: - name: gang type: namedType: io.k8s.api.scheduling.v1alpha1.GangSchedulingPolicy + unions: + - fields: + - fieldName: basic + discriminatorValue: Basic + - fieldName: gang + discriminatorValue: Gang - name: io.k8s.api.scheduling.v1alpha1.PriorityClass map: fields: