@@ -8,11 +8,9 @@ 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
12
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
15
- "k8s.io/apimachinery/pkg/runtime"
13
+ "k8s.io/apimachinery/pkg/runtime/schema "
16
14
"k8s.io/apimachinery/pkg/util/yaml"
17
15
)
18
16
@@ -37,18 +35,17 @@ func (c crdFile) mustUnmarshal() *apiextensionsv1.CustomResourceDefinition {
37
35
reader := bytes .NewReader (data )
38
36
decoder := yaml .NewYAMLOrJSONDecoder (reader , 30 )
39
37
if err = decoder .Decode (u ); err != nil {
40
- panic (fmt .Errorf ("crd unmarshaling failed: %s" , err ))
38
+ panic (fmt .Errorf ("failed to unmarshal to unstructured %s" , err ))
41
39
}
42
40
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 ))
41
+ if gvk := u .GroupVersionKind (); gvk != supportedGVK {
42
+ panic (fmt .Errorf ("%s not supported" , gvk ))
47
43
}
48
44
49
45
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 ))
46
+ reader .Reset (data )
47
+ if err = decoder .Decode (crd ); err != nil {
48
+ panic (fmt .Errorf ("failed to unmarshal to crd: %s" , err ))
52
49
}
53
50
54
51
return crd
@@ -59,13 +56,12 @@ var (
59
56
60
57
// loaded stores previously unmarshaled CustomResourceDefinitions indexed by their file descriptor.
61
58
loaded = map [crdFile ]* apiextensionsv1.CustomResourceDefinition {}
62
- // scheme provides conversions between type versions .
63
- scheme = runtime . NewScheme ()
59
+ // supportedGVK is the version of CustomResourceDefinition supported for unmarshaling .
60
+ supportedGVK schema. GroupVersionKind
64
61
)
65
62
66
63
func init () {
67
- // Add conversions between CRD versions
68
- install .Install (scheme )
64
+ supportedGVK = apiextensionsv1 .SchemeGroupVersion .WithKind ("CustomResourceDefinition" )
69
65
}
70
66
71
67
// getCRD lazily loads and returns the CustomResourceDefinition unmarshaled from a file.
0 commit comments