@@ -13,6 +13,7 @@ import (
1313 appsv1 "k8s.io/api/apps/v1"
1414 corev1 "k8s.io/api/core/v1"
1515 rbacv1 "k8s.io/api/rbac/v1"
16+ apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
1617 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1718 "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
1819 "k8s.io/apimachinery/pkg/runtime"
@@ -32,6 +33,7 @@ import (
3233type RegistryV1 struct {
3334 PackageName string
3435 CSV v1alpha1.ClusterServiceVersion
36+ CRDs []apiextensionsv1.CustomResourceDefinition
3537 Others []unstructured.Unstructured
3638}
3739
@@ -121,6 +123,12 @@ func ParseFS(rv1 fs.FS) (RegistryV1, error) {
121123 }
122124 reg .CSV = csv
123125 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 )
124132 default :
125133 reg .Others = append (reg .Others , * info .Object .(* unstructured.Unstructured ))
126134 }
@@ -362,6 +370,9 @@ func Convert(in RegistryV1, installNamespace string, targetNamespaces []string)
362370 obj := obj
363371 objs = append (objs , & obj )
364372 }
373+ for _ , obj := range in .CRDs {
374+ objs = append (objs , & obj )
375+ }
365376 for _ , obj := range in .Others {
366377 obj := obj
367378 supported , namespaced := registrybundle .IsSupported (obj .GetKind ())
0 commit comments