60 lines
1.7 KiB
JavaScript
60 lines
1.7 KiB
JavaScript
![]() |
import k8s from "@kubernetes/client-node";
|
||
|
import {
|
||
|
createExtraService,
|
||
|
createBackupSecret,
|
||
|
createServerService,
|
||
|
} from "./server-create.js";
|
||
|
import kc from "./k8s-config.js";
|
||
|
import { getServerAssets } from "./k8s-server-control.js";
|
||
|
const k8sCore = kc.makeApiClient(k8s.CoreV1Api);
|
||
|
const namespace = process.env.MCL_SERVER_NAMESPACE;
|
||
|
|
||
|
export default async function modifyServerResources(modifySpec) {
|
||
|
const { id: serverId } = modifySpec;
|
||
|
const serverAssets = await getServerAssets(serverId);
|
||
|
const serverService = createServerService(modifySpec);
|
||
|
const extraService = createExtraService(modifySpec);
|
||
|
const backupSecret = createBackupSecret(modifySpec);
|
||
|
const serverResources = [];
|
||
|
|
||
|
if (!!serverService)
|
||
|
// Will Always Exist
|
||
|
serverResources.push(
|
||
|
k8sCore.replaceNamespacedService(
|
||
|
serverAssets.service.metadata.name,
|
||
|
namespace,
|
||
|
serverService,
|
||
|
),
|
||
|
);
|
||
|
|
||
|
if (!!extraService && !!serverAssets.extraService)
|
||
|
// Might not exist
|
||
|
serverResources.push(
|
||
|
k8sCore.replaceNamespacedService(
|
||
|
serverAssets.extraService.metadata.name,
|
||
|
namespace,
|
||
|
extraService,
|
||
|
),
|
||
|
);
|
||
|
else if (!!extraService)
|
||
|
serverResources.push(
|
||
|
k8sCore.createNamespacedService(namespace, extraService),
|
||
|
);
|
||
|
|
||
|
if (!!backupSecret && !!serverAssets.backupSecret)
|
||
|
// Might not exist
|
||
|
serverResources.push(
|
||
|
k8sCore.replaceNamespacedSecret(
|
||
|
serverAssets.backupSecret.metadata.name,
|
||
|
namespace,
|
||
|
backupSecret,
|
||
|
),
|
||
|
);
|
||
|
else if (!!backupSecret)
|
||
|
serverResources.push(
|
||
|
k8sCore.createNamespacedSecret(namespace, backupSecret),
|
||
|
);
|
||
|
|
||
|
return await Promise.all(serverResources);
|
||
|
}
|