X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=n2vc%2Fk8s_helm_conn.py;h=bbe4c4851be748ccfbee3c0dcb6225b6aee9ce8f;hb=21852a087bec9102e8ba762d7298e46bb8452e0e;hp=cd440a965730dc0a16f50872af2e764ff6bd4194;hpb=0a2060ce3db8e457c732c83b87030923cbac6e11;p=osm%2FN2VC.git diff --git a/n2vc/k8s_helm_conn.py b/n2vc/k8s_helm_conn.py index cd440a9..bbe4c48 100644 --- a/n2vc/k8s_helm_conn.py +++ b/n2vc/k8s_helm_conn.py @@ -78,12 +78,9 @@ class K8sHelmConnector(K8sHelmBaseConnector): else "--skip-repos", ) try: - asyncio.ensure_future( + asyncio.create_task( self._local_async_exec(command=command, raise_exception_on_error=False) ) - # loop = asyncio.get_event_loop() - # loop.run_until_complete(self._local_async_exec(command=command, - # raise_exception_on_error=False)) except Exception as e: self.warning( msg="helm init failed (it was already initialized): {}".format(e) @@ -164,7 +161,6 @@ class K8sHelmConnector(K8sHelmBaseConnector): 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) ) @@ -235,7 +231,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 @@ -422,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 @@ -469,7 +463,6 @@ class K8sHelmConnector(K8sHelmBaseConnector): yaml_format: bool = False, show_error_log: bool = False, ) -> Union[str, dict]: - self.log.debug( "status of kdu_instance: {}, namespace: {} ".format(kdu_instance, namespace) ) @@ -606,7 +599,6 @@ class K8sHelmConnector(K8sHelmBaseConnector): timeout, kubeconfig, ) -> str: - timeout_str = "" if timeout: timeout_str = "--timeout {}".format(timeout) @@ -702,6 +694,7 @@ class K8sHelmConnector(K8sHelmBaseConnector): atomic, timeout, kubeconfig, + force: bool = False, ) -> str: """Generates the command to upgrade a Helm Chart release @@ -715,7 +708,7 @@ class K8sHelmConnector(K8sHelmBaseConnector): The --wait flag will be set automatically if --atomic is used timeout (float): The time, in seconds, to wait kubeconfig (str): Kubeconfig file path - + force (bool): If set, helm forces resource updates through a replacement strategy. This may recreate pods. Returns: str: command to upgrade a Helm Chart release """ @@ -729,18 +722,30 @@ class K8sHelmConnector(K8sHelmBaseConnector): if atomic: atomic_str = "--atomic" + # force + force_str = "" + if force: + force_str = "--force " + # version version_str = "" if version: version_str = "--version {}".format(version) + # namespace + namespace_str = "" + if namespace: + namespace_str = "--namespace {}".format(namespace) + command = ( - "env KUBECONFIG={kubeconfig} {helm} upgrade {atomic} --output yaml {params} {timeout} " + "env KUBECONFIG={kubeconfig} {helm} upgrade {namespace} {atomic} --output yaml {params} {timeout} {force}" "--reuse-values {name} {model} {ver}" ).format( kubeconfig=kubeconfig, helm=self._helm_command, + namespace=namespace_str, atomic=atomic_str, + force=force_str, params=params_str, timeout=timeout_str, name=kdu_instance,