(feature) Update UI & Resource Availability
This commit is contained in:
parent
11d8229eb5
commit
929193d272
44 changed files with 4747 additions and 27 deletions
19
lib/routes/server-route.js
Normal file
19
lib/routes/server-route.js
Normal file
|
@ -0,0 +1,19 @@
|
|||
import { Router, json as jsonMiddleware } from "express";
|
||||
import {
|
||||
startServer,
|
||||
stopServer,
|
||||
serverList,
|
||||
getServers,
|
||||
} from "../k8s/server-control.js";
|
||||
import createServer from "../k8s/server-create.js";
|
||||
import deleteServer from "../k8s/server-delete.js";
|
||||
const router = Router();
|
||||
router.use(jsonMiddleware());
|
||||
// Routes
|
||||
router.post("/create", createServer);
|
||||
router.delete("/delete", deleteServer);
|
||||
router.post("/start", startServer);
|
||||
router.post("/stop", stopServer);
|
||||
router.get("/list", serverList);
|
||||
router.get("/instances", getServers);
|
||||
export default router;
|
27
lib/routes/system-route.js
Normal file
27
lib/routes/system-route.js
Normal file
|
@ -0,0 +1,27 @@
|
|||
import { Router } from "express";
|
||||
import k8s from "@kubernetes/client-node";
|
||||
import { WARN } from "../util/logging.js";
|
||||
const router = Router();
|
||||
const kc = new k8s.KubeConfig();
|
||||
kc.loadFromDefault();
|
||||
const k8sApi = kc.makeApiClient(k8s.CoreV1Api);
|
||||
// Get Routes
|
||||
router.get("/available", (req, res) => {
|
||||
k8sApi.listNode().then((nodeRes) => {
|
||||
const nodeAllocatable = nodeRes.body.items.map((i) => i.status.allocatable);
|
||||
const nodeResources = nodeAllocatable.map(({ cpu, memory }) => ({
|
||||
cpu,
|
||||
memory,
|
||||
}));
|
||||
const { cpu: clusterCpu, memory: clusterMemory } = nodeResources[0];
|
||||
const isIdentical = ({ cpu, memory }) =>
|
||||
clusterMemory === memory && clusterCpu === cpu;
|
||||
if (!nodeResources.every(isIdentical))
|
||||
WARN("ROUTES", "Warning, node resources were non-consistent");
|
||||
const availableCpu = parseInt(clusterCpu) * 1000;
|
||||
const availableMemory = parseInt(clusterMemory) / 1024;
|
||||
res.json({ cpu: availableCpu, memory: availableMemory });
|
||||
});
|
||||
});
|
||||
|
||||
export default router;
|
6
lib/routes/vitals-route.js
Normal file
6
lib/routes/vitals-route.js
Normal file
|
@ -0,0 +1,6 @@
|
|||
import { Router } from "express";
|
||||
const router = Router();
|
||||
// Get Routes
|
||||
router.get("/healthz", (req, res) => res.sendStatus(200));
|
||||
|
||||
export default router;
|
Loading…
Add table
Add a link
Reference in a new issue