X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Fk8s_helm_conn.py;h=01b448b7e97350823f4c7cae81bb0a4874495bea;hp=f7ff85305439820ce8162eb9bc7b7248cd2fbfb6;hb=refs%2Fchanges%2F44%2F8544%2F1;hpb=a6748412b421c7abd8eae504ae6205da2e113cba;ds=sidebyside diff --git a/n2vc/k8s_helm_conn.py b/n2vc/k8s_helm_conn.py index f7ff853..01b448b 100644 --- a/n2vc/k8s_helm_conn.py +++ b/n2vc/k8s_helm_conn.py @@ -102,6 +102,17 @@ class K8sHelmConnector(K8sConnector): namespace: str = 'kube-system', reuse_cluster_uuid=None ) -> (str, bool): + """ + It prepares a given K8s cluster environment to run Charts on both sides: + client (OSM) + server (Tiller) + + :param k8s_creds: credentials to access a given K8s cluster, i.e. a valid '.kube/config' + :param namespace: optional namespace to be used for helm. By default, 'kube-system' will be used + :param reuse_cluster_uuid: existing cluster uuid for reuse + :return: uuid of the K8s cluster and True if connector has installed some software in the cluster + (on error, an exception will be raised) + """ cluster_uuid = reuse_cluster_uuid if not cluster_uuid: @@ -770,6 +781,15 @@ class K8sHelmConnector(K8sConnector): def _generate_release_name( chart_name: str ): + # check embeded chart (file or dir) + if chart_name.startswith('/'): + # extract file or directory name + chart_name = chart_name[chart_name.rfind('/')+1:] + # check URL + elif '://' in chart_name: + # extract last portion of URL + chart_name = chart_name[chart_name.rfind('/')+1:] + name = '' for c in chart_name: if c.isalpha() or c.isnumeric(): @@ -1105,7 +1125,10 @@ class K8sHelmConnector(K8sConnector): msg = 'Exception executing command: {} -> {}'.format(command, e) if show_error_log: self.error(msg) - return '', -1 + if raise_exception_on_error: + raise e + else: + return '', -1 def _remote_exec( self,