diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml
index 41f6e90320c7937247a52bc7789dc86e76d0b484..50d41643b8ddebc996fadac42bd4ad5885ab1d99 100644
--- a/config/rbac/role.yaml
+++ b/config/rbac/role.yaml
@@ -56,6 +56,18 @@ rules:
   - get
   - patch
   - update
+- apiGroups:
+  - l2sm.l2sm.k8s.local
+  resources:
+  - configmaps
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
 - apiGroups:
   - l2sm.l2sm.k8s.local
   resources:
@@ -146,3 +158,15 @@ rules:
   - patch
   - update
   - watch
+- apiGroups:
+  - l2sm.l2sm.k8s.local
+  resources:
+  - services
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
diff --git a/internal/controller/overlay_controller.go b/internal/controller/overlay_controller.go
index 8ff853f12044a5dd9ad271be4b1a924172108258..64a61d37291abed64d19158ab23087e532eacec3 100644
--- a/internal/controller/overlay_controller.go
+++ b/internal/controller/overlay_controller.go
@@ -40,6 +40,8 @@ type OverlayReconciler struct {
 
 var replicaSetOwnerKeyOverlay = ".metadata.controller.overlay"
 
+// +kubebuilder:rbac:groups=l2sm.l2sm.k8s.local,resources=configmaps,verbs=get;list;watch;create;update;patch;delete
+// +kubebuilder:rbac:groups=l2sm.l2sm.k8s.local,resources=services,verbs=get;list;watch;create;update;patch;delete
 // +kubebuilder:rbac:groups=l2sm.l2sm.k8s.local,resources=replicasets,verbs=get;list;watch;create;update;patch;delete
 // +kubebuilder:rbac:groups=apps,resources=replicasets,verbs=get;list;watch;create;update;patch;delete
 //+kubebuilder:rbac:groups=l2sm.l2sm.k8s.local,resources=overlays,verbs=get;list;watch;create;update;patch;delete