UNPKG

@catladder/cli

Version:

Panter cli tool for cloud CI/CD and DevOps

51 lines (50 loc) 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.commandDeletePods = void 0; const defineCommand_1 = require("../../../core/defineCommand"); const k8sApi_1 = require("../../../k8sApi"); const kubernetes_1 = require("../../../kubernetes"); const projects_1 = require("../../../utils/projects"); const ensureCluster_1 = require("../../../apps/cli/commands/project/utils/ensureCluster"); const autocompletions_1 = require("../../../apps/cli/commands/project/utils/autocompletions"); const availability_1 = require("../../availability"); exports.commandDeletePods = (0, defineCommand_1.defineCommand)({ name: "project k8s delete-pods", description: "delete / restart pods", group: "project", isAvailable: (0, availability_1.hasDeployType)("kubernetes"), inputs: { envComponent: { type: "string", message: "environment:component", positional: true, choices: async () => (0, autocompletions_1.envAndComponents)() }, selectedPodNames: { type: "string[]", message: "Which pods to delete / restart ? 🤔 ", choices: async ctx => (0, kubernetes_1.getProjectPodNames)(await ctx.get("envComponent")) } }, execute: async ctx => { const envComponent = await ctx.get("envComponent"); await (0, ensureCluster_1.ensureCluster)(ctx, envComponent); const namespace = await (0, projects_1.getProjectNamespace)(envComponent); const selectedPodNames = await ctx.get("selectedPodNames"); ctx.log("the following pods will be DELETED 🙀 (and therefore restarted 😸)"); ctx.log(""); selectedPodNames.forEach(n => ctx.log(n)); ctx.log(""); const shouldContinue = await ctx.confirm("Continue ? 🤔 "); ctx.log(""); const k8sApi = (0, k8sApi_1.getk8sApi)(); if (shouldContinue) { for (const podName of selectedPodNames) { await k8sApi.deleteNamespacedPod(podName, namespace, "true"); ctx.log(`deleted pod '${podName}'`); } } } });