mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-07-21 00:33:15 +00:00
Add union validation tags
This commit is contained in:
@@ -122,9 +122,23 @@ func Validate_PodGroup(ctx context.Context, op operation.Operation, fldPath *fie
|
||||
return errs
|
||||
}
|
||||
|
||||
var unionMembershipFor_k8s_io_api_scheduling_v1alpha1_PodGroupPolicy_ = validate.NewUnionMembership(validate.NewUnionMember("basic"), validate.NewUnionMember("gang"))
|
||||
|
||||
// Validate_PodGroupPolicy validates an instance of PodGroupPolicy according
|
||||
// to declarative validation rules in the API schema.
|
||||
func Validate_PodGroupPolicy(ctx context.Context, op operation.Operation, fldPath *field.Path, obj, oldObj *schedulingv1alpha1.PodGroupPolicy) (errs field.ErrorList) {
|
||||
errs = append(errs, validate.Union(ctx, op, fldPath, obj, oldObj, unionMembershipFor_k8s_io_api_scheduling_v1alpha1_PodGroupPolicy_, func(obj *schedulingv1alpha1.PodGroupPolicy) bool {
|
||||
if obj == nil {
|
||||
return false
|
||||
}
|
||||
return obj.Basic != nil
|
||||
}, func(obj *schedulingv1alpha1.PodGroupPolicy) bool {
|
||||
if obj == nil {
|
||||
return false
|
||||
}
|
||||
return obj.Gang != nil
|
||||
})...)
|
||||
|
||||
// field schedulingv1alpha1.PodGroupPolicy.Basic
|
||||
errs = append(errs,
|
||||
func(fldPath *field.Path, obj, oldObj *schedulingv1alpha1.BasicSchedulingPolicy, oldValueCorrelated bool) (errs field.ErrorList) {
|
||||
|
||||
@@ -70,6 +70,7 @@ message PodGroupPolicy {
|
||||
// +optional
|
||||
// +k8s:optional
|
||||
// +oneOf=PolicySelection
|
||||
// +k8s:unionMember(memberName: "PolicySelectionBasic")
|
||||
optional BasicSchedulingPolicy basic = 2;
|
||||
|
||||
// Gang specifies that the pods in this group should be scheduled using
|
||||
@@ -78,6 +79,7 @@ message PodGroupPolicy {
|
||||
// +optional
|
||||
// +k8s:optional
|
||||
// +oneOf=PolicySelection
|
||||
// +k8s:unionMember(memberName: "PolicySelectionGang")
|
||||
optional GangSchedulingPolicy gang = 3;
|
||||
}
|
||||
|
||||
|
||||
@@ -177,6 +177,14 @@ type PodGroup struct {
|
||||
Policy PodGroupPolicy `json:"policy" protobuf:"bytes,3,opt,name=policy"`
|
||||
}
|
||||
|
||||
// +k8s:unionDiscriminator
|
||||
type PolicySelection string
|
||||
|
||||
const (
|
||||
PolicySelectionBasic PolicySelection = "basic"
|
||||
PolicySelectionGang PolicySelection = "gang"
|
||||
)
|
||||
|
||||
// PodGroupPolicy defines the scheduling configuration for a PodGroup.
|
||||
type PodGroupPolicy struct {
|
||||
// Basic specifies that the pods in this group should be scheduled using
|
||||
@@ -185,6 +193,7 @@ type PodGroupPolicy struct {
|
||||
// +optional
|
||||
// +k8s:optional
|
||||
// +oneOf=PolicySelection
|
||||
// +k8s:unionMember(memberName: "PolicySelectionBasic")
|
||||
Basic *BasicSchedulingPolicy `json:"basic,omitempty" protobuf:"bytes,2,opt,name=basic"`
|
||||
|
||||
// Gang specifies that the pods in this group should be scheduled using
|
||||
@@ -193,6 +202,7 @@ type PodGroupPolicy struct {
|
||||
// +optional
|
||||
// +k8s:optional
|
||||
// +oneOf=PolicySelection
|
||||
// +k8s:unionMember(memberName: "PolicySelectionGang")
|
||||
Gang *GangSchedulingPolicy `json:"gang,omitempty" protobuf:"bytes,3,opt,name=gang"`
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user