X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Fk8s_helm3_conn.py;h=8bfd1738cc3f06b3f3e85d500f0fe630e1d4d98c;hp=4d8df93a0ba1dbe94f02aaf8cac2ee653437f2e9;hb=ed0ff05f09f276c753e5aa5439a3a1252b6a07e4;hpb=867418c142ece1ef0e4c9e083bc747c1f3d13a3c diff --git a/n2vc/k8s_helm3_conn.py b/n2vc/k8s_helm3_conn.py index 4d8df93..8bfd173 100644 --- a/n2vc/k8s_helm3_conn.py +++ b/n2vc/k8s_helm3_conn.py @@ -97,24 +97,24 @@ class K8sHelm3Connector(K8sHelmBaseConnector): :return: True if successful """ - _, cluster_id = self._get_namespace_cluster_id(cluster_uuid) - self.log.debug("installing {} in cluster {}".format(kdu_model, cluster_id)) + + self.log.debug("installing {} in cluster {}".format(kdu_model, cluster_uuid)) # sync local dir - self.fs.sync(from_path=cluster_id) + self.fs.sync(from_path=cluster_uuid) # init env, paths paths, env = self._init_paths_env( - cluster_name=cluster_id, create_if_not_exist=True + cluster_name=cluster_uuid, create_if_not_exist=True ) # for helm3 if namespace does not exist must create it if namespace and namespace != "kube-system": - if not await self._namespace_exists(cluster_id, namespace): + if not await self._namespace_exists(cluster_uuid, namespace): try: - await self._create_namespace(cluster_id, namespace) + await self._create_namespace(cluster_uuid, namespace) except Exception as e: - if not await self._namespace_exists(cluster_id, namespace): + if not await self._namespace_exists(cluster_uuid, namespace): err_msg = ( "namespace {} does not exist in cluster_id {} " "error message: ".format(namespace, e) @@ -123,7 +123,7 @@ class K8sHelm3Connector(K8sHelmBaseConnector): raise K8sException(err_msg) await self._install_impl( - cluster_id, + cluster_uuid, kdu_model, paths, env, @@ -137,7 +137,7 @@ class K8sHelm3Connector(K8sHelmBaseConnector): ) # sync fs - self.fs.reverse_sync(from_path=cluster_id) + self.fs.reverse_sync(from_path=cluster_uuid) self.log.debug("Returning kdu_instance {}".format(kdu_instance)) return True @@ -314,12 +314,10 @@ class K8sHelm3Connector(K8sHelmBaseConnector): if namespace not in namespaces: await self._create_namespace(cluster_id, namespace) - # If default repo is not included add - cluster_uuid = "{}:{}".format(namespace, cluster_id) - repo_list = await self.repo_list(cluster_uuid) + repo_list = await self.repo_list(cluster_id) stable_repo = [repo for repo in repo_list if repo["name"] == "stable"] if not stable_repo and self._stable_repo_url: - await self.repo_add(cluster_uuid, "stable", self._stable_repo_url) + await self.repo_add(cluster_id, "stable", self._stable_repo_url) # Returns False as no software needs to be uninstalled return False @@ -406,11 +404,18 @@ class K8sHelm3Connector(K8sHelmBaseConnector): # remove field 'notes' and manifest try: del data.get("info")["notes"] - del data["manifest"] except KeyError: pass - # unable to parse 'resources' as currently it is not included in helm3 + # parse the manifest to a list of dictionaries + if "manifest" in data: + manifest_str = data.get("manifest") + manifest_docs = yaml.load_all(manifest_str, Loader=yaml.SafeLoader) + + data["manifest"] = [] + for doc in manifest_docs: + data["manifest"].append(doc) + return data def _get_install_command(