@@ -8,11 +8,7 @@ import (
8
8
"fmt"
9
9
"sync"
10
10
11
- "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
12
- "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install"
13
11
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
14
- "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
15
- "k8s.io/apimachinery/pkg/runtime"
16
12
"k8s.io/apimachinery/pkg/util/yaml"
17
13
)
18
14
@@ -33,22 +29,15 @@ func (c crdFile) mustUnmarshal() *apiextensionsv1.CustomResourceDefinition {
33
29
panic (fmt .Errorf ("unable to read crd file %s: %s" , path , err ))
34
30
}
35
31
36
- u := & unstructured. Unstructured {}
32
+ crd := & apiextensionsv1. CustomResourceDefinition {}
37
33
reader := bytes .NewReader (data )
38
34
decoder := yaml .NewYAMLOrJSONDecoder (reader , 30 )
39
- if err = decoder .Decode (u ); err != nil {
40
- panic (fmt .Errorf ("crd unmarshaling failed: %s" , err ))
41
- }
42
-
43
- // Step through unversioned type to support v1beta1 -> v1
44
- unversioned := & apiextensions.CustomResourceDefinition {}
45
- if err = scheme .Convert (u , unversioned , nil ); err != nil {
46
- panic (fmt .Errorf ("failed to convert crd: %s\n to v1: %s" , u , err ))
35
+ if err = decoder .Decode (crd ); err != nil {
36
+ panic (fmt .Errorf ("failed to unmarshal to crd: %s" , err ))
47
37
}
48
38
49
- crd := & apiextensionsv1.CustomResourceDefinition {}
50
- if err = scheme .Convert (unversioned , crd , nil ); err != nil {
51
- panic (fmt .Errorf ("failed to convert crd: %s\n to v1: %s" , u , err ))
39
+ if gvk := crd .GroupVersionKind (); gvk != supportedGVK {
40
+ panic (fmt .Errorf ("%s not supported" , gvk ))
52
41
}
53
42
54
43
return crd
@@ -59,15 +48,10 @@ var (
59
48
60
49
// loaded stores previously unmarshaled CustomResourceDefinitions indexed by their file descriptor.
61
50
loaded = map [crdFile ]* apiextensionsv1.CustomResourceDefinition {}
62
- // scheme provides conversions between type versions .
63
- scheme = runtime . NewScheme ( )
51
+ // supportedGVK is the version of CustomResourceDefinition supported for unmarshaling .
52
+ supportedGVK = apiextensionsv1 . SchemeGroupVersion . WithKind ( "CustomResourceDefinition" )
64
53
)
65
54
66
- func init () {
67
- // Add conversions between CRD versions
68
- install .Install (scheme )
69
- }
70
-
71
55
// getCRD lazily loads and returns the CustomResourceDefinition unmarshaled from a file.
72
56
func getCRD (file crdFile ) * apiextensionsv1.CustomResourceDefinition {
73
57
lock .Lock ()
0 commit comments