Skip to content

Commit f949c1e

Browse files
authored
fix: Using ApiReader to get/list role and rolebing (#69)
1 parent b66fb33 commit f949c1e

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

controllers/namespacescope_controller.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ var ctx context.Context
4545

4646
// NamespaceScopeReconciler reconciles a NamespaceScope object
4747
type NamespaceScopeReconciler struct {
48+
client.Reader
4849
client.Client
4950
Recorder record.EventRecorder
5051
Scheme *runtime.Scheme
@@ -97,18 +98,22 @@ func (r *NamespaceScopeReconciler) Reconcile(req ctrl.Request) (ctrl.Result, err
9798
klog.Infof("Reconciling NamespaceScope: %s", req.NamespacedName)
9899

99100
if err := r.UpdateStatus(instance); err != nil {
101+
klog.Errorf("Failed to update the status of NamespaceScope %s: %v", req.NamespacedName, err)
100102
return ctrl.Result{}, err
101103
}
102104

103105
if err := r.PushRbacToNamespace(instance); err != nil {
106+
klog.Errorf("Failed to generate rbac: %v", err)
104107
return ctrl.Result{}, err
105108
}
106109

107110
if err := r.DeleteRbacFromUnmanagedNamespace(instance); err != nil {
111+
klog.Errorf("Failed to delete rbac: %v", err)
108112
return ctrl.Result{}, err
109113
}
110114

111115
if err := r.UpdateConfigMap(instance); err != nil {
116+
klog.Errorf("Failed to update configmap: %v", err)
112117
return ctrl.Result{}, err
113118
}
114119

@@ -156,7 +161,7 @@ func (r *NamespaceScopeReconciler) UpdateConfigMap(instance *operatorv1.Namespac
156161
return err
157162
}
158163

159-
if err := r.Get(ctx, cmKey, cm); err != nil {
164+
if err := r.Client.Get(ctx, cmKey, cm); err != nil {
160165
if errors.IsNotFound(err) {
161166
cm.SetName(cmName)
162167
cm.SetNamespace(cmNamespace)
@@ -242,7 +247,7 @@ func (r *NamespaceScopeReconciler) PushRbacToNamespace(instance *operatorv1.Name
242247
func (r *NamespaceScopeReconciler) DeleteRbacFromUnmanagedNamespace(instance *operatorv1.NamespaceScope) error {
243248
cm := &corev1.ConfigMap{}
244249
cmKey := types.NamespacedName{Name: instance.Spec.ConfigmapName, Namespace: instance.Namespace}
245-
if err := r.Get(ctx, cmKey, cm); err != nil {
250+
if err := r.Client.Get(ctx, cmKey, cm); err != nil {
246251
if errors.IsNotFound(err) {
247252
klog.Infof("ConfigMap %s not found", cmKey.String())
248253
return nil
@@ -452,7 +457,7 @@ func (r *NamespaceScopeReconciler) GetServiceAccountFromNamespace(instance *oper
452457
client.InNamespace(namespace),
453458
}
454459

455-
if err := r.List(ctx, pods, opts...); err != nil {
460+
if err := r.Client.List(ctx, pods, opts...); err != nil {
456461
klog.Errorf("Cannot list pods with labels %v in namespace %s: %v", labels, namespace, err)
457462
return nil, err
458463
}
@@ -468,7 +473,7 @@ func (r *NamespaceScopeReconciler) GetServiceAccountFromNamespace(instance *oper
468473
if len(instance.Spec.ServiceAccountMembers) != 0 {
469474
for _, sa := range instance.Spec.ServiceAccountMembers {
470475
serviceaccount := &corev1.ServiceAccount{}
471-
if err := r.Get(ctx, types.NamespacedName{Namespace: namespace, Name: sa}, serviceaccount); err != nil {
476+
if err := r.Client.Get(ctx, types.NamespacedName{Namespace: namespace, Name: sa}, serviceaccount); err != nil {
472477
klog.Errorf("Failed to get service account %s in namespace %s", sa, namespace)
473478
continue
474479
}
@@ -487,7 +492,7 @@ func (r *NamespaceScopeReconciler) GetRolesFromServiceAccount(sa string, namespa
487492
client.InNamespace(namespace),
488493
}
489494

490-
if err := r.List(ctx, roleBindings, opts...); err != nil {
495+
if err := r.Reader.List(ctx, roleBindings, opts...); err != nil {
491496
klog.Errorf("Cannot list rolebindings with in namespace %s: %v", namespace, err)
492497
return nil, err
493498
}
@@ -507,7 +512,7 @@ func (r *NamespaceScopeReconciler) GetRolesFromServiceAccount(sa string, namespa
507512
func (r *NamespaceScopeReconciler) CreateRole(roleNames []string, labels map[string]string, saName, fromNs, toNs string) error {
508513
for _, roleName := range roleNames {
509514
originalRole := &rbacv1.Role{}
510-
if err := r.Get(ctx, types.NamespacedName{Name: roleName, Namespace: fromNs}, originalRole); err != nil {
515+
if err := r.Reader.Get(ctx, types.NamespacedName{Name: roleName, Namespace: fromNs}, originalRole); err != nil {
511516
if errors.IsNotFound(err) {
512517
klog.Errorf("role %s not found in namespace %s: %v", roleName, fromNs, err)
513518
continue
@@ -636,7 +641,7 @@ func (r *NamespaceScopeReconciler) getAllValidatedNamespaceMembers(instance *ope
636641
// List the instance using the same configmap
637642
crList := &operatorv1.NamespaceScopeList{}
638643
namespaceMembers := []string{}
639-
if err := r.List(ctx, crList, &client.ListOptions{Namespace: instance.Namespace}); err != nil {
644+
if err := r.Client.List(ctx, crList, &client.ListOptions{Namespace: instance.Namespace}); err != nil {
640645
klog.Errorf("Cannot list namespacescope with in namespace %s: %v", instance.Namespace, err)
641646
return nil, err
642647
}
@@ -702,7 +707,7 @@ func (r *NamespaceScopeReconciler) getValidatedNamespaces(instance *operatorv1.N
702707
if r.checkGetNSAuth() {
703708
ns := &corev1.Namespace{}
704709
key := types.NamespacedName{Name: nsMem}
705-
if err := r.Get(ctx, key, ns); err != nil {
710+
if err := r.Client.Get(ctx, key, ns); err != nil {
706711
if errors.IsNotFound(err) {
707712
klog.Infof("Namespace %s does not exist and will be ignored", nsMem)
708713
continue

main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ func main() {
8787
}
8888

8989
if err = (&controllers.NamespaceScopeReconciler{
90+
Reader: mgr.GetAPIReader(),
9091
Client: mgr.GetClient(),
9192
Recorder: mgr.GetEventRecorderFor("NamespaceScope"),
9293
Scheme: mgr.GetScheme(),

0 commit comments

Comments
 (0)