Skip to content

Commit 1c24a05

Browse files
wire network group for declarative validation and +k8s:required to IngressClassParametersReference.Name and IngressClassParametersReference.Kind (kubernetes#134909)
1 parent 758ef0f commit 1c24a05

File tree

12 files changed

+547
-13
lines changed

12 files changed

+547
-13
lines changed

pkg/api/testing/validation_test.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,17 @@ func TestVersionedValidationByFuzzing(t *testing.T) {
3838
{Group: "certificates.k8s.io", Version: "v1"},
3939
{Group: "certificates.k8s.io", Version: "v1alpha1"},
4040
{Group: "certificates.k8s.io", Version: "v1beta1"},
41+
{Group: "resource.k8s.io", Version: "v1"},
4142
{Group: "resource.k8s.io", Version: "v1beta1"},
4243
{Group: "resource.k8s.io", Version: "v1beta2"},
43-
{Group: "resource.k8s.io", Version: "v1"},
4444
{Group: "storage.k8s.io", Version: "v1"},
45-
{Group: "storage.k8s.io", Version: "v1beta1"},
4645
{Group: "storage.k8s.io", Version: "v1alpha1"},
47-
{Group: "node.k8s.io", Version: "v1beta1"},
46+
{Group: "storage.k8s.io", Version: "v1beta1"},
4847
{Group: "node.k8s.io", Version: "v1"},
4948
{Group: "node.k8s.io", Version: "v1alpha1"},
49+
{Group: "node.k8s.io", Version: "v1beta1"},
50+
{Group: "network.k8s.io", Version: "v1"},
51+
{Group: "network.k8s.io", Version: "v1beta1"},
5052
{Group: "autoscaling", Version: "v1"},
5153
{Group: "autoscaling", Version: "v1beta1"},
5254
{Group: "autoscaling", Version: "v1beta2"},
@@ -74,9 +76,6 @@ func TestVersionedValidationByFuzzing(t *testing.T) {
7476
allRules := append([]field.NormalizationRule{}, resourcevalidation.ResourceNormalizationRules...)
7577
allRules = append(allRules, nodevalidation.NodeNormalizationRules...)
7678
opts = append(opts, WithNormalizationRules(allRules...))
77-
if gv.Group == "autoscaling" {
78-
opts = append(opts, WithIgnoreObjectConversionErrors())
79-
}
8079

8180
VerifyVersionedValidationEquivalence(t, obj, nil, opts...)
8281

pkg/apis/networking/v1/doc.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,7 @@ limitations under the License.
2020
// +k8s:defaulter-gen=TypeMeta
2121
// +k8s:defaulter-gen-input=k8s.io/api/networking/v1
2222
// +groupName=networking.k8s.io
23+
// +k8s:validation-gen=TypeMeta
24+
// +k8s:validation-gen-input=k8s.io/api/networking/v1
2325

2426
package v1

pkg/apis/networking/v1/zz_generated.validations.go

Lines changed: 150 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/apis/networking/v1beta1/doc.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,7 @@ limitations under the License.
2020
// +k8s:defaulter-gen=TypeMeta
2121
// +k8s:defaulter-gen-input=k8s.io/api/networking/v1beta1
2222
// +groupName=networking.k8s.io
23+
// +k8s:validation-gen=TypeMeta
24+
// +k8s:validation-gen-input=k8s.io/api/networking/v1beta1
2325

2426
package v1beta1

pkg/apis/networking/v1beta1/zz_generated.validations.go

Lines changed: 150 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/apis/networking/validation/validation.go

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -632,11 +632,27 @@ func validateIngressClassParametersReference(params *networking.IngressClassPara
632632
return allErrs
633633
}
634634

635-
allErrs = append(allErrs, validateIngressTypedLocalObjectReference(&api.TypedLocalObjectReference{
636-
APIGroup: params.APIGroup,
637-
Kind: params.Kind,
638-
Name: params.Name,
639-
}, fldPath)...)
635+
if params.APIGroup != nil {
636+
for _, msg := range validation.IsDNS1123Subdomain(*params.APIGroup) {
637+
allErrs = append(allErrs, field.Invalid(fldPath.Child("apiGroup"), *params.APIGroup, msg))
638+
}
639+
}
640+
641+
if params.Kind == "" {
642+
allErrs = append(allErrs, field.Required(fldPath.Child("kind"), "")).MarkCoveredByDeclarative()
643+
} else {
644+
for _, msg := range pathvalidation.IsValidPathSegmentName(params.Kind) {
645+
allErrs = append(allErrs, field.Invalid(fldPath.Child("kind"), params.Kind, msg))
646+
}
647+
}
648+
649+
if params.Name == "" {
650+
allErrs = append(allErrs, field.Required(fldPath.Child("name"), "")).MarkCoveredByDeclarative()
651+
} else {
652+
for _, msg := range pathvalidation.IsValidPathSegmentName(params.Name) {
653+
allErrs = append(allErrs, field.Invalid(fldPath.Child("name"), params.Name, msg))
654+
}
655+
}
640656

641657
if params.Scope == nil {
642658
allErrs = append(allErrs, field.Required(fldPath.Child("scope"), ""))

0 commit comments

Comments
 (0)