X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Fk8s_helm_conn.py;h=fdae32f39859784c41097f006bdba19b7140c78c;hp=76ca0b92e3e32d34ae2b6210e5ac3d641ae14c43;hb=83e558987289d47f338ecd989ee0997987673f4a;hpb=095392b4b80e0b63c66282f283c1139ec0536750;ds=sidebyside diff --git a/n2vc/k8s_helm_conn.py b/n2vc/k8s_helm_conn.py index 76ca0b9..fdae32f 100644 --- a/n2vc/k8s_helm_conn.py +++ b/n2vc/k8s_helm_conn.py @@ -43,6 +43,7 @@ class K8sHelmConnector(K8sHelmBaseConnector): helm_command: str = "/usr/bin/helm", log: object = None, on_update_db=None, + vca_config: dict = None, ): """ Initializes helm connector for helm v2 @@ -64,13 +65,15 @@ class K8sHelmConnector(K8sHelmBaseConnector): kubectl_command=kubectl_command, helm_command=helm_command, on_update_db=on_update_db, + vca_config=vca_config, ) self.log.info("Initializing K8S Helm2 connector") # 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) @@ -261,13 +264,14 @@ class K8sHelmConnector(K8sHelmBaseConnector): command = ( "{} --kubeconfig={} --tiller-namespace={} --home={} --service-account {} " - "init" + " --stable-repo-url {} init" ).format( self._helm_command, paths["kube_config"], namespace, paths["helm_dir"], self.service_account, + self._stable_repo_url ) _, _rc = await self._local_async_exec( command=command, raise_exception_on_error=True, env=env @@ -282,12 +286,13 @@ class K8sHelmConnector(K8sHelmBaseConnector): self.log.info("Initializing helm in client: {}".format(cluster_id)) command = ( "{} --kubeconfig={} --tiller-namespace={} " - "--home={} init --client-only" + "--home={} init --client-only --stable-repo-url {} " ).format( self._helm_command, paths["kube_config"], namespace, paths["helm_dir"], + self._stable_repo_url, ) output, _rc = await self._local_async_exec( command=command, raise_exception_on_error=True, env=env @@ -295,6 +300,19 @@ class K8sHelmConnector(K8sHelmBaseConnector): 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 + return n2vc_installed_sw async def _uninstall_sw(self, cluster_id: str, namespace: str):