Merge pull request #123873 from jiahuif-forks/tests/validating-admission-policy/typechecking-manual-retry

ValidatingAdmissionPolicy: retry policy creation for CRD type checking E2E test
This commit is contained in:
Kubernetes Prow Robot 2024-03-12 14:38:18 -07:00 committed by GitHub
commit 2e528db812
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 15 deletions

View File

@ -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]'

View File

@ -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"
@ -130,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").
@ -280,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
@ -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