blob: 514281a1cd4088a3b926e5f02d64cb416f83cd46 [file] [log] [blame]
Serge Bazanskic684ca92021-06-12 22:02:25 +00001local kube = import "../../../kube/kube.libsonnet";
2
3{
4 local proxy = self,
5 local cfg = proxy.cfg,
6
7 cfg:: {
8 image:: "registry.k0.hswaw.net/games/factorio/modproxy:1589157915-eafe7be328477e8a6590c4210466ef12901f1b9a",
9 namespace: error "namespace must be set",
10 },
11
12 pvc: kube.PersistentVolumeClaim("proxy-cas") {
13 metadata+: {
14 namespace: cfg.namespace,
15 },
16 spec+: {
17 storageClassName: "waw-hdd-redundant-3",
18 accessModes: [ "ReadWriteOnce" ],
19 resources: {
20 requests: {
21 storage: "32Gi",
22 },
23 },
24 },
25 },
26 deploy: kube.Deployment("proxy") {
27 metadata+: {
28 namespace: "factorio",
29 },
30 spec+: {
31 template+: {
32 spec+: {
33 volumes_: {
34 cas: kube.PersistentVolumeClaimVolume(proxy.pvc),
35 },
36 containers_: {
37 proxy: kube.Container("proxy") {
38 image: cfg.image,
39 command: [
40 "/games/factorio/modproxy/modproxy",
41 "-hspki_disable",
42 "-cas_directory", "/mnt/cas",
43 "-listen_address", "0.0.0.0:4200",
44 ],
45 volumeMounts_: {
46 cas: { mountPath: "/mnt/cas" },
47 },
48 ports_: {
49 client: { containerPort: 4200 },
50 },
51 },
52 },
53 },
54 },
55 },
56 },
57 svc: kube.Service("proxy") {
58 metadata+: {
59 namespace: "factorio",
60 },
61 target_pod:: proxy.deploy.spec.template,
62 spec+: {
63 ports: [
64 { name: "client", port: 4200, targetPort: 4200, protocol: "TCP" },
65 ],
66 },
67 },
68}