UNPKG

@catladder/cli

Version:

Panter cli tool for cloud CI/CD and DevOps

43 lines (42 loc) 1.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.commandGetShell = void 0; const defineCommand_1 = require("../../../core/defineCommand"); const kubernetes_1 = require("../../../kubernetes"); const projects_1 = require("../../../utils/projects"); const shell_1 = require("../../../utils/shell"); 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.commandGetShell = (0, defineCommand_1.defineCommand)({ name: "project k8s get-shell", description: "get a shell to a pod in the environment", group: "project", isAvailable: (0, availability_1.hasDeployType)("kubernetes"), inputs: { envComponent: { type: "string", message: "environment:component", positional: true, choices: async () => (0, autocompletions_1.envAndComponents)() }, podName: { type: "string", message: "Which pod? 🤔", choices: async ctx => { const envComponent = await ctx.get("envComponent"); const pods = await (0, kubernetes_1.getProjectPods)(envComponent); return pods.filter(p => p.status.phase == "Running").map(r => r.metadata.name); } } }, 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 podName = await ctx.get("podName"); return (0, shell_1.getShell)(namespace, podName); } });