Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 118e6b8

Browse files
committedSep 12, 2019
pkg/registry/bundle.go: use v1beta1.CustomResourceDefinition, as
the apiextensions type is internal
1 parent 8b7664d commit 118e6b8

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed
 

‎pkg/registry/bundle.go

+13-10
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package registry
22

33
import (
4-
"encoding/json"
54
"fmt"
65
"strings"
76

8-
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
97
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
108
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
119
"k8s.io/apimachinery/pkg/runtime"
@@ -35,7 +33,7 @@ type Bundle struct {
3533
Package string
3634
Channel string
3735
csv *ClusterServiceVersion
38-
crds []*apiextensions.CustomResourceDefinition
36+
crds []*v1beta1.CustomResourceDefinition
3937
cacheStale bool
4038
}
4139

@@ -76,7 +74,7 @@ func (b *Bundle) ClusterServiceVersion() (*ClusterServiceVersion, error) {
7674
return b.csv, nil
7775
}
7876

79-
func (b *Bundle) CustomResourceDefinitions() ([]*apiextensions.CustomResourceDefinition, error) {
77+
func (b *Bundle) CustomResourceDefinitions() ([]*v1beta1.CustomResourceDefinition, error) {
8078
if err := b.cache(); err != nil {
8179
return nil, err
8280
}
@@ -104,6 +102,9 @@ func (b *Bundle) ProvidedAPIs() (map[APIKey]struct{}, error) {
104102
}
105103

106104
ownedAPIs, _, err := csv.GetApiServiceDefinitions()
105+
if err != nil {
106+
return nil, err
107+
}
107108
for _, api := range ownedAPIs {
108109
provided[APIKey{Group: api.Group, Version: api.Version, Kind: api.Kind, Plural: api.Name}] = struct{}{}
109110
}
@@ -210,19 +211,21 @@ func (b *Bundle) cache() error {
210211
}
211212

212213
if b.crds == nil {
213-
b.crds = []*apiextensions.CustomResourceDefinition{}
214+
b.crds = []*v1beta1.CustomResourceDefinition{}
214215
}
215216
for _, o := range b.Objects {
216217
if o.GetObjectKind().GroupVersionKind().Kind == "CustomResourceDefinition" {
217-
crd := &apiextensions.CustomResourceDefinition{}
218-
// Marshal Unstructured and Unmarshal as CustomResourceDefinition. FromUnstructured has issues
218+
// Marshal Unstructured and Decode as CustomResourceDefinition. FromUnstructured has issues
219219
// converting JSON numbers to float64 for CRD minimum/maximum validation.
220-
bytes, err := o.MarshalJSON()
220+
cb, err := o.MarshalJSON()
221221
if err != nil {
222222
return err
223223
}
224-
if err := json.Unmarshal(bytes, &crd); err != nil {
225-
return err
224+
crd := &v1beta1.CustomResourceDefinition{}
225+
dec := serializer.NewCodecFactory(Scheme).UniversalDeserializer()
226+
_, _, err = dec.Decode(cb, nil, crd)
227+
if err != nil {
228+
return fmt.Errorf("error decoding CRD from manifest: %v", err)
226229
}
227230
b.crds = append(b.crds, crd)
228231
}

0 commit comments

Comments
 (0)
Please sign in to comment.