Add local k8s charms support
This adds the support to deploy Kuberentes Charm
Bundles that are available locally (directly
inside the vnf descriptor).
Change-Id: Ib2e191df5f905ba909f935f2005347d2cf83da74
Signed-off-by: Dominik Fleischmann <dominik.fleischmann@canonical.com>
diff --git a/n2vc/k8s_juju_conn.py b/n2vc/k8s_juju_conn.py
index 895e82b..3316087 100644
--- a/n2vc/k8s_juju_conn.py
+++ b/n2vc/k8s_juju_conn.py
@@ -351,6 +351,8 @@
- <URL_where_to_fetch_juju_bundle>
"""
+ previous_workdir = os.getcwd()
+
bundle = kdu_model
if kdu_model.startswith("cs:"):
bundle = kdu_model
@@ -358,12 +360,11 @@
# Download the file
pass
else:
- # Local file
+ new_workdir = kdu_model.strip(kdu_model.split("/")[-1])
- # if kdu_model.endswith(".tar.gz") or kdu_model.endswith(".tgz")
- # Uncompress temporarily
- # bundle = <uncompressed file>
- pass
+ os.chdir(new_workdir)
+
+ bundle = "local:{}".format(kdu_model)
if not bundle:
# Raise named exception that the bundle could not be found
@@ -396,6 +397,7 @@
self.log.debug("All units active.")
except concurrent.futures._base.TimeoutError:
+ os.chdir(previous_workdir)
self.log.debug("[install] Timeout exceeded; resetting cluster")
await self.reset(cluster_uuid)
return False
@@ -405,6 +407,8 @@
self.log.debug("[install] Disconnecting model")
await model.disconnect()
+ os.chdir(previous_workdir)
+
return kdu_instance
raise Exception("Unable to install")