"create_cluster": {
"check_resource_function": self.check_create_cluster,
},
+ "register_cluster": {
+ "check_resource_function": self.check_register_cluster,
+ },
+ "update_cluster": {
+ "check_resource_function": self.check_update_cluster,
+ },
}
self.regist = vim_sdn.K8sClusterLcm(msg, self.lcm_tasks, config)
checkings_list.insert(3, nodepool_check)
return await self.common_check_list(checkings_list, "clusters", db_cluster)
+ async def check_register_cluster(self, op_id, op_params, content):
+ self.logger.info(
+ f"check_register_cluster Operation {op_id}. Params: {op_params}."
+ )
+ # self.logger.debug(f"Content: {content}")
+ db_cluster = content["cluster"]
+ cluster_name = db_cluster["git_name"].lower()
+ cluster_kustomization_name = cluster_name
+ bootstrap = op_params.get("bootstrap", True)
+ checkings_list = [
+ {
+ "item": "kustomization",
+ "name": f"{cluster_kustomization_name}-bstrp-fluxctrl",
+ "namespace": "managed-resources",
+ "flag": "Ready",
+ "timeout": self._checkloop_kustomization_timeout,
+ "enable": bootstrap,
+ "resourceState": "IN_PROGRESS.BOOTSTRAP_OK",
+ },
+ ]
+ return await self.common_check_list(checkings_list, "clusters", db_cluster)
+
+ async def check_update_cluster(self, op_id, op_params, content):
+ self.logger.info(
+ f"check_create_cluster Operation {op_id}. Params: {op_params}."
+ )
+ # self.logger.debug(f"Content: {content}")
+ db_cluster = content["cluster"]
+ cluster_name = db_cluster["git_name"].lower()
+ cluster_kustomization_name = cluster_name
+ db_vim_account = content["vim_account"]
+ cloud_type = db_vim_account["vim_type"]
+ nodepool_name = ""
+ if cloud_type == "aws":
+ nodepool_name = f"{cluster_name}-nodegroup"
+ cluster_name = f"{cluster_name}-cluster"
+ elif cloud_type == "gcp":
+ nodepool_name = f"nodepool-{cluster_name}"
+ if cloud_type in ("azure", "gcp", "aws"):
+ checkings_list = [
+ {
+ "item": "kustomization",
+ "name": cluster_kustomization_name,
+ "namespace": "managed-resources",
+ "flag": "Ready",
+ "timeout": self._checkloop_kustomization_timeout,
+ "enable": True,
+ "resourceState": "IN_PROGRESS.KUSTOMIZATION_READY",
+ },
+ {
+ "item": f"cluster_{cloud_type}",
+ "name": cluster_name,
+ "namespace": "",
+ "flag": "Synced",
+ "timeout": self._checkloop_resource_timeout,
+ "enable": True,
+ "resourceState": "IN_PROGRESS.RESOURCE_SYNCED.CLUSTER",
+ },
+ {
+ "item": f"cluster_{cloud_type}",
+ "name": cluster_name,
+ "namespace": "",
+ "flag": "Ready",
+ "timeout": self._checkloop_resource_timeout,
+ "enable": True,
+ "resourceState": "IN_PROGRESS.RESOURCE_READY.CLUSTER",
+ },
+ ]
+ else:
+ return False, "Not suitable VIM account to check cluster status"
+ if nodepool_name:
+ nodepool_check = {
+ "item": f"nodepool_{cloud_type}",
+ "name": nodepool_name,
+ "namespace": "",
+ "flag": "Ready",
+ "timeout": self._checkloop_resource_timeout,
+ "enable": True,
+ "resourceState": "IN_PROGRESS.RESOURCE_READY.NODEPOOL",
+ }
+ checkings_list.append(nodepool_check)
+ return await self.common_check_list(checkings_list, "clusters", db_cluster)
+
def update_profile_state(self, db_cluster, workflow_status, resource_status):
profiles = [
"infra_controller_profiles",