diff --git a/n2vc/k8s_helm_base_conn.py b/n2vc/k8s_helm_base_conn.py
index adbdefc..efca96f 100644
--- a/n2vc/k8s_helm_base_conn.py
+++ b/n2vc/k8s_helm_base_conn.py
@@ -212,6 +212,31 @@
         # sync fs
         self.fs.reverse_sync(from_path=cluster_uuid)
 
+    async def repo_update(self, cluster_uuid: str, name: str, repo_type: str = "chart"):
+        self.log.debug(
+            "Cluster {}, updating {} repository {}".format(
+                cluster_uuid, repo_type, name
+            )
+        )
+
+        # init_env
+        paths, env = self._init_paths_env(
+            cluster_name=cluster_uuid, create_if_not_exist=True
+        )
+
+        # sync local dir
+        self.fs.sync(from_path=cluster_uuid)
+
+        # helm repo update
+        command = "{} repo update {}".format(self._helm_command, name)
+        self.log.debug("updating repo: {}".format(command))
+        await self._local_async_exec(
+            command=command, raise_exception_on_error=False, env=env
+        )
+
+        # sync fs
+        self.fs.reverse_sync(from_path=cluster_uuid)
+
     async def repo_list(self, cluster_uuid: str) -> list:
         """
         Get the list of registered repositories
@@ -373,6 +398,10 @@
         # version
         kdu_model, version = self._split_version(kdu_model)
 
+        repo = self._split_repo(kdu_model)
+        if repo:
+            self.repo_update(cluster_id, repo)
+
         command = self._get_install_command(
             kdu_model,
             kdu_instance,
@@ -476,6 +505,10 @@
         # version
         kdu_model, version = self._split_version(kdu_model)
 
+        repo = self._split_repo(kdu_model)
+        if repo:
+            self.repo_update(cluster_uuid, repo)
+
         command = self._get_upgrade_command(
             kdu_model,
             kdu_instance,
@@ -1906,6 +1939,13 @@
                 kdu_model = parts[0]
         return kdu_model, version
 
+    async def _split_repo(self, kdu_model: str) -> str:
+        repo_name = None
+        idx = kdu_model.find("/")
+        if idx >= 0:
+            repo_name = kdu_model[:idx]
+        return repo_name
+
     async def _find_repo(self, kdu_model: str, cluster_uuid: str) -> str:
         repo_url = None
         idx = kdu_model.find("/")
