@@ -13,6 +13,7 @@ import (
13
13
appsv1 "k8s.io/api/apps/v1"
14
14
corev1 "k8s.io/api/core/v1"
15
15
rbacv1 "k8s.io/api/rbac/v1"
16
+ apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
16
17
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
17
18
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
18
19
"k8s.io/apimachinery/pkg/runtime"
@@ -32,6 +33,7 @@ import (
32
33
type RegistryV1 struct {
33
34
PackageName string
34
35
CSV v1alpha1.ClusterServiceVersion
36
+ CRDs []apiextensionsv1.CustomResourceDefinition
35
37
Others []unstructured.Unstructured
36
38
}
37
39
@@ -121,6 +123,12 @@ func ParseFS(rv1 fs.FS) (RegistryV1, error) {
121
123
}
122
124
reg .CSV = csv
123
125
foundCSV = true
126
+ case "CustomResourceDefinition" :
127
+ crd := apiextensionsv1.CustomResourceDefinition {}
128
+ if err := runtime .DefaultUnstructuredConverter .FromUnstructured (info .Object .(* unstructured.Unstructured ).Object , & crd ); err != nil {
129
+ return err
130
+ }
131
+ reg .CRDs = append (reg .CRDs , crd )
124
132
default :
125
133
reg .Others = append (reg .Others , * info .Object .(* unstructured.Unstructured ))
126
134
}
@@ -362,6 +370,9 @@ func Convert(in RegistryV1, installNamespace string, targetNamespaces []string)
362
370
obj := obj
363
371
objs = append (objs , & obj )
364
372
}
373
+ for _ , obj := range in .CRDs {
374
+ objs = append (objs , & obj )
375
+ }
365
376
for _ , obj := range in .Others {
366
377
obj := obj
367
378
supported , namespaced := registrybundle .IsSupported (obj .GetKind ())
0 commit comments