Files
kuber/command/stop.ts
T

37 lines
1015 B
TypeScript

import { defineCommand } from "citty";
import { Listr } from "listr2";
import { assertManagedNamespace } from "../lib/apply";
import {
getProject,
listManagedDeployments,
scaleDeployment,
} from "../lib/shared";
export const stop = defineCommand({
meta: {
name: "stop",
description: "Scale managed deployments to zero",
},
async run() {
await assertManagedNamespace(getProject());
const deployments = await listManagedDeployments();
if (deployments.length === 0) return;
await new Listr([
{
title: "Scale deployments",
task: (_ctx, task) => {
task.output = `${deployments.length} deployments queued`;
return task.newListr(
deployments.map((deployment) => ({
title: `Deployment ${deployment.metadata?.name}`,
task: () => scaleDeployment(deployment.metadata!.name!, 0),
})),
{ concurrent: false, exitOnError: true },
);
},
},
]).run();
},
});