@@ -39,6 +39,7 @@ import (
3939 groupsnapapi "github.com/kubernetes-csi/external-snapshotter/client/v8/apis/volumegroupsnapshot/v1beta1"
4040 snapapi "github.com/kubernetes-csi/external-snapshotter/client/v8/apis/volumesnapshot/v1"
4141 nbapis "github.com/noobaa/noobaa-operator/v5/pkg/apis"
42+ nbv1 "github.com/noobaa/noobaa-operator/v5/pkg/apis/noobaa/v1alpha1"
4243 configv1 "github.com/openshift/api/config/v1"
4344 consolev1 "github.com/openshift/api/console/v1"
4445 quotav1 "github.com/openshift/api/quota/v1"
@@ -49,10 +50,12 @@ import (
4950 odfgsapiv1b1 "github.com/red-hat-storage/external-snapshotter/client/v8/apis/volumegroupsnapshot/v1beta1"
5051 admrv1 "k8s.io/api/admissionregistration/v1"
5152 appsv1 "k8s.io/api/apps/v1"
53+ corev1 "k8s.io/api/core/v1"
5254 extv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
5355 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
5456 "k8s.io/apimachinery/pkg/fields"
5557 "k8s.io/apimachinery/pkg/runtime"
58+ "k8s.io/apimachinery/pkg/runtime/schema"
5659 utilruntime "k8s.io/apimachinery/pkg/util/runtime"
5760 clientgoscheme "k8s.io/client-go/kubernetes/scheme"
5861 _ "k8s.io/client-go/plugin/pkg/client/auth"
@@ -93,6 +96,16 @@ func init() {
9396 utilruntime .Must (groupsnapapi .AddToScheme (scheme ))
9497 utilruntime .Must (odfgsapiv1b1 .AddToScheme (scheme ))
9598 utilruntime .Must (csiaddonsv1alpha1 .AddToScheme (scheme ))
99+ // ObjectBucketClaim/ObjectBucket (objectbucket.io); nbapis.AddToScheme does not register these types
100+ // this part was added to avoid direct import of lib-bucket-provisioner
101+ objectBucketGV := schema.GroupVersion {Group : "objectbucket.io" , Version : "v1alpha1" }
102+ scheme .AddKnownTypes (objectBucketGV ,
103+ & nbv1.ObjectBucketClaim {},
104+ & nbv1.ObjectBucketClaimList {},
105+ & nbv1.ObjectBucket {},
106+ & nbv1.ObjectBucketList {},
107+ )
108+ metav1 .AddToGroupVersion (scheme , objectBucketGV )
96109 //+kubebuilder:scaffold:scheme
97110}
98111
@@ -217,6 +230,17 @@ func main() {
217230 // only cache our validation webhook
218231 Field : subscriptionwebhookSelector ,
219232 },
233+ // Watch ObjectBucketClaim and OBC-related resources in all namespaces so OBC controller reconciles regardless of WATCH_NAMESPACE.
234+ // Empty ByObject would be defaulted to DefaultNamespaces; explicitly set NamespaceAll to avoid that.
235+ & nbv1.ObjectBucketClaim {}: {
236+ Namespaces : map [string ]cache.Config {corev1 .NamespaceAll : {}},
237+ },
238+ & corev1.ConfigMap {}: {
239+ Namespaces : map [string ]cache.Config {corev1 .NamespaceAll : {}},
240+ },
241+ & corev1.Secret {}: {
242+ Namespaces : map [string ]cache.Config {corev1 .NamespaceAll : {}},
243+ },
220244 },
221245 DefaultNamespaces : defaultNamespaces ,
222246 },
@@ -324,6 +348,14 @@ func main() {
324348 }
325349 }
326350
351+ if err = (& controller.OBCReconciler {
352+ Client : mgr .GetClient (),
353+ Scheme : mgr .GetScheme (),
354+ }).SetupWithManager (mgr ); err != nil {
355+ setupLog .Error (err , "unable to create controller" , "controller" , "ObjectBucketClaim" )
356+ os .Exit (1 )
357+ }
358+
327359 setupLog .Info ("starting manager" )
328360 if err := mgr .Start (ctrl .SetupSignalHandler ()); err != nil {
329361 setupLog .Error (err , "problem running manager" )
0 commit comments