diff --git a/deployments/custom-installation/mysql/mysql-development.yaml b/deployments/custom-installation/mysql/mysql-development.yaml
index 461bf3072c051d173a6d677e9a17380cf7af8898..030042dcf072489878e36198e36f7e46974043ad 100644
--- a/deployments/custom-installation/mysql/mysql-development.yaml
+++ b/deployments/custom-installation/mysql/mysql-development.yaml
@@ -29,22 +29,19 @@ spec:
         items:
         - key: init.sql
           path: init.sql
-  nodeName: l2sm1
 ---
 apiVersion: v1
 kind: Service
 metadata:
   name: mysql-development-service
 spec:
-  type: NodePort
+  type: ClusterIP
   ports:
     - port: 3306
       targetPort: 3306
-      nodePort: 30001
       protocol: TCP
   selector:
     app: mysql
-
 ---
 apiVersion: v1
 kind: Secret
diff --git a/src/kubernetes-api/config/manager/manager.yaml b/src/kubernetes-api/config/manager/manager.yaml
index dd28fe9ae689978f604cc5514f046dccabdc6b35..b7d1c837ad60fe1561c9afec7923decaa7763b34 100644
--- a/src/kubernetes-api/config/manager/manager.yaml
+++ b/src/kubernetes-api/config/manager/manager.yaml
@@ -70,6 +70,9 @@ spec:
         - /manager
         args:
         - --leader-elect
+        env:
+        - name: CONTROLLER_IP
+          value: l2sm-controller-service.default.svc.cluster.local
         image: controller:latest
         name: manager
         securityContext:
diff --git a/src/kubernetes-api/config/rbac/role.yaml b/src/kubernetes-api/config/rbac/role.yaml
index f00ee667879b52ed55d89371a0301a5ec182caa9..cf91a55c4555c22e6da4727307a9d10786dcc506 100644
--- a/src/kubernetes-api/config/rbac/role.yaml
+++ b/src/kubernetes-api/config/rbac/role.yaml
@@ -4,6 +4,18 @@ kind: ClusterRole
 metadata:
   name: manager-role
 rules:
+- apiGroups:
+  - apps
+  resources:
+  - replicasets
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
 - apiGroups:
   - l2sm.l2sm.k8s.local
   resources:
@@ -82,3 +94,15 @@ rules:
   - get
   - patch
   - update
+- apiGroups:
+  - l2sm.l2sm.k8s.local
+  resources:
+  - replicasets
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
diff --git a/src/kubernetes-api/dist/install.yaml b/src/kubernetes-api/dist/install.yaml
index 10463fb2cb8ed203b318b2f1c8d45f56c399eed5..9f1468844e562c0a56ff4de9ec07f50183b8d2cd 100644
--- a/src/kubernetes-api/dist/install.yaml
+++ b/src/kubernetes-api/dist/install.yaml
@@ -18638,6 +18638,18 @@ kind: ClusterRole
 metadata:
   name: l2sm-manager-role
 rules:
+- apiGroups:
+  - apps
+  resources:
+  - replicasets
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
 - apiGroups:
   - l2sm.l2sm.k8s.local
   resources:
@@ -18716,6 +18728,18 @@ rules:
   - get
   - patch
   - update
+- apiGroups:
+  - l2sm.l2sm.k8s.local
+  resources:
+  - replicasets
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
 ---
 apiVersion: rbac.authorization.k8s.io/v1
 kind: ClusterRole
@@ -18897,7 +18921,10 @@ spec:
         - --leader-elect
         command:
         - /manager
-        image: alexdecb/l2sm-operator:2.4
+        env:
+        - name: CONTROLLER_IP
+          value: l2sm-controller-service.default.svc.cluster.local
+        image: alexdecb/l2sm-controller-manager:2.4
         livenessProbe:
           httpGet:
             path: /healthz
diff --git a/src/kubernetes-api/internal/controller/networkedgedevice_controller.go b/src/kubernetes-api/internal/controller/networkedgedevice_controller.go
index b5bb29ee6fdc64a5e829b3727dbbd72b2cd48562..a04cc6d4c5e0f5951e0a5ba91ffa15feab229887 100644
--- a/src/kubernetes-api/internal/controller/networkedgedevice_controller.go
+++ b/src/kubernetes-api/internal/controller/networkedgedevice_controller.go
@@ -45,9 +45,11 @@ var (
 	apiGVStr           = l2smv1.GroupVersion.String()
 )
 
-//+kubebuilder:rbac:groups=l2sm.l2sm.k8s.local,resources=networkedgedevices,verbs=get;list;watch;create;update;patch;delete
-//+kubebuilder:rbac:groups=l2sm.l2sm.k8s.local,resources=networkedgedevices/status,verbs=get;update;patch
-//+kubebuilder:rbac:groups=l2sm.l2sm.k8s.local,resources=networkedgedevices/finalizers,verbs=update
+// +kubebuilder:rbac:groups=l2sm.l2sm.k8s.local,resources=networkedgedevices,verbs=get;list;watch;create;update;patch;delete
+// +kubebuilder:rbac:groups=l2sm.l2sm.k8s.local,resources=networkedgedevices/status,verbs=get;update;patch
+// +kubebuilder:rbac:groups=l2sm.l2sm.k8s.local,resources=networkedgedevices/finalizers,verbs=update
+// +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
 
 // Reconcile is part of the main kubernetes reconciliation loop which aims to
 // move the current state of the cluster closer to the desired state.