X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Fk8s_helm3_conn.py;h=7d6916821ab64b8fc0e2e29f600939f9fb964efc;hp=25128b045cde54d0a9244734e66f8b1199f79eea;hb=refs%2Fchanges%2F16%2F10616%2F9;hpb=095392b4b80e0b63c66282f283c1139ec0536750 diff --git a/n2vc/k8s_helm3_conn.py b/n2vc/k8s_helm3_conn.py index 25128b0..7d69168 100644 --- a/n2vc/k8s_helm3_conn.py +++ b/n2vc/k8s_helm3_conn.py @@ -42,6 +42,7 @@ class K8sHelm3Connector(K8sHelmBaseConnector): helm_command: str = "/usr/bin/helm3", log: object = None, on_update_db=None, + vca_config: dict = None, ): """ Initializes helm connector for helm v3 @@ -61,7 +62,8 @@ class K8sHelm3Connector(K8sHelmBaseConnector): fs=fs, kubectl_command=kubectl_command, helm_command=helm_command, - on_update_db=on_update_db) + on_update_db=on_update_db, + vca_config=vca_config) self.log.info("K8S Helm3 connector initialized") @@ -69,13 +71,32 @@ class K8sHelm3Connector(K8sHelmBaseConnector): self, cluster_uuid: str, kdu_model: str, + kdu_instance: str, atomic: bool = True, timeout: float = 300, params: dict = None, db_dict: dict = None, kdu_name: str = None, namespace: str = None, + **kwargs, ): + """Install a helm chart + + :param cluster_uuid str: The UUID of the cluster to install to + :param kdu_model str: The name or path of a bundle to install + :param kdu_instance: Kdu instance name + :param atomic bool: If set, waits until the model is active and resets + the cluster on failure. + :param timeout int: The time, in seconds, to wait for the install + to finish + :param params dict: Key-value pairs of instantiation parameters + :param kdu_name: Name of the KDU instance to be installed + :param namespace: K8s namespace to use for the KDU instance + + :param kwargs: Additional parameters (None yet) + + :return: True if successful + """ _, cluster_id = self._get_namespace_cluster_id(cluster_uuid) self.log.debug("installing {} in cluster {}".format(kdu_model, cluster_id)) @@ -93,22 +114,25 @@ class K8sHelm3Connector(K8sHelmBaseConnector): if namespace not in namespaces: await self._create_namespace(cluster_id, namespace) - kdu_instance = await self._install_impl(cluster_id, - kdu_model, - paths, - env, - atomic=atomic, - timeout=timeout, - params=params, - db_dict=db_dict, - kdu_name=kdu_name, - namespace=namespace) + await self._install_impl( + cluster_id, + kdu_model, + paths, + env, + kdu_instance, + atomic=atomic, + timeout=timeout, + params=params, + db_dict=db_dict, + kdu_name=kdu_name, + namespace=namespace, + ) # sync fs self.fs.reverse_sync(from_path=cluster_id) self.log.debug("Returning kdu_instance {}".format(kdu_instance)) - return kdu_instance + return True async def inspect_kdu(self, kdu_model: str, repo_url: str = None) -> str: @@ -287,7 +311,7 @@ class K8sHelm3Connector(K8sHelmBaseConnector): else: await self.repo_add(cluster_uuid, "stable", - "https://kubernetes-charts.storage.googleapis.com/") + self._stable_repo_url) # Returns False as no software needs to be uninstalled return False