updated vendor
This commit is contained in:
+9
-2
@@ -428,6 +428,8 @@ message HTTPIngressRuleValue {
|
||||
message IPBlock {
|
||||
// CIDR is a string representing the IP Block
|
||||
// Valid examples are "192.168.1.0/24" or "2001:db8::/64"
|
||||
// +required
|
||||
// +k8s:alpha(since: "1.36")=+k8s:required
|
||||
optional string cidr = 1;
|
||||
|
||||
// Except is a slice of CIDRs that should not be included within an IP Block
|
||||
@@ -686,6 +688,7 @@ message NetworkPolicyEgressRule {
|
||||
// allows traffic only if the traffic matches at least one item in the to list.
|
||||
// +optional
|
||||
// +listType=atomic
|
||||
// +k8s:alpha(since: "1.36")=+k8s:optional
|
||||
repeated NetworkPolicyPeer to = 2;
|
||||
}
|
||||
|
||||
@@ -708,6 +711,7 @@ message NetworkPolicyIngressRule {
|
||||
// traffic matches at least one item in the from list.
|
||||
// +optional
|
||||
// +listType=atomic
|
||||
// +k8s:alpha(since: "1.36")=+k8s:optional
|
||||
repeated NetworkPolicyPeer from = 2;
|
||||
}
|
||||
|
||||
@@ -746,6 +750,7 @@ message NetworkPolicyPeer {
|
||||
// IPBlock defines policy on a particular IPBlock. If this field is set then
|
||||
// neither of the other fields can be.
|
||||
// +optional
|
||||
// +k8s:alpha(since: "1.36")=+k8s:optional
|
||||
optional IPBlock ipBlock = 3;
|
||||
}
|
||||
|
||||
@@ -789,6 +794,7 @@ message NetworkPolicySpec {
|
||||
// (and serves solely to ensure that the pods it selects are isolated by default).
|
||||
// +optional
|
||||
// +listType=atomic
|
||||
// +k8s:alpha(since: "1.36")=+k8s:optional
|
||||
repeated NetworkPolicyIngressRule ingress = 2;
|
||||
|
||||
// List of egress rules to be applied to the selected pods. Outgoing traffic is
|
||||
@@ -800,6 +806,7 @@ message NetworkPolicySpec {
|
||||
// This field is beta-level in 1.8
|
||||
// +optional
|
||||
// +listType=atomic
|
||||
// +k8s:alpha(since: "1.36")=+k8s:optional
|
||||
repeated NetworkPolicyEgressRule egress = 3;
|
||||
|
||||
// List of rule types that the NetworkPolicy relates to.
|
||||
@@ -1039,9 +1046,9 @@ message Scale {
|
||||
message ScaleSpec {
|
||||
// desired number of instances for the scaled object.
|
||||
// +optional
|
||||
// +k8s:optional
|
||||
// +k8s:alpha(since: "1.36")=+k8s:optional
|
||||
// +default=0
|
||||
// +k8s:minimum=0
|
||||
// +k8s:alpha(since: "1.36")=+k8s:minimum=0
|
||||
optional int32 replicas = 1;
|
||||
}
|
||||
|
||||
|
||||
-112
@@ -1,112 +0,0 @@
|
||||
//go:build kubernetes_protomessage_one_more_release
|
||||
// +build kubernetes_protomessage_one_more_release
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes 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 go-to-protobuf. DO NOT EDIT.
|
||||
|
||||
package v1beta1
|
||||
|
||||
func (*DaemonSet) ProtoMessage() {}
|
||||
|
||||
func (*DaemonSetCondition) ProtoMessage() {}
|
||||
|
||||
func (*DaemonSetList) ProtoMessage() {}
|
||||
|
||||
func (*DaemonSetSpec) ProtoMessage() {}
|
||||
|
||||
func (*DaemonSetStatus) ProtoMessage() {}
|
||||
|
||||
func (*DaemonSetUpdateStrategy) ProtoMessage() {}
|
||||
|
||||
func (*Deployment) ProtoMessage() {}
|
||||
|
||||
func (*DeploymentCondition) ProtoMessage() {}
|
||||
|
||||
func (*DeploymentList) ProtoMessage() {}
|
||||
|
||||
func (*DeploymentRollback) ProtoMessage() {}
|
||||
|
||||
func (*DeploymentSpec) ProtoMessage() {}
|
||||
|
||||
func (*DeploymentStatus) ProtoMessage() {}
|
||||
|
||||
func (*DeploymentStrategy) ProtoMessage() {}
|
||||
|
||||
func (*HTTPIngressPath) ProtoMessage() {}
|
||||
|
||||
func (*HTTPIngressRuleValue) ProtoMessage() {}
|
||||
|
||||
func (*IPBlock) ProtoMessage() {}
|
||||
|
||||
func (*Ingress) ProtoMessage() {}
|
||||
|
||||
func (*IngressBackend) ProtoMessage() {}
|
||||
|
||||
func (*IngressList) ProtoMessage() {}
|
||||
|
||||
func (*IngressLoadBalancerIngress) ProtoMessage() {}
|
||||
|
||||
func (*IngressLoadBalancerStatus) ProtoMessage() {}
|
||||
|
||||
func (*IngressPortStatus) ProtoMessage() {}
|
||||
|
||||
func (*IngressRule) ProtoMessage() {}
|
||||
|
||||
func (*IngressRuleValue) ProtoMessage() {}
|
||||
|
||||
func (*IngressSpec) ProtoMessage() {}
|
||||
|
||||
func (*IngressStatus) ProtoMessage() {}
|
||||
|
||||
func (*IngressTLS) ProtoMessage() {}
|
||||
|
||||
func (*NetworkPolicy) ProtoMessage() {}
|
||||
|
||||
func (*NetworkPolicyEgressRule) ProtoMessage() {}
|
||||
|
||||
func (*NetworkPolicyIngressRule) ProtoMessage() {}
|
||||
|
||||
func (*NetworkPolicyList) ProtoMessage() {}
|
||||
|
||||
func (*NetworkPolicyPeer) ProtoMessage() {}
|
||||
|
||||
func (*NetworkPolicyPort) ProtoMessage() {}
|
||||
|
||||
func (*NetworkPolicySpec) ProtoMessage() {}
|
||||
|
||||
func (*ReplicaSet) ProtoMessage() {}
|
||||
|
||||
func (*ReplicaSetCondition) ProtoMessage() {}
|
||||
|
||||
func (*ReplicaSetList) ProtoMessage() {}
|
||||
|
||||
func (*ReplicaSetSpec) ProtoMessage() {}
|
||||
|
||||
func (*ReplicaSetStatus) ProtoMessage() {}
|
||||
|
||||
func (*RollbackConfig) ProtoMessage() {}
|
||||
|
||||
func (*RollingUpdateDaemonSet) ProtoMessage() {}
|
||||
|
||||
func (*RollingUpdateDeployment) ProtoMessage() {}
|
||||
|
||||
func (*Scale) ProtoMessage() {}
|
||||
|
||||
func (*ScaleSpec) ProtoMessage() {}
|
||||
|
||||
func (*ScaleStatus) ProtoMessage() {}
|
||||
+10
-3
@@ -27,9 +27,9 @@ import (
|
||||
type ScaleSpec struct {
|
||||
// desired number of instances for the scaled object.
|
||||
// +optional
|
||||
// +k8s:optional
|
||||
// +k8s:alpha(since: "1.36")=+k8s:optional
|
||||
// +default=0
|
||||
// +k8s:minimum=0
|
||||
// +k8s:alpha(since: "1.36")=+k8s:minimum=0
|
||||
Replicas int32 `json:"replicas,omitempty" protobuf:"varint,1,opt,name=replicas"`
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ type ScaleStatus struct {
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.1
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.2
|
||||
// +k8s:prerelease-lifecycle-gen:removed=1.16
|
||||
// +k8s:isSubresource=/scale
|
||||
// +k8s:isSubresource="/scale"
|
||||
|
||||
// represents a scaling request for a resource.
|
||||
type Scale struct {
|
||||
@@ -1106,6 +1106,7 @@ type NetworkPolicySpec struct {
|
||||
// (and serves solely to ensure that the pods it selects are isolated by default).
|
||||
// +optional
|
||||
// +listType=atomic
|
||||
// +k8s:alpha(since: "1.36")=+k8s:optional
|
||||
Ingress []NetworkPolicyIngressRule `json:"ingress,omitempty" protobuf:"bytes,2,rep,name=ingress"`
|
||||
|
||||
// List of egress rules to be applied to the selected pods. Outgoing traffic is
|
||||
@@ -1117,6 +1118,7 @@ type NetworkPolicySpec struct {
|
||||
// This field is beta-level in 1.8
|
||||
// +optional
|
||||
// +listType=atomic
|
||||
// +k8s:alpha(since: "1.36")=+k8s:optional
|
||||
Egress []NetworkPolicyEgressRule `json:"egress,omitempty" protobuf:"bytes,3,rep,name=egress"`
|
||||
|
||||
// List of rule types that the NetworkPolicy relates to.
|
||||
@@ -1153,6 +1155,7 @@ type NetworkPolicyIngressRule struct {
|
||||
// traffic matches at least one item in the from list.
|
||||
// +optional
|
||||
// +listType=atomic
|
||||
// +k8s:alpha(since: "1.36")=+k8s:optional
|
||||
From []NetworkPolicyPeer `json:"from,omitempty" protobuf:"bytes,2,rep,name=from"`
|
||||
}
|
||||
|
||||
@@ -1177,6 +1180,7 @@ type NetworkPolicyEgressRule struct {
|
||||
// allows traffic only if the traffic matches at least one item in the to list.
|
||||
// +optional
|
||||
// +listType=atomic
|
||||
// +k8s:alpha(since: "1.36")=+k8s:optional
|
||||
To []NetworkPolicyPeer `json:"to,omitempty" protobuf:"bytes,2,rep,name=to"`
|
||||
}
|
||||
|
||||
@@ -1209,6 +1213,8 @@ type NetworkPolicyPort struct {
|
||||
type IPBlock struct {
|
||||
// CIDR is a string representing the IP Block
|
||||
// Valid examples are "192.168.1.0/24" or "2001:db8::/64"
|
||||
// +required
|
||||
// +k8s:alpha(since: "1.36")=+k8s:required
|
||||
CIDR string `json:"cidr" protobuf:"bytes,1,name=cidr"`
|
||||
// Except is a slice of CIDRs that should not be included within an IP Block
|
||||
// Valid examples are "192.168.1.0/24" or "2001:db8::/64"
|
||||
@@ -1241,6 +1247,7 @@ type NetworkPolicyPeer struct {
|
||||
// IPBlock defines policy on a particular IPBlock. If this field is set then
|
||||
// neither of the other fields can be.
|
||||
// +optional
|
||||
// +k8s:alpha(since: "1.36")=+k8s:optional
|
||||
IPBlock *IPBlock `json:"ipBlock,omitempty" protobuf:"bytes,3,rep,name=ipBlock"`
|
||||
}
|
||||
|
||||
|
||||
+191
-2
@@ -25,6 +25,7 @@ import (
|
||||
context "context"
|
||||
fmt "fmt"
|
||||
|
||||
equality "k8s.io/apimachinery/pkg/api/equality"
|
||||
operation "k8s.io/apimachinery/pkg/api/operation"
|
||||
safe "k8s.io/apimachinery/pkg/api/safe"
|
||||
validate "k8s.io/apimachinery/pkg/api/validate"
|
||||
@@ -37,6 +38,14 @@ func init() { localSchemeBuilder.Register(RegisterValidations) }
|
||||
// RegisterValidations adds validation functions to the given scheme.
|
||||
// Public to allow building arbitrary schemes.
|
||||
func RegisterValidations(scheme *runtime.Scheme) error {
|
||||
// type NetworkPolicy
|
||||
scheme.AddValidationFunc((*NetworkPolicy)(nil), func(ctx context.Context, op operation.Operation, obj, oldObj interface{}) field.ErrorList {
|
||||
switch op.Request.SubresourcePath() {
|
||||
case "/":
|
||||
return Validate_NetworkPolicy(ctx, op, nil /* fldPath */, obj.(*NetworkPolicy), safe.Cast[*NetworkPolicy](oldObj))
|
||||
}
|
||||
return field.ErrorList{field.InternalError(nil, fmt.Errorf("no validation found for %T, subresource: %v", obj, op.Request.SubresourcePath()))}
|
||||
})
|
||||
// type Scale
|
||||
scheme.AddValidationFunc((*Scale)(nil), func(ctx context.Context, op operation.Operation, obj, oldObj interface{}) field.ErrorList {
|
||||
switch op.Request.SubresourcePath() {
|
||||
@@ -48,6 +57,187 @@ func RegisterValidations(scheme *runtime.Scheme) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Validate_IPBlock validates an instance of IPBlock according
|
||||
// to declarative validation rules in the API schema.
|
||||
func Validate_IPBlock(ctx context.Context, op operation.Operation, fldPath *field.Path, obj, oldObj *IPBlock) (errs field.ErrorList) {
|
||||
// field IPBlock.CIDR
|
||||
errs = append(errs,
|
||||
func(fldPath *field.Path, obj, oldObj *string, oldValueCorrelated bool) (errs field.ErrorList) {
|
||||
// don't revalidate unchanged data
|
||||
if oldValueCorrelated && op.Type == operation.Update && (obj == oldObj || (obj != nil && oldObj != nil && *obj == *oldObj)) {
|
||||
return nil
|
||||
}
|
||||
// call field-attached validations
|
||||
earlyReturn := false
|
||||
if e := validate.RequiredValue(ctx, op, fldPath, obj, oldObj).MarkAlpha(); len(e) != 0 {
|
||||
errs = append(errs, e...)
|
||||
earlyReturn = true
|
||||
}
|
||||
if earlyReturn {
|
||||
return // do not proceed
|
||||
}
|
||||
return
|
||||
}(fldPath.Child("cidr"), &obj.CIDR, safe.Field(oldObj, func(oldObj *IPBlock) *string { return &oldObj.CIDR }), oldObj != nil)...)
|
||||
|
||||
// field IPBlock.Except has no validation
|
||||
return errs
|
||||
}
|
||||
|
||||
// Validate_NetworkPolicy validates an instance of NetworkPolicy according
|
||||
// to declarative validation rules in the API schema.
|
||||
func Validate_NetworkPolicy(ctx context.Context, op operation.Operation, fldPath *field.Path, obj, oldObj *NetworkPolicy) (errs field.ErrorList) {
|
||||
// field NetworkPolicy.TypeMeta has no validation
|
||||
// field NetworkPolicy.ObjectMeta has no validation
|
||||
|
||||
// field NetworkPolicy.Spec
|
||||
errs = append(errs,
|
||||
func(fldPath *field.Path, obj, oldObj *NetworkPolicySpec, oldValueCorrelated bool) (errs field.ErrorList) {
|
||||
// don't revalidate unchanged data
|
||||
if oldValueCorrelated && op.Type == operation.Update && equality.Semantic.DeepEqual(obj, oldObj) {
|
||||
return nil
|
||||
}
|
||||
// call the type's validation function
|
||||
errs = append(errs, Validate_NetworkPolicySpec(ctx, op, fldPath, obj, oldObj)...)
|
||||
return
|
||||
}(fldPath.Child("spec"), &obj.Spec, safe.Field(oldObj, func(oldObj *NetworkPolicy) *NetworkPolicySpec { return &oldObj.Spec }), oldObj != nil)...)
|
||||
|
||||
return errs
|
||||
}
|
||||
|
||||
// Validate_NetworkPolicyEgressRule validates an instance of NetworkPolicyEgressRule according
|
||||
// to declarative validation rules in the API schema.
|
||||
func Validate_NetworkPolicyEgressRule(ctx context.Context, op operation.Operation, fldPath *field.Path, obj, oldObj *NetworkPolicyEgressRule) (errs field.ErrorList) {
|
||||
// field NetworkPolicyEgressRule.Ports has no validation
|
||||
|
||||
// field NetworkPolicyEgressRule.To
|
||||
errs = append(errs,
|
||||
func(fldPath *field.Path, obj, oldObj []NetworkPolicyPeer, oldValueCorrelated bool) (errs field.ErrorList) {
|
||||
// don't revalidate unchanged data
|
||||
if oldValueCorrelated && op.Type == operation.Update && equality.Semantic.DeepEqual(obj, oldObj) {
|
||||
return nil
|
||||
}
|
||||
// call field-attached validations
|
||||
earlyReturn := false
|
||||
if e := validate.OptionalSlice(ctx, op, fldPath, obj, oldObj).MarkAlpha(); len(e) != 0 {
|
||||
earlyReturn = true
|
||||
}
|
||||
if earlyReturn {
|
||||
return // do not proceed
|
||||
}
|
||||
// iterate the list and call the type's validation function
|
||||
errs = append(errs, validate.EachSliceVal(ctx, op, fldPath, obj, oldObj, nil, nil, Validate_NetworkPolicyPeer)...)
|
||||
return
|
||||
}(fldPath.Child("to"), obj.To, safe.Field(oldObj, func(oldObj *NetworkPolicyEgressRule) []NetworkPolicyPeer { return oldObj.To }), oldObj != nil)...)
|
||||
|
||||
return errs
|
||||
}
|
||||
|
||||
// Validate_NetworkPolicyIngressRule validates an instance of NetworkPolicyIngressRule according
|
||||
// to declarative validation rules in the API schema.
|
||||
func Validate_NetworkPolicyIngressRule(ctx context.Context, op operation.Operation, fldPath *field.Path, obj, oldObj *NetworkPolicyIngressRule) (errs field.ErrorList) {
|
||||
// field NetworkPolicyIngressRule.Ports has no validation
|
||||
|
||||
// field NetworkPolicyIngressRule.From
|
||||
errs = append(errs,
|
||||
func(fldPath *field.Path, obj, oldObj []NetworkPolicyPeer, oldValueCorrelated bool) (errs field.ErrorList) {
|
||||
// don't revalidate unchanged data
|
||||
if oldValueCorrelated && op.Type == operation.Update && equality.Semantic.DeepEqual(obj, oldObj) {
|
||||
return nil
|
||||
}
|
||||
// call field-attached validations
|
||||
earlyReturn := false
|
||||
if e := validate.OptionalSlice(ctx, op, fldPath, obj, oldObj).MarkAlpha(); len(e) != 0 {
|
||||
earlyReturn = true
|
||||
}
|
||||
if earlyReturn {
|
||||
return // do not proceed
|
||||
}
|
||||
// iterate the list and call the type's validation function
|
||||
errs = append(errs, validate.EachSliceVal(ctx, op, fldPath, obj, oldObj, nil, nil, Validate_NetworkPolicyPeer)...)
|
||||
return
|
||||
}(fldPath.Child("from"), obj.From, safe.Field(oldObj, func(oldObj *NetworkPolicyIngressRule) []NetworkPolicyPeer { return oldObj.From }), oldObj != nil)...)
|
||||
|
||||
return errs
|
||||
}
|
||||
|
||||
// Validate_NetworkPolicyPeer validates an instance of NetworkPolicyPeer according
|
||||
// to declarative validation rules in the API schema.
|
||||
func Validate_NetworkPolicyPeer(ctx context.Context, op operation.Operation, fldPath *field.Path, obj, oldObj *NetworkPolicyPeer) (errs field.ErrorList) {
|
||||
// field NetworkPolicyPeer.PodSelector has no validation
|
||||
// field NetworkPolicyPeer.NamespaceSelector has no validation
|
||||
|
||||
// field NetworkPolicyPeer.IPBlock
|
||||
errs = append(errs,
|
||||
func(fldPath *field.Path, obj, oldObj *IPBlock, oldValueCorrelated bool) (errs field.ErrorList) {
|
||||
// don't revalidate unchanged data
|
||||
if oldValueCorrelated && op.Type == operation.Update && equality.Semantic.DeepEqual(obj, oldObj) {
|
||||
return nil
|
||||
}
|
||||
// call field-attached validations
|
||||
earlyReturn := false
|
||||
if e := validate.OptionalPointer(ctx, op, fldPath, obj, oldObj).MarkAlpha(); len(e) != 0 {
|
||||
earlyReturn = true
|
||||
}
|
||||
if earlyReturn {
|
||||
return // do not proceed
|
||||
}
|
||||
// call the type's validation function
|
||||
errs = append(errs, Validate_IPBlock(ctx, op, fldPath, obj, oldObj)...)
|
||||
return
|
||||
}(fldPath.Child("ipBlock"), obj.IPBlock, safe.Field(oldObj, func(oldObj *NetworkPolicyPeer) *IPBlock { return oldObj.IPBlock }), oldObj != nil)...)
|
||||
|
||||
return errs
|
||||
}
|
||||
|
||||
// Validate_NetworkPolicySpec validates an instance of NetworkPolicySpec according
|
||||
// to declarative validation rules in the API schema.
|
||||
func Validate_NetworkPolicySpec(ctx context.Context, op operation.Operation, fldPath *field.Path, obj, oldObj *NetworkPolicySpec) (errs field.ErrorList) {
|
||||
// field NetworkPolicySpec.PodSelector has no validation
|
||||
|
||||
// field NetworkPolicySpec.Ingress
|
||||
errs = append(errs,
|
||||
func(fldPath *field.Path, obj, oldObj []NetworkPolicyIngressRule, oldValueCorrelated bool) (errs field.ErrorList) {
|
||||
// don't revalidate unchanged data
|
||||
if oldValueCorrelated && op.Type == operation.Update && equality.Semantic.DeepEqual(obj, oldObj) {
|
||||
return nil
|
||||
}
|
||||
// call field-attached validations
|
||||
earlyReturn := false
|
||||
if e := validate.OptionalSlice(ctx, op, fldPath, obj, oldObj).MarkAlpha(); len(e) != 0 {
|
||||
earlyReturn = true
|
||||
}
|
||||
if earlyReturn {
|
||||
return // do not proceed
|
||||
}
|
||||
// iterate the list and call the type's validation function
|
||||
errs = append(errs, validate.EachSliceVal(ctx, op, fldPath, obj, oldObj, nil, nil, Validate_NetworkPolicyIngressRule)...)
|
||||
return
|
||||
}(fldPath.Child("ingress"), obj.Ingress, safe.Field(oldObj, func(oldObj *NetworkPolicySpec) []NetworkPolicyIngressRule { return oldObj.Ingress }), oldObj != nil)...)
|
||||
|
||||
// field NetworkPolicySpec.Egress
|
||||
errs = append(errs,
|
||||
func(fldPath *field.Path, obj, oldObj []NetworkPolicyEgressRule, oldValueCorrelated bool) (errs field.ErrorList) {
|
||||
// don't revalidate unchanged data
|
||||
if oldValueCorrelated && op.Type == operation.Update && equality.Semantic.DeepEqual(obj, oldObj) {
|
||||
return nil
|
||||
}
|
||||
// call field-attached validations
|
||||
earlyReturn := false
|
||||
if e := validate.OptionalSlice(ctx, op, fldPath, obj, oldObj).MarkAlpha(); len(e) != 0 {
|
||||
earlyReturn = true
|
||||
}
|
||||
if earlyReturn {
|
||||
return // do not proceed
|
||||
}
|
||||
// iterate the list and call the type's validation function
|
||||
errs = append(errs, validate.EachSliceVal(ctx, op, fldPath, obj, oldObj, nil, nil, Validate_NetworkPolicyEgressRule)...)
|
||||
return
|
||||
}(fldPath.Child("egress"), obj.Egress, safe.Field(oldObj, func(oldObj *NetworkPolicySpec) []NetworkPolicyEgressRule { return oldObj.Egress }), oldObj != nil)...)
|
||||
|
||||
// field NetworkPolicySpec.PolicyTypes has no validation
|
||||
return errs
|
||||
}
|
||||
|
||||
// Validate_Scale validates an instance of Scale according
|
||||
// to declarative validation rules in the API schema.
|
||||
func Validate_Scale(ctx context.Context, op operation.Operation, fldPath *field.Path, obj, oldObj *Scale) (errs field.ErrorList) {
|
||||
@@ -76,13 +266,12 @@ func Validate_ScaleSpec(ctx context.Context, op operation.Operation, fldPath *fi
|
||||
// field ScaleSpec.Replicas
|
||||
errs = append(errs,
|
||||
func(fldPath *field.Path, obj, oldObj *int32, oldValueCorrelated bool) (errs field.ErrorList) {
|
||||
// optional value-type fields with zero-value defaults are purely documentation
|
||||
// don't revalidate unchanged data
|
||||
if oldValueCorrelated && op.Type == operation.Update && (obj == oldObj || (obj != nil && oldObj != nil && *obj == *oldObj)) {
|
||||
return nil
|
||||
}
|
||||
// call field-attached validations
|
||||
errs = append(errs, validate.Minimum(ctx, op, fldPath, obj, oldObj, 0)...)
|
||||
errs = append(errs, validate.Minimum(ctx, op, fldPath, obj, oldObj, 0).MarkAlpha()...)
|
||||
return
|
||||
}(fldPath.Child("replicas"), &obj.Replicas, safe.Field(oldObj, func(oldObj *ScaleSpec) *int32 { return &oldObj.Replicas }), oldObj != nil)...)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user