mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-11 21:12:07 +00:00
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:
commit
2e528db812
13
test/conformance/testdata/conformance.yaml
vendored
13
test/conformance/testdata/conformance.yaml
vendored
@ -784,19 +784,6 @@
|
|||||||
description: ' The ValidatingAdmissionPolicy should allow expressions to refer variables.'
|
description: ' The ValidatingAdmissionPolicy should allow expressions to refer variables.'
|
||||||
release: v1.30
|
release: v1.30
|
||||||
file: test/e2e/apimachinery/validatingadmissionpolicy.go
|
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
|
- testname: ValidatingAdmissionPolicy
|
||||||
codename: '[sig-api-machinery] ValidatingAdmissionPolicy [Privileged:ClusterAdmin]
|
codename: '[sig-api-machinery] ValidatingAdmissionPolicy [Privileged:ClusterAdmin]
|
||||||
should validate against a Deployment [Conformance]'
|
should validate against a Deployment [Conformance]'
|
||||||
|
@ -18,6 +18,8 @@ package apimachinery
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"math/rand/v2"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/onsi/ginkgo/v2"
|
"github.com/onsi/ginkgo/v2"
|
||||||
@ -32,6 +34,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
|
applyadmissionregistrationv1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/client-go/openapi3"
|
"k8s.io/client-go/openapi3"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
@ -130,7 +133,7 @@ var _ = SIGDescribe("ValidatingAdmissionPolicy [Privileged:ClusterAdmin]", func(
|
|||||||
Description:
|
Description:
|
||||||
The ValidatingAdmissionPolicy should type check the expressions defined inside policy.
|
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
|
var policy *admissionregistrationv1.ValidatingAdmissionPolicy
|
||||||
ginkgo.By("creating the policy with correct types", func() {
|
ginkgo.By("creating the policy with correct types", func() {
|
||||||
policy = newValidatingAdmissionPolicyBuilder(f.UniqueName+".correct-policy.example.com").
|
policy = newValidatingAdmissionPolicyBuilder(f.UniqueName+".correct-policy.example.com").
|
||||||
@ -280,7 +283,7 @@ var _ = SIGDescribe("ValidatingAdmissionPolicy [Privileged:ClusterAdmin]", func(
|
|||||||
Description:
|
Description:
|
||||||
The ValidatingAdmissionPolicy should type check a CRD.
|
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 := crontabExampleCRD()
|
||||||
crd.Spec.Group = "stable." + f.UniqueName
|
crd.Spec.Group = "stable." + f.UniqueName
|
||||||
crd.Name = crd.Spec.Names.Plural + "." + crd.Spec.Group
|
crd.Name = crd.Spec.Names.Plural + "." + crd.Spec.Group
|
||||||
@ -356,6 +359,16 @@ var _ = SIGDescribe("ValidatingAdmissionPolicy [Privileged:ClusterAdmin]", func(
|
|||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
if policy.Status.TypeChecking != nil {
|
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 true, nil
|
||||||
}
|
}
|
||||||
return false, nil
|
return false, nil
|
||||||
|
Loading…
Reference in New Issue
Block a user