diff --git a/osm_nbi/k8s_topics.py b/osm_nbi/k8s_topics.py
index d4ff80b..c930472 100644
--- a/osm_nbi/k8s_topics.py
+++ b/osm_nbi/k8s_topics.py
@@ -365,6 +365,34 @@
                 error_msg = "Add / remove operation is only applicable"
                 raise EngineException(error_msg, HTTPStatus.UNPROCESSABLE_ENTITY)
 
+    def edit_extra_before(self, session, _id, indata=None, kwargs=None, content=None):
+        check = self.db.get_one(self.topic, {"_id": _id})
+        if "name" in indata and check["name"] != indata["name"]:
+            self.check_unique_name(session, indata["name"])
+            _filter = {"name": indata["name"]}
+            topic_list = [
+                "k8sclusters",
+                "k8sinfra_controller",
+                "k8sinfra_config",
+                "k8sapp",
+                "k8sresource",
+            ]
+            # Check unique name for k8scluster and profiles
+            for topic in topic_list:
+                if self.db.get_one(
+                    topic, _filter, fail_on_empty=False, fail_on_more=False
+                ):
+                    raise EngineException(
+                        "name '{}' already exists for {}".format(indata["name"], topic),
+                        HTTPStatus.CONFLICT,
+                    )
+            # Replace name in k8scluster and profiles
+            for topic in topic_list:
+                data = self.db.get_one(topic, {"name": check["name"]})
+                data["name"] = indata["name"]
+                self.db.replace(topic, data["_id"], data)
+        return True
+
     def add_profile(self, session, _id, item, indata=None):
         indata = self._remove_envelop(indata)
         operation_params = indata
