Skip to content

Commit ad33ba5

Browse files
committed
Add discovery docs crd e2e test
1 parent e176e47 commit ad33ba5

File tree

1 file changed

+72
-1
lines changed

1 file changed

+72
-1
lines changed

test/e2e/apimachinery/custom_resource_definition.go

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import (
3737

3838
var _ = SIGDescribe("CustomResourceDefinition resources [Privileged:ClusterAdmin]", func() {
3939

40-
framework.NewDefaultFramework("custom-resource-definition")
40+
f := framework.NewDefaultFramework("custom-resource-definition")
4141

4242
ginkgo.Context("Simple CustomResourceDefinition", func() {
4343
/*
@@ -181,6 +181,77 @@ var _ = SIGDescribe("CustomResourceDefinition resources [Privileged:ClusterAdmin
181181
expectCondition(patched.Status.Conditions, patchCondition)
182182
})
183183
})
184+
185+
/*
186+
Release: v1.16
187+
Testname: Custom Resource Definition, discovery
188+
Description: Fetch /apis, /apis/apiextensions.k8s.io, and /apis/apiextensions.k8s.io/v1 discovery documents,
189+
and ensure they indicate CustomResourceDefinition apiextensions.k8s.io/v1 resources are available.
190+
*/
191+
ginkgo.It("should include custom resource definition resources in discovery documents", func() {
192+
{
193+
ginkgo.By("fetching the /apis discovery document")
194+
apiGroupList := &metav1.APIGroupList{}
195+
err := f.ClientSet.Discovery().RESTClient().Get().AbsPath("/apis").Do().Into(apiGroupList)
196+
framework.ExpectNoError(err, "fetching /apis")
197+
198+
ginkgo.By("finding the apiextensions.k8s.io API group in the /apis discovery document")
199+
var group *metav1.APIGroup
200+
for _, g := range apiGroupList.Groups {
201+
if g.Name == v1.GroupName {
202+
group = &g
203+
break
204+
}
205+
}
206+
framework.ExpectNotEqual(group, nil, "apiextensions.k8s.io API group not found in /apis discovery document")
207+
208+
ginkgo.By("finding the apiextensions.k8s.io/v1 API group/version in the /apis discovery document")
209+
var version *metav1.GroupVersionForDiscovery
210+
for _, v := range group.Versions {
211+
if v.Version == v1.SchemeGroupVersion.Version {
212+
version = &v
213+
break
214+
}
215+
}
216+
framework.ExpectNotEqual(version, nil, "apiextensions.k8s.io/v1 API group version not found in /apis discovery document")
217+
}
218+
219+
{
220+
ginkgo.By("fetching the /apis/apiextensions.k8s.io discovery document")
221+
group := &metav1.APIGroup{}
222+
err := f.ClientSet.Discovery().RESTClient().Get().AbsPath("/apis/apiextensions.k8s.io").Do().Into(group)
223+
framework.ExpectNoError(err, "fetching /apis/apiextensions.k8s.io")
224+
framework.ExpectEqual(group.Name, v1.GroupName, "verifying API group name in /apis/apiextensions.k8s.io discovery document")
225+
226+
ginkgo.By("finding the apiextensions.k8s.io/v1 API group/version in the /apis/apiextensions.k8s.io discovery document")
227+
var version *metav1.GroupVersionForDiscovery
228+
for _, v := range group.Versions {
229+
if v.Version == v1.SchemeGroupVersion.Version {
230+
version = &v
231+
break
232+
}
233+
}
234+
framework.ExpectNotEqual(version, nil, "apiextensions.k8s.io/v1 API group version not found in /apis/apiextensions.k8s.io discovery document")
235+
}
236+
237+
{
238+
ginkgo.By("fetching the /apis/apiextensions.k8s.io/v1 discovery document")
239+
apiResourceList := &metav1.APIResourceList{}
240+
err := f.ClientSet.Discovery().RESTClient().Get().AbsPath("/apis/apiextensions.k8s.io/v1").Do().Into(apiResourceList)
241+
framework.ExpectNoError(err, "fetching /apis/apiextensions.k8s.io/v1")
242+
framework.ExpectEqual(apiResourceList.GroupVersion, v1.SchemeGroupVersion.String(), "verifying API group/version in /apis/apiextensions.k8s.io/v1 discovery document")
243+
244+
ginkgo.By("finding customresourcedefinitions resources in the /apis/apiextensions.k8s.io/v1 discovery document")
245+
var crdResource *metav1.APIResource
246+
for i := range apiResourceList.APIResources {
247+
if apiResourceList.APIResources[i].Name == "customresourcedefinitions" {
248+
crdResource = &apiResourceList.APIResources[i]
249+
}
250+
}
251+
framework.ExpectNotEqual(crdResource, nil, "customresourcedefinitions resource not found in /apis/apiextensions.k8s.io/v1 discovery document")
252+
}
253+
})
254+
184255
})
185256

186257
func unstructuredToCRD(obj *unstructured.Unstructured) *v1.CustomResourceDefinition {

0 commit comments

Comments
 (0)