...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package k8s
16
17 import (
18 "fmt"
19
20 apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
21 )
22
23 func GetAPIVersionFromCRD(crd *apiextensions.CustomResourceDefinition) string {
24 panicIfNoVersionPresent(crd)
25
26 return fmt.Sprintf("%v/%v", crd.Spec.Group, crd.Spec.Versions[0].Name)
27 }
28
29 func GetVersionFromCRD(crd *apiextensions.CustomResourceDefinition) string {
30 panicIfNoVersionPresent(crd)
31
32 return crd.Spec.Versions[0].Name
33 }
34
35 func GetOpenAPIV3SchemaFromCRD(crd *apiextensions.CustomResourceDefinition) *apiextensions.JSONSchemaProps {
36 panicIfNoVersionPresent(crd)
37
38 return crd.Spec.Versions[0].Schema.OpenAPIV3Schema
39 }
40
41 func panicIfNoVersionPresent(crd *apiextensions.CustomResourceDefinition) {
42 if len(crd.Spec.Versions) == 0 {
43 panic(fmt.Sprintf("no versions present in CRD %v\n", crd.GetName()))
44 }
45 }
46
View as plain text