Merge "games/factorio: set default storage to waw-hdd-redundant-3"
diff --git a/games/factorio/kube/prod.jsonnet b/games/factorio/kube/prod.jsonnet
index eb200c9..181c206 100644
--- a/games/factorio/kube/prod.jsonnet
+++ b/games/factorio/kube/prod.jsonnet
@@ -1,4 +1,5 @@
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`
@@ -12,74 +13,21 @@
{
local prod = self,
- proxyImage:: "registry.k0.hswaw.net/games/factorio/modproxy:1589157915-eafe7be328477e8a6590c4210466ef12901f1b9a",
-
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,
- 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" },
- ],
- },
+ proxy: proxy {
+ cfg+: {
+ namespace: "factorio",
},
},
diff --git a/games/factorio/kube/proxy.libsonnet b/games/factorio/kube/proxy.libsonnet
new file mode 100644
index 0000000..514281a
--- /dev/null
+++ b/games/factorio/kube/proxy.libsonnet
@@ -0,0 +1,68 @@
+local kube = import "../../../kube/kube.libsonnet";
+
+{
+ local proxy = self,
+ local cfg = proxy.cfg,
+
+ cfg:: {
+ image:: "registry.k0.hswaw.net/games/factorio/modproxy:1589157915-eafe7be328477e8a6590c4210466ef12901f1b9a",
+ namespace: error "namespace must be set",
+ },
+
+ pvc: kube.PersistentVolumeClaim("proxy-cas") {
+ metadata+: {
+ namespace: cfg.namespace,
+ },
+ 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(proxy.pvc),
+ },
+ containers_: {
+ proxy: kube.Container("proxy") {
+ image: cfg.image,
+ 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:: proxy.deploy.spec.template,
+ spec+: {
+ ports: [
+ { name: "client", port: 4200, targetPort: 4200, protocol: "TCP" },
+ ],
+ },
+ },
+}