From dc2974c64619667c4bbec1ad72bc87bc4f68ffaf Mon Sep 17 00:00:00 2001 From: Jiahui Feng Date: Mon, 11 Mar 2024 14:35:28 -0700 Subject: [PATCH 1/3] retry policy creation for CRD type checking E2E test --- test/e2e/apimachinery/validatingadmissionpolicy.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/e2e/apimachinery/validatingadmissionpolicy.go b/test/e2e/apimachinery/validatingadmissionpolicy.go index b3b051b319f..d49af0da437 100644 --- a/test/e2e/apimachinery/validatingadmissionpolicy.go +++ b/test/e2e/apimachinery/validatingadmissionpolicy.go @@ -18,6 +18,8 @@ package apimachinery import ( "context" + "fmt" + "math/rand/v2" "time" "github.com/onsi/ginkgo/v2" @@ -32,6 +34,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/wait" + applyadmissionregistrationv1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/openapi3" "k8s.io/kubernetes/test/e2e/framework" @@ -356,6 +359,16 @@ var _ = SIGDescribe("ValidatingAdmissionPolicy [Privileged:ClusterAdmin]", func( return false, err } if policy.Status.TypeChecking != nil { + // TODO(#123829) Remove once the schema watcher is merged. + // If the warnings are empty, touch the policy to retry type checking + if len(policy.Status.TypeChecking.ExpressionWarnings) == 0 { + applyConfig := applyadmissionregistrationv1.ValidatingAdmissionPolicy(policy.Name).WithLabels(map[string]string{ + "touched": time.Now().String(), + "random": fmt.Sprintf("%d", rand.Int()), + }) + _, err := client.AdmissionregistrationV1().ValidatingAdmissionPolicies().Apply(ctx, applyConfig, metav1.ApplyOptions{}) + return false, err + } return true, nil } return false, nil From 2c2d424b012666148dd7cde7f95c87563a39d507 Mon Sep 17 00:00:00 2001 From: Jiahui Feng Date: Tue, 12 Mar 2024 11:15:30 -0700 Subject: [PATCH 2/3] make type checking tests non-conformance. --- test/e2e/apimachinery/validatingadmissionpolicy.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/e2e/apimachinery/validatingadmissionpolicy.go b/test/e2e/apimachinery/validatingadmissionpolicy.go index d49af0da437..0897003f85b 100644 --- a/test/e2e/apimachinery/validatingadmissionpolicy.go +++ b/test/e2e/apimachinery/validatingadmissionpolicy.go @@ -133,7 +133,7 @@ var _ = SIGDescribe("ValidatingAdmissionPolicy [Privileged:ClusterAdmin]", func( Description: The ValidatingAdmissionPolicy should type check the expressions defined inside policy. */ - framework.ConformanceIt("should type check validation expressions", func(ctx context.Context) { + framework.It("should type check validation expressions", func(ctx context.Context) { var policy *admissionregistrationv1.ValidatingAdmissionPolicy ginkgo.By("creating the policy with correct types", func() { policy = newValidatingAdmissionPolicyBuilder(f.UniqueName+".correct-policy.example.com"). @@ -283,7 +283,7 @@ var _ = SIGDescribe("ValidatingAdmissionPolicy [Privileged:ClusterAdmin]", func( Description: The ValidatingAdmissionPolicy should type check a CRD. */ - framework.ConformanceIt("should type check a CRD", func(ctx context.Context) { + framework.It("should type check a CRD", func(ctx context.Context) { crd := crontabExampleCRD() crd.Spec.Group = "stable." + f.UniqueName crd.Name = crd.Spec.Names.Plural + "." + crd.Spec.Group From 4f6212fb0e6587b7c2f71114a513bc88ae3e712a Mon Sep 17 00:00:00 2001 From: Jiahui Feng Date: Tue, 12 Mar 2024 13:35:50 -0700 Subject: [PATCH 3/3] generated: ./hack/update-conformance-yaml.sh --- test/conformance/testdata/conformance.yaml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/test/conformance/testdata/conformance.yaml b/test/conformance/testdata/conformance.yaml index 72c657ea16b..e9b9a6f4ac7 100755 --- a/test/conformance/testdata/conformance.yaml +++ b/test/conformance/testdata/conformance.yaml @@ -784,19 +784,6 @@ description: ' The ValidatingAdmissionPolicy should allow expressions to refer variables.' release: v1.30 file: test/e2e/apimachinery/validatingadmissionpolicy.go -- testname: ValidatingAdmissionPolicy - codename: '[sig-api-machinery] ValidatingAdmissionPolicy [Privileged:ClusterAdmin] - should type check a CRD [Conformance]' - description: ' The ValidatingAdmissionPolicy should type check a CRD.' - release: v1.30 - file: test/e2e/apimachinery/validatingadmissionpolicy.go -- testname: ValidatingAdmissionPolicy - codename: '[sig-api-machinery] ValidatingAdmissionPolicy [Privileged:ClusterAdmin] - should type check validation expressions [Conformance]' - description: ' The ValidatingAdmissionPolicy should type check the expressions defined - inside policy.' - release: v1.30 - file: test/e2e/apimachinery/validatingadmissionpolicy.go - testname: ValidatingAdmissionPolicy codename: '[sig-api-machinery] ValidatingAdmissionPolicy [Privileged:ClusterAdmin] should validate against a Deployment [Conformance]'