local factorio = import "factorio.libsonnet"; local proxy = import "proxy.libsonnet"; local kube = import "../../../kube/kube.libsonnet"; // This deploys factorio instances and the modproxy in the `factorio` // Kubernetes namespace. // // Available factorio versions: // - 1.0.0-1 // - 1.1.34-1 // - 1.1.35-1 // - 1.1.50-1 // See: //third_party/factorio. { local prod = self, namespace: kube.Namespace("factorio"), // instance makes a factorio server with a given name and at a // given tag/version. instance(name, tag):: factorio { cfg+: { namespace: "factorio", prefix: name + "-", tag: tag, } }, proxy: proxy { cfg+: { namespace: "factorio", }, }, local mod = function(name, version) { name: name, version: version }, pymods: prod.instance("pymods", "1.1.50-1") { cfg+: { // Bump up to 2G/2CPU request/limit. resources: { requests: { cpu: "2", memory: "2Gi", }, limits: self.requests, }, mods: [ // Stdlib for mods mod("stdlib", "1.4.6"), // General QOL // Better loaders mod("LoaderRedux", "1.7.1"), mod("LoaderReduxForFactorioExtendedPlus", "1.1.0"), // Trains mod("traintunnels", "0.0.11"), mod("FARL", "4.1.2"), // Move between buildings mod("Squeak Through", "1.8.2"), // Requirements calculator mod("helmod", "0.12.5"), // Compact loaders for easier and faster transportation mod("deadlock-beltboxes-loaders", "2.4.2"), // Better inserters mod("bobinserters", "1.1.0"), // Teleport to tags for easier movement with huge server mod("TagToTeleport", "1.1.1"), // Necessary for PYmods to get proper list of ingredients for the next step mod("what-is-it-really-used-for", "1.6.0"), // Resource monitor mod("YARM", "0.8.203"), // YEET mod("RenaiTransportation", "0.8.6"), // PYmods mod("pypetroleumhandling", "2.0.6"), mod("pyrawores", "2.2.7"), mod("pyraworesgraphics", "1.0.9"), mod("pycoalprocessing", "1.9.3"), mod("pycoalprocessinggraphics", "1.0.9"), // Resource overhaul mod("rso-mod", "6.2.6"), // mciancia mod("Warehousing", "0.5.2"), mod("AbandonedRuins", "1.1.4"), mod("Factorissimo2", "2.5.2"), ], }, }, }