[FEATURE] Massively increased loading time
This commit is contained in:
parent
b989f6efbe
commit
1a79ea7960
13 changed files with 145 additions and 55 deletions
|
@ -66,13 +66,18 @@ export function getServerAssets(serverId) {
|
|||
|
||||
if (deployments.length > 1) throw Error("Deployment filter broken!");
|
||||
if (volumes.length > 1) throw Error("Volume filter broken!");
|
||||
if (secrets.length > 1) throw Error("Secrets broken!");
|
||||
if (secrets.length > 2) throw Error("Secrets broken!");
|
||||
const serverAssets = {
|
||||
deployment: deployments[0],
|
||||
service: services.find((s) => s.metadata.name.endsWith("-server")),
|
||||
volume: volumes[0],
|
||||
rconService: services.find((s) => s.metadata.name.endsWith("-rcon")),
|
||||
rconSecret: secrets[0],
|
||||
rconSecret: secrets.find((s) =>
|
||||
s.metadata.name.endsWith("-rcon-secret"),
|
||||
),
|
||||
backupSecret: secrets.find((s) =>
|
||||
s.metadata.name.endsWith("-backup-secret"),
|
||||
),
|
||||
};
|
||||
for (var k in serverAssets) if (serverAssets[k]) return serverAssets;
|
||||
// If no assets exist, return nothing
|
||||
|
@ -96,26 +101,36 @@ export async function getContainers(serverId) {
|
|||
return deployment.spec.template.spec.containers;
|
||||
}
|
||||
|
||||
async function containerControl(serverId, deployment, scaleUp) {
|
||||
async function containerControl(serverSpec, deployment, scaleUp) {
|
||||
const { containers } = deployment.spec.template.spec;
|
||||
const depFtp = containers.find((c) => c.name.endsWith("-ftp"));
|
||||
const depServer = containers.find((c) => c.name.endsWith("-server"));
|
||||
const depBackup = containers.find((c) => c.name.endsWith("-backup"));
|
||||
const serverSpec = await getServerEntry(serverId);
|
||||
const ftpContainer = depFtp ?? getFtpContainer(serverSpec);
|
||||
const serverContainer = depServer ?? getCoreServerContainer(serverSpec);
|
||||
const backupContainer = depBackup ?? getBackupContainer(serverSpec);
|
||||
if (scaleUp) return [ftpContainer, serverContainer];
|
||||
if (scaleUp && serverSpec.backupEnabled)
|
||||
return [ftpContainer, serverContainer, backupContainer];
|
||||
else if (scaleUp) return [ftpContainer, serverContainer];
|
||||
return [ftpContainer];
|
||||
}
|
||||
|
||||
export function terminationControl(containers) {
|
||||
return containers.length > 1 ? 30 /*seconds*/ : 1 /*seconds */;
|
||||
}
|
||||
|
||||
export async function toggleServer(serverId, scaleUp = false) {
|
||||
const deployment = await getDeployment(serverId);
|
||||
deployment.spec.template.spec.containers = await containerControl(
|
||||
serverId,
|
||||
deployment,
|
||||
scaleUp,
|
||||
);
|
||||
const [deployment, serverSpec] = await Promise.all([
|
||||
getDeployment(serverId),
|
||||
getServerEntry(serverId),
|
||||
]);
|
||||
const containers = await containerControl(serverSpec, deployment, scaleUp);
|
||||
const ts = terminationControl(containers);
|
||||
|
||||
// Speed up container termination if not running a server
|
||||
deployment.spec.template.spec.terminationGracePeriodSeconds = ts;
|
||||
deployment.spec.template.spec.containers = containers;
|
||||
|
||||
return k8sDeps.replaceNamespacedDeployment(
|
||||
deployment.metadata.name,
|
||||
namespace,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue