UNPKG

@catladder/cli

Version:

Panter cli tool for cloud CI/CD and DevOps

41 lines (39 loc) 1.34 kB
import { isOfDeployType, getFullKubernetesClusterName, } from "@catladder/pipeline"; import { getPipelineContextByChoice, parseChoice, } from "../../../../../config/getProjectConfig"; import { connectToCluster, getCurrentConnectedClusterName, } from "../../../../../utils/cluster"; export default async function (envComponent: string) { const { env, componentName } = parseChoice(envComponent); const context = await getPipelineContextByChoice(env, componentName); if (!isOfDeployType(context.deploy?.config, "kubernetes")) { throw new Error("can't ensure cluster for non-kubernetes deployments"); } const cluster = getFullKubernetesClusterName(context.deploy?.config.cluster); const connectedClusterName = await getCurrentConnectedClusterName(); if (cluster !== connectedClusterName) { this.log( `you are currently connected to cluster '${connectedClusterName}'`, ); this.log(`but the project requires cluster '${cluster}'`); const { shouldContinue } = await this.prompt({ type: "confirm", name: "shouldContinue", default: true, message: `Do you want to connect to '${cluster}'?`, }); if (!shouldContinue) { this.log("abort"); } else { await connectToCluster(cluster); this.log(`connected to cluster '${cluster}'`); } } }