diff --git a/n2vc/k8s_helm_conn.py b/n2vc/k8s_helm_conn.py
index 13a69c4..9a0908f 100644
--- a/n2vc/k8s_helm_conn.py
+++ b/n2vc/k8s_helm_conn.py
@@ -41,6 +41,7 @@
     ####################################################################################
     """
     service_account = "osm"
+    _STABLE_REPO_URL = "https://charts.helm.sh/stable"
 
     def __init__(
         self,
@@ -50,6 +51,7 @@
         helm_command: str = "/usr/bin/helm",
         log: object = None,
         on_update_db=None,
+        vca_config: dict = None,
     ):
         """
 
@@ -80,9 +82,16 @@
         self._helm_command = helm_command
         self._check_file_exists(filename=helm_command, exception_if_not_exists=True)
 
+        # obtain stable repo url from config or apply default
+        if not vca_config or not vca_config.get("stablerepourl"):
+            self._stable_repo_url = self._STABLE_REPO_URL
+        else:
+            self._stable_repo_url = vca_config.get("stablerepourl")
+
         # initialize helm client-only
         self.log.debug("Initializing helm client-only...")
-        command = "{} init --client-only".format(self._helm_command)
+        command = "{} init --client-only --stable-repo-url {}".format(
+            self._helm_command, self._stable_repo_url)
         try:
             asyncio.ensure_future(
                 self._local_async_exec(command=command, raise_exception_on_error=False)
@@ -176,8 +185,11 @@
             _, _rc = await self._local_async_exec(command=command, raise_exception_on_error=False)
 
             command = ("{} --kubeconfig={} --tiller-namespace={} --home={} --service-account {} "
-                       "init").format(self._helm_command, config_filename, namespace, helm_dir,
-                                      self.service_account)
+                       " --stable-repo-url {} init").format(self._helm_command,
+                                                            config_filename,
+                                                            namespace, helm_dir,
+                                                            self.service_account,
+                                                            self._stable_repo_url)
             _, _rc = await self._local_async_exec(command=command, raise_exception_on_error=True)
             n2vc_installed_sw = True
         else:
@@ -187,14 +199,28 @@
                 self.log.info("Initializing helm in client: {}".format(cluster_id))
                 command = (
                     "{} --kubeconfig={} --tiller-namespace={} "
-                    "--home={} init --client-only"
-                ).format(self._helm_command, config_filename, namespace, helm_dir)
+                    "--home={} init --client-only  --stable-repo-url {} "
+                ).format(self._helm_command, config_filename, namespace,
+                         helm_dir, self._stable_repo_url)
                 output, _rc = await self._local_async_exec(
                     command=command, raise_exception_on_error=True
                 )
             else:
                 self.log.info("Helm client already initialized")
 
+        # remove old stable repo and add new one
+        cluster_uuid = "{}:{}".format(namespace, cluster_id)
+        repo_list = await self.repo_list(cluster_uuid)
+        for repo in repo_list:
+            if repo["Name"] == "stable" and repo["URL"] != self._stable_repo_url:
+                self.log.debug("Add new stable repo url: {}")
+                await self.repo_remove(cluster_uuid,
+                                       "stable")
+                await self.repo_add(cluster_uuid,
+                                    "stable",
+                                    self._stable_repo_url)
+                break
+
         self.log.info("Cluster {} initialized".format(cluster_id))
 
         return cluster_uuid, n2vc_installed_sw
