@catladder/cli
Version:
Panter cli tool for cloud CI/CD and DevOps
51 lines (50 loc) • 2 kB
JavaScript
;
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}'`);
}
}
}
});