forked from hswaw/hscloud
88 lines
2.8 KiB
Plaintext
88 lines
2.8 KiB
Plaintext
|
local factorio = import "factorio.libsonnet";
|
||
|
local kube = import "../../../kube/kube.libsonnet";
|
||
|
|
||
|
// This deploys factorio instances and the modproxy in the `factorio`
|
||
|
// Kubernetes namespace.
|
||
|
//
|
||
|
// Available factorio versions:
|
||
|
// - 0.18.40-1
|
||
|
// - 1.0.0-1
|
||
|
// See: //third_party/factorio.
|
||
|
|
||
|
{
|
||
|
local prod = self,
|
||
|
|
||
|
proxyImage:: "registry.k0.hswaw.net/games/factorio/modproxy:1589157915-eafe7be328477e8a6590c4210466ef12901f1b9a",
|
||
|
|
||
|
namespace: kube.Namespace("factorio"),
|
||
|
instance(name, tag):: factorio {
|
||
|
cfg+: {
|
||
|
namespace: "factorio",
|
||
|
prefix: name + "-",
|
||
|
tag: tag,
|
||
|
proxyImage: prod.proxyImage,
|
||
|
}
|
||
|
},
|
||
|
|
||
|
proxy: {
|
||
|
pvc: kube.PersistentVolumeClaim("proxy-cas") {
|
||
|
metadata+: {
|
||
|
namespace: "factorio",
|
||
|
},
|
||
|
spec+: {
|
||
|
storageClassName: "waw-hdd-redundant-3",
|
||
|
accessModes: [ "ReadWriteOnce" ],
|
||
|
resources: {
|
||
|
requests: {
|
||
|
storage: "32Gi",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
deploy: kube.Deployment("proxy") {
|
||
|
metadata+: {
|
||
|
namespace: "factorio",
|
||
|
},
|
||
|
spec+: {
|
||
|
template+: {
|
||
|
spec+: {
|
||
|
volumes_: {
|
||
|
cas: kube.PersistentVolumeClaimVolume(prod.proxy.pvc),
|
||
|
},
|
||
|
containers_: {
|
||
|
proxy: kube.Container("proxy") {
|
||
|
image:prod.proxyImage,
|
||
|
command: [
|
||
|
"/games/factorio/modproxy/modproxy",
|
||
|
"-hspki_disable",
|
||
|
"-cas_directory", "/mnt/cas",
|
||
|
"-listen_address", "0.0.0.0:4200",
|
||
|
],
|
||
|
volumeMounts_: {
|
||
|
cas: { mountPath: "/mnt/cas" },
|
||
|
},
|
||
|
ports_: {
|
||
|
client: { containerPort: 4200 },
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
svc: kube.Service("proxy") {
|
||
|
metadata+: {
|
||
|
namespace: "factorio",
|
||
|
},
|
||
|
target_pod:: prod.proxy.deploy.spec.template,
|
||
|
spec+: {
|
||
|
ports: [
|
||
|
{ name: "client", port: 4200, targetPort: 4200, protocol: "TCP" },
|
||
|
],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
|
||
|
local mod = function(name, version) { name: name, version: version },
|
||
|
}
|