add resource enablement check for e2e tests of beta APIs

This commit is contained in:
David Eads
2022-03-01 11:51:16 -05:00
parent 25ccc48c60
commit 8ab8d05cc4
2 changed files with 50 additions and 0 deletions

View File

@@ -21,8 +21,10 @@ import (
"strings"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
utilversion "k8s.io/apimachinery/pkg/util/version"
"k8s.io/apiserver/pkg/endpoints/discovery"
clientdiscovery "k8s.io/client-go/discovery"
"k8s.io/kubernetes/test/e2e/framework"
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
"k8s.io/kubernetes/test/utils/crd"
@@ -45,6 +47,33 @@ var _ = SIGDescribe("Discovery", func() {
setupServerCert(namespaceName, serviceName)
})
ginkgo.It("should accurately determine present and missing resources", func() {
// checks that legacy api group resources function
ok, err := clientdiscovery.IsResourceEnabled(f.ClientSet.Discovery(), schema.GroupVersionResource{Group: "", Version: "v1", Resource: "namespaces"})
framework.ExpectNoError(err)
if !ok {
framework.Failf("namespace.v1 should always be present")
}
// checks that non-legacy api group resources function
ok, err = clientdiscovery.IsResourceEnabled(f.ClientSet.Discovery(), schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "deployments"})
framework.ExpectNoError(err)
if !ok {
framework.Failf("deployments.v1.apps should always be present")
}
// checks that nonsense resources in existing api groups function
ok, err = clientdiscovery.IsResourceEnabled(f.ClientSet.Discovery(), schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "please-dont-ever-create-this"})
framework.ExpectNoError(err)
if ok {
framework.Failf("please-dont-ever-create-this.v1.apps should never be present")
}
// checks that resources resources in nonsense api groups function
ok, err = clientdiscovery.IsResourceEnabled(f.ClientSet.Discovery(), schema.GroupVersionResource{Group: "not-these-apps", Version: "v1", Resource: "deployments"})
framework.ExpectNoError(err)
if ok {
framework.Failf("deployments.v1.not-these-apps should never be present")
}
})
ginkgo.It("Custom resource should have storage version hash", func() {
testcrd, err := crd.CreateTestCRD(f)
if err != nil {