[FEATURE] Adjust server control
This commit is contained in:
parent
7348b07352
commit
62c966a6bd
8 changed files with 109 additions and 57 deletions
|
@ -1,5 +1,5 @@
|
|||
import k8s from "@kubernetes/client-node";
|
||||
import { VERB } from "../util/logging.js";
|
||||
import { VERB, ERR } from "../util/logging.js";
|
||||
const kc = new k8s.KubeConfig();
|
||||
kc.loadFromDefault();
|
||||
|
||||
|
@ -13,7 +13,7 @@ const mineclusterManaged = (o) =>
|
|||
o.metadata.annotations &&
|
||||
o.metadata.annotations["minecluster.dunemask.net/server-name"] !== undefined;
|
||||
|
||||
const serverMatch = (serverName) => (o) =>
|
||||
export const serverMatch = (serverName) => (o) =>
|
||||
o.metadata.annotations["minecluster.dunemask.net/server-name"] === serverName;
|
||||
|
||||
export async function getDeployments() {
|
||||
|
@ -72,7 +72,7 @@ export function getServerAssets(serverName) {
|
|||
for (var k in serverAssets) if (serverAssets[k]) return serverAssets;
|
||||
// If no assets exist, return nothing
|
||||
})
|
||||
.catch((e) => console.log(e));
|
||||
.catch((e) => ERR("SERVER ASSETS", e));
|
||||
}
|
||||
|
||||
export async function getDeployment(serverName) {
|
||||
|
@ -82,13 +82,26 @@ export async function getDeployment(serverName) {
|
|||
s.metadata.annotations["minecluster.dunemask.net/server-name"] ===
|
||||
serverName,
|
||||
);
|
||||
if (!serverDeployment) {
|
||||
console.log(servers.map((s) => s.metadata.annotations));
|
||||
if (!serverDeployment)
|
||||
throw Error(`MCL Deployment '${serverName}' could not be found!`);
|
||||
}
|
||||
|
||||
return serverDeployment;
|
||||
}
|
||||
|
||||
export async function toggleServer(serverName, scaleUp = false) {
|
||||
const deployment = await getDeployment(serverName);
|
||||
const { containers } = deployment.spec.template.spec;
|
||||
const ftpContainer = containers.find((c) => c.name.endsWith("-ftp"));
|
||||
|
||||
res.sendStatus(200);
|
||||
deployment.spec.template.spec.containers = containers;
|
||||
return k8sDeps.replaceNamespacedDeployment(
|
||||
deployment.metadata.name,
|
||||
namespace,
|
||||
deployment,
|
||||
);
|
||||
}
|
||||
|
||||
export async function scaleDeployment(serverName, scaleUp = false) {
|
||||
const deployment = await getDeployment(serverName);
|
||||
if (deployment.spec.replicas === 1 && scaleUp)
|
||||
|
@ -97,6 +110,7 @@ export async function scaleDeployment(serverName, scaleUp = false) {
|
|||
`MCL Deployment '${serverName}' is already scaled! Ignoring scale adjustment.`,
|
||||
);
|
||||
deployment.spec.replicas = scaleUp ? 1 : 0;
|
||||
|
||||
return k8sDeps.replaceNamespacedDeployment(
|
||||
deployment.metadata.name,
|
||||
namespace,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue