@@ -37,7 +37,7 @@ import (
37
37
38
38
var _ = SIGDescribe ("CustomResourceDefinition resources [Privileged:ClusterAdmin]" , func () {
39
39
40
- framework .NewDefaultFramework ("custom-resource-definition" )
40
+ f := framework .NewDefaultFramework ("custom-resource-definition" )
41
41
42
42
ginkgo .Context ("Simple CustomResourceDefinition" , func () {
43
43
/*
@@ -181,6 +181,77 @@ var _ = SIGDescribe("CustomResourceDefinition resources [Privileged:ClusterAdmin
181
181
expectCondition (patched .Status .Conditions , patchCondition )
182
182
})
183
183
})
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
+
184
255
})
185
256
186
257
func unstructuredToCRD (obj * unstructured.Unstructured ) * v1.CustomResourceDefinition {
0 commit comments