X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=n2vc%2Fk8s_helm_conn.py;h=c8c95ee466a73d1d8a7d2ce9e8e594ccc0219c97;hb=60a3a96717d7c36ba7a65573da59a6bc039f5e28;hp=ff5bab7bb444bd4f2ba77d291aae9362f1dc3b5d;hpb=beaac1ef168436c5e10030da7852ed506fb71036;p=osm%2FN2VC.git diff --git a/n2vc/k8s_helm_conn.py b/n2vc/k8s_helm_conn.py index ff5bab7..c8c95ee 100644 --- a/n2vc/k8s_helm_conn.py +++ b/n2vc/k8s_helm_conn.py @@ -20,6 +20,7 @@ # contact with: nfvlabs@tid.es ## import asyncio +from typing import Union import os import yaml @@ -131,18 +132,19 @@ class K8sHelmConnector(K8sHelmBaseConnector): :param kwargs: Additional parameters (None yet) :return: True if successful """ - self.log.debug("installing {} in cluster {}".format(kdu_model, cluster_uuid)) + _, cluster_id = self._get_namespace_cluster_id(cluster_uuid) + self.log.debug("installing {} in cluster {}".format(kdu_model, cluster_id)) # sync local dir - self.fs.sync(from_path=cluster_uuid) + self.fs.sync(from_path=cluster_id) # init env, paths paths, env = self._init_paths_env( - cluster_name=cluster_uuid, create_if_not_exist=True + cluster_name=cluster_id, create_if_not_exist=True ) await self._install_impl( - cluster_uuid, + cluster_id, kdu_model, paths, env, @@ -156,13 +158,12 @@ class K8sHelmConnector(K8sHelmBaseConnector): ) # sync fs - self.fs.reverse_sync(from_path=cluster_uuid) + self.fs.reverse_sync(from_path=cluster_id) self.log.debug("Returning kdu_instance {}".format(kdu_instance)) return True async def inspect_kdu(self, kdu_model: str, repo_url: str = None) -> str: - self.log.debug( "inspect kdu_model {} from (optional) repo: {}".format(kdu_model, repo_url) ) @@ -233,7 +234,6 @@ class K8sHelmConnector(K8sHelmBaseConnector): return paths, env async def _get_services(self, cluster_id, kdu_instance, namespace, kubeconfig): - # init config, env paths, env = self._init_paths_env( cluster_name=cluster_id, create_if_not_exist=True @@ -300,8 +300,8 @@ class K8sHelmConnector(K8sHelmBaseConnector): ) command = ( - "{} --kubeconfig={} --tiller-namespace={} --home={} --service-account {} " - " {} init" + "{} init --kubeconfig={} --tiller-namespace={} --home={} --service-account {} " + " {}" ).format( self._helm_command, paths["kube_config"], @@ -324,8 +324,8 @@ class K8sHelmConnector(K8sHelmBaseConnector): ): self.log.info("Initializing helm in client: {}".format(cluster_id)) command = ( - "{} --kubeconfig={} --tiller-namespace={} " - "--home={} init --client-only {} " + "{} init --kubeconfig={} --tiller-namespace={} " + "--home={} --client-only {} " ).format( self._helm_command, paths["kube_config"], @@ -341,13 +341,15 @@ class K8sHelmConnector(K8sHelmBaseConnector): else: self.log.info("Helm client already initialized") - repo_list = await self.repo_list(cluster_id) + # 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_id, "stable") + await self.repo_remove(cluster_uuid, "stable") if self._stable_repo_url: - await self.repo_add(cluster_id, "stable", self._stable_repo_url) + await self.repo_add(cluster_uuid, "stable", self._stable_repo_url) break return n2vc_installed_sw @@ -404,13 +406,8 @@ class K8sHelmConnector(K8sHelmBaseConnector): output, _rc = await self._local_async_exec( command=command, raise_exception_on_error=False, env=env ) - command = ( - "{} --kubeconfig={} --namespace {} delete serviceaccount/{}".format( - self.kubectl_command, - paths["kube_config"], - namespace, - self.service_account, - ) + command = "{} --kubeconfig={} --namespace kube-system delete serviceaccount/{}".format( + self.kubectl_command, paths["kube_config"], self.service_account ) output, _rc = await self._local_async_exec( command=command, raise_exception_on_error=False, env=env @@ -420,7 +417,6 @@ class K8sHelmConnector(K8sHelmBaseConnector): self.log.debug("namespace not found") async def _instances_list(self, cluster_id): - # init paths, env paths, env = self._init_paths_env( cluster_name=cluster_id, create_if_not_exist=True @@ -456,10 +452,9 @@ class K8sHelmConnector(K8sHelmBaseConnector): cluster_id: str, kdu_instance: str, namespace: str = None, + yaml_format: bool = False, show_error_log: bool = False, - return_text: bool = False, - ): - + ) -> Union[str, dict]: self.log.debug( "status of kdu_instance: {}, namespace: {} ".format(kdu_instance, namespace) ) @@ -478,7 +473,7 @@ class K8sHelmConnector(K8sHelmBaseConnector): env=env, ) - if return_text: + if yaml_format: return str(output) if rc != 0: @@ -536,7 +531,7 @@ class K8sHelmConnector(K8sHelmBaseConnector): ) status = await self._status_kdu( - cluster_id=cluster_id, kdu_instance=kdu_instance, return_text=False + cluster_id=cluster_id, kdu_instance=kdu_instance, yaml_format=False ) # extract info.status.resources-> str @@ -596,7 +591,6 @@ class K8sHelmConnector(K8sHelmBaseConnector): timeout, kubeconfig, ) -> str: - timeout_str = "" if timeout: timeout_str = "--timeout {}".format(timeout) @@ -642,7 +636,6 @@ class K8sHelmConnector(K8sHelmBaseConnector): timeout, kubeconfig, ) -> str: - timeout_str = "" if timeout: timeout_str = "--timeout {}".format(timeout)