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); }