from osm_lcm import ROclient
from osm_lcm.lcm_utils import LcmException, LcmBase, deep_get
from n2vc.k8s_helm_conn import K8sHelmConnector
+from n2vc.k8s_helm3_conn import K8sHelm3Connector
from n2vc.k8s_juju_conn import K8sJujuConnector
from n2vc.exceptions import K8sException, N2VCException
from osm_common.dbbase import DbException
self.fs = fs
self.db = db
- self.helm_k8scluster = K8sHelmConnector(
+ self.helm2_k8scluster = K8sHelmConnector(
kubectl_command=self.vca_config.get("kubectlpath"),
helm_command=self.vca_config.get("helmpath"),
fs=self.fs,
on_update_db=None
)
+ self.helm3_k8scluster = K8sHelm3Connector(
+ kubectl_command=self.vca_config.get("kubectlpath"),
+ helm_command=self.vca_config.get("helm3path"),
+ fs=self.fs,
+ log=self.logger,
+ db=self.db,
+ on_update_db=None
+ )
+
self.juju_k8scluster = K8sJujuConnector(
kubectl_command=self.vca_config.get("kubectlpath"),
juju_command=self.vca_config.get("jujupath"),
vca_config=self.vca_config,
)
self.k8s_map = {
- "helm-chart": self.helm_k8scluster,
+ "helm-chart": self.helm2_k8scluster,
+ "helm-chart-v3": self.helm3_k8scluster,
"juju-bundle": self.juju_k8scluster,
}
task2name = {}
init_target = deep_get(db_k8scluster, ("_admin", "init"))
step = "Launching k8scluster init tasks"
- for task_name in ("helm-chart", "juju-bundle"):
+ for task_name in ("helm-chart", "juju-bundle", "helm-chart-v3"):
if init_target and task_name not in init_target:
continue
task = asyncio.ensure_future(self.k8s_map[task_name].init_env(k8s_credentials,
self.logger.debug(logging_text + step)
db_k8scluster = self.db.get_one("k8sclusters", {"_id": k8scluster_id})
k8s_hc_id = deep_get(db_k8scluster, ("_admin", "helm-chart", "id"))
+ k8s_h3c_id = deep_get(db_k8scluster, ("_admin", "helm-chart-v3", "id"))
k8s_jb_id = deep_get(db_k8scluster, ("_admin", "juju-bundle", "id"))
cluster_removed = True
if k8s_hc_id:
step = "Removing helm-chart '{}'".format(k8s_hc_id)
uninstall_sw = deep_get(db_k8scluster, ("_admin", "helm-chart", "created")) or False
- cluster_removed = await self.helm_k8scluster.reset(cluster_uuid=k8s_hc_id, uninstall_sw=uninstall_sw)
+ cluster_removed = await self.helm2_k8scluster.reset(cluster_uuid=k8s_hc_id, uninstall_sw=uninstall_sw)
db_k8scluster_update["_admin.helm-chart.id"] = None
db_k8scluster_update["_admin.helm-chart.operationalState"] = "DISABLED"
+ if k8s_h3c_id:
+ step = "Removing helm-chart-v3 '{}'".format(k8s_hc_id)
+ uninstall_sw = deep_get(db_k8scluster, ("_admin", "helm-chart-v3", "created")) or False
+ cluster_removed = await self.helm3_k8scluster.reset(cluster_uuid=k8s_hc_id, uninstall_sw=uninstall_sw)
+ db_k8scluster_update["_admin.helm-chart-v3.id"] = None
+ db_k8scluster_update["_admin.helm-chart-v3.operationalState"] = "DISABLED"
+
# Try to remove from cluster_inserted to clean old versions
if k8s_hc_id and cluster_removed:
step = "Removing k8scluster='{}' from k8srepos".format(k8scluster_id)
self.fs = fs
self.db = db
- self.k8srepo = K8sHelmConnector(
- kubectl_command=self.vca_config.get("kubectlpath"),
- helm_command=self.vca_config.get("helmpath"),
- fs=self.fs,
- log=self.logger,
- db=self.db,
- on_update_db=None
- )
-
super().__init__(db, msg, fs, self.logger)
async def create(self, k8srepo_content, order_id):