Skip to content

Commit 622dfff

Browse files
committed
controllers: OBC controller with Notify gRPC calls
Signed-off-by: shirady <57721533+shirady@users.noreply.github.com> combined error as local variable Signed-off-by: shirady <57721533+shirady@users.noreply.github.com> (cherry picked from commit bf6b039)
1 parent 2362fbc commit 622dfff

File tree

3 files changed

+400
-0
lines changed

3 files changed

+400
-0
lines changed

cmd/main.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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")

config/rbac/role.yaml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,33 @@ rules:
242242
- list
243243
- update
244244
- watch
245+
- apiGroups:
246+
- objectbucket.io
247+
resources:
248+
- objectbucketclaims
249+
verbs:
250+
- get
251+
- list
252+
- update
253+
- watch
254+
- apiGroups:
255+
- objectbucket.io
256+
resources:
257+
- objectbucketclaims/status
258+
verbs:
259+
- get
260+
- patch
261+
- update
262+
- apiGroups:
263+
- objectbucket.io
264+
resources:
265+
- objectbuckets
266+
verbs:
267+
- delete
268+
- get
269+
- list
270+
- update
271+
- watch
245272
- apiGroups:
246273
- ocs.openshift.io
247274
resources:

0 commit comments

Comments
 (0)