[FEATURE] Initial FTP data
This commit is contained in:
parent
8ef46ac02f
commit
7348b07352
13 changed files with 330 additions and 204 deletions
|
@ -55,6 +55,22 @@ function createServerVolume(serverSpec) {
|
|||
return volumeYaml;
|
||||
}
|
||||
|
||||
function getFtpContainer() {
|
||||
const ftpContainer = loadYaml("lib/k8s/configs/containers/ftp-server.yml");
|
||||
const ftpPortList = [
|
||||
{ p: 20, n: "ftp-data" },
|
||||
{ p: 21, n: "ftp-commands" },
|
||||
];
|
||||
for (var p = 40000; p <= 40009; p++)
|
||||
ftpPortList.push({ p, n: `ftp-passive-${p - 40000}` });
|
||||
ftpContainer.ports = ftpPortList.map(({ p: containerPort, n: name }) => ({
|
||||
containerPort,
|
||||
name,
|
||||
protocol: "TCP",
|
||||
}));
|
||||
return ftpContainer;
|
||||
}
|
||||
|
||||
function createServerDeploy(serverSpec) {
|
||||
const {
|
||||
name,
|
||||
|
@ -71,16 +87,21 @@ function createServerDeploy(serverSpec) {
|
|||
whitelist,
|
||||
} = serverSpec;
|
||||
const deployYaml = loadYaml("lib/k8s/configs/server-deployment.yml");
|
||||
const serverContainer = loadYaml(
|
||||
"lib/k8s/configs/containers/minecraft-server.yml",
|
||||
);
|
||||
const backupContainer = loadYaml(
|
||||
"lib/k8s/configs/containers/minecraft-backup.yml",
|
||||
);
|
||||
const ftpContainer = getFtpContainer();
|
||||
deployYaml.metadata.name = `mcl-${name}`;
|
||||
|
||||
deployYaml.metadata.namespace = namespace;
|
||||
deployYaml.metadata.annotations["minecluster.dunemask.net/server-name"] =
|
||||
name;
|
||||
deployYaml.spec.replicas = 0; // TODO: User control for autostart
|
||||
deployYaml.spec.selector.matchLabels.app = `mcl-${name}-app`;
|
||||
deployYaml.spec.template.metadata.labels.app = `mcl-${name}-app`;
|
||||
deployYaml.spec.template.spec.containers.splice(0, 1); //TODO: Currently removing backup container
|
||||
const serverContainer = deployYaml.spec.template.spec.containers[0];
|
||||
|
||||
const findEnv = (k) => serverContainer.env.find(({ name: n }) => n === k);
|
||||
const updateEnv = (k, v) => (findEnv.value = v);
|
||||
// Enviornment variables
|
||||
|
@ -109,7 +130,8 @@ function createServerDeploy(serverSpec) {
|
|||
deployYaml.spec.template.spec.volumes.find(
|
||||
({ name }) => name === "datadir",
|
||||
).persistentVolumeClaim.claimName = `mcl-${name}-volume`;
|
||||
deployYaml.spec.template.spec.containers[0] = serverContainer;
|
||||
deployYaml.spec.template.spec.containers.push(serverContainer);
|
||||
deployYaml.spec.template.spec.containers.push(ftpContainer);
|
||||
return deployYaml;
|
||||
}
|
||||
|
||||
|
@ -123,6 +145,20 @@ function createServerService(serverSpec) {
|
|||
serviceYaml.metadata.annotations["minecluster.dunemask.net/server-name"] =
|
||||
name;
|
||||
serviceYaml.spec.selector.app = `mcl-${name}-app`;
|
||||
|
||||
// Apply FTP Port List
|
||||
const ftpPortList = [
|
||||
{ p: 20, n: "ftp-data" },
|
||||
{ p: 21, n: "ftp-commands" },
|
||||
];
|
||||
for (var p = 40000; p <= 40009; p++)
|
||||
ftpPortList.push({ p, n: `ftp-passive-${p - 40000}` });
|
||||
serviceYaml.spec.ports = ftpPortList.map(({ p: port, n: name }) => ({
|
||||
port,
|
||||
name,
|
||||
protocol: "TCP",
|
||||
targetPort: port,
|
||||
}));
|
||||
return serviceYaml;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue