From dc2974c64619667c4bbec1ad72bc87bc4f68ffaf Mon Sep 17 00:00:00 2001 From: Jiahui Feng Date: Mon, 11 Mar 2024 14:35:28 -0700 Subject: [PATCH] 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