[FEATURE] Extra Port implimentation
This commit is contained in:
parent
2884709bb1
commit
6270c5e421
8 changed files with 82 additions and 20 deletions
|
@ -19,6 +19,37 @@ const namespace = process.env.MCL_SERVER_NAMESPACE;
|
|||
|
||||
const loadYaml = (f) => yaml.load(fs.readFileSync(path.resolve(f), "utf8"));
|
||||
|
||||
function createExtraService(serverSpec) {
|
||||
const { mclName, id, extraPorts } = serverSpec;
|
||||
if (!extraPorts) return;
|
||||
const serviceYaml = loadYaml("lib/k8s/configs/extra-svc.yml");
|
||||
serviceYaml.metadata.labels.app = `mcl-${mclName}-app`;
|
||||
serviceYaml.metadata.name = `mcl-${mclName}-extra`;
|
||||
serviceYaml.metadata.namespace = namespace;
|
||||
serviceYaml.metadata.annotations["minecluster.dunemask.net/id"] = id;
|
||||
serviceYaml.spec.selector.app = `mcl-${mclName}-app`;
|
||||
// Port List:
|
||||
const portList = extraPorts.map((p) => ({
|
||||
port: parseInt(p),
|
||||
name: `mcl-extra-${p}`,
|
||||
}));
|
||||
const tcpPorts = portList.map(({ port, name }) => ({
|
||||
port,
|
||||
name: `${name}-tcp`,
|
||||
protocol: "TCP",
|
||||
targetPort: port,
|
||||
}));
|
||||
const udpPorts = portList.map(({ port, name }) => ({
|
||||
port,
|
||||
name: `${name}-udp`,
|
||||
protocol: "UDP",
|
||||
targetPort: port,
|
||||
}));
|
||||
|
||||
serviceYaml.spec.ports = [...tcpPorts, ...udpPorts];
|
||||
return serviceYaml;
|
||||
}
|
||||
|
||||
function createBackupSecret(serverSpec) {
|
||||
if (!serverSpec.backupEnabled) return; // If backup not defined, don't create RCLONE secret
|
||||
const { mclName, id, backupId, backupKey, backupHost } = serverSpec;
|
||||
|
@ -161,10 +192,26 @@ export default async function createServerResources(createSpec) {
|
|||
const serverDeploy = createServerDeploy(createSpec);
|
||||
const serverService = createServerService(createSpec);
|
||||
const rconService = createRconService(createSpec);
|
||||
k8sCore.createNamespacedPersistentVolumeClaim(namespace, serverVolume);
|
||||
if (!!backupSecret) k8sCore.createNamespacedSecret(namespace, backupSecret);
|
||||
k8sCore.createNamespacedSecret(namespace, rconSecret);
|
||||
k8sCore.createNamespacedService(namespace, serverService);
|
||||
k8sCore.createNamespacedService(namespace, rconService);
|
||||
k8sDeps.createNamespacedDeployment(namespace, serverDeploy);
|
||||
const extraService = createExtraService(createSpec);
|
||||
const serverResources = [];
|
||||
serverResources.push(
|
||||
k8sCore.createNamespacedPersistentVolumeClaim(namespace, serverVolume),
|
||||
);
|
||||
if (!!extraService)
|
||||
serverResources.push(
|
||||
k8sCore.createNamespacedService(namespace, extraService),
|
||||
);
|
||||
if (!!backupSecret)
|
||||
serverResources.push(
|
||||
k8sCore.createNamespacedSecret(namespace, backupSecret),
|
||||
);
|
||||
serverResources.push(k8sCore.createNamespacedSecret(namespace, rconSecret));
|
||||
serverResources.push(
|
||||
k8sCore.createNamespacedService(namespace, serverService),
|
||||
);
|
||||
serverResources.push(k8sCore.createNamespacedService(namespace, rconService));
|
||||
serverResources.push(
|
||||
k8sDeps.createNamespacedDeployment(namespace, serverDeploy),
|
||||
);
|
||||
return await Promise.all(serverResources);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue