X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Fk8s_helm_base_conn.py;h=a79f0389726fd7de232f9f8a992156a505379ec6;hp=1aa95d2b163aee10c1cc721ddf7d32e97c7fa17d;hb=ff9d9013c43951a782da38116357a8274b4549ee;hpb=095392b4b80e0b63c66282f283c1139ec0536750 diff --git a/n2vc/k8s_helm_base_conn.py b/n2vc/k8s_helm_base_conn.py index 1aa95d2..a79f038 100644 --- a/n2vc/k8s_helm_base_conn.py +++ b/n2vc/k8s_helm_base_conn.py @@ -43,6 +43,7 @@ class K8sHelmBaseConnector(K8sConnector): #################################################################################### """ service_account = "osm" + _STABLE_REPO_URL = "https://charts.helm.sh/stable" def __init__( self, @@ -52,6 +53,7 @@ class K8sHelmBaseConnector(K8sConnector): helm_command: str = "/usr/bin/helm", log: object = None, on_update_db=None, + vca_config: dict = None, ): """ @@ -82,6 +84,12 @@ class K8sHelmBaseConnector(K8sConnector): self._helm_command = helm_command self._check_file_exists(filename=helm_command, exception_if_not_exists=True) + # obtain stable repo url from config or apply default + if not vca_config or not vca_config.get("stablerepourl"): + self._stable_repo_url = self._STABLE_REPO_URL + else: + self._stable_repo_url = vca_config.get("stablerepourl") + @staticmethod def _get_namespace_cluster_id(cluster_uuid: str) -> (str, str): """ @@ -285,6 +293,7 @@ class K8sHelmBaseConnector(K8sConnector): kdu_model: str, paths: dict, env: dict, + kdu_instance: str, atomic: bool = True, timeout: float = 300, params: dict = None, @@ -305,23 +314,6 @@ class K8sHelmBaseConnector(K8sConnector): version = str(parts[1]) kdu_model = parts[0] - # generate a name for the release. Then, check if already exists - kdu_instance = None - while kdu_instance is None: - kdu_instance = self._generate_release_name(kdu_model) - try: - result = await self._status_kdu( - cluster_id=cluster_id, - kdu_instance=kdu_instance, - namespace=namespace, - show_error_log=False, - ) - if result is not None: - # instance already exists: generate a new one - kdu_instance = None - except K8sException: - pass - command = self._get_install_command(kdu_model, kdu_instance, namespace, params_str, version, atomic, timeout) @@ -381,8 +373,6 @@ class K8sHelmBaseConnector(K8sConnector): self.log.error(msg) raise K8sException(msg) - return kdu_instance - async def upgrade( self, cluster_uuid: str, @@ -1369,7 +1359,8 @@ class K8sHelmBaseConnector(K8sConnector): return params_str @staticmethod - def _generate_release_name(chart_name: str): + def generate_kdu_instance_name(**kwargs): + chart_name = kwargs["kdu_model"] # check embeded chart (file or dir) if chart_name.startswith("/"): # extract file or directory name