cluster/kube/metallb: parametrize address pools
diff --git a/cluster/kube/cluster.jsonnet b/cluster/kube/cluster.jsonnet
index 800e47a..2f6da45 100644
--- a/cluster/kube/cluster.jsonnet
+++ b/cluster/kube/cluster.jsonnet
@@ -51,7 +51,13 @@
     // Metrics Server
     metrics: metrics.Environment {},
     // Metal Load Balancer
-    metallb: metallb.Environment {},
+    metallb: metallb.Environment {
+        cfg+: {
+            addressPools: [
+                { name: "public-v4-1", protocol: "layer2", addresses: ["185.236.240.50-185.236.240.63"] },
+            ],
+        },
+    },
     // Main nginx Ingress Controller
     nginx: nginx.Environment {},
 };
diff --git a/cluster/kube/lib/metallb.libsonnet b/cluster/kube/lib/metallb.libsonnet
index fd682b7..07fbcc0 100644
--- a/cluster/kube/lib/metallb.libsonnet
+++ b/cluster/kube/lib/metallb.libsonnet
@@ -27,6 +27,7 @@
             version:: "master",
             imageController: "metallb/controller:" + cfg.version,
             imageSpeaker: "metallb/speaker:" + cfg.version,
+            addressPools: error "addressPools must be set in config",
         },
 
         ns: if cfg.namespaceCreate then kube.Namespace(cfg.namespace),
@@ -187,13 +188,7 @@
             },
             data: {
                 config: std.manifestYamlDoc({
-                    "address-pools": [
-                        {
-                            name: "public-v4-1",
-                            protocol: "layer2",
-                            addresses: ["185.236.240.50-185.236.240.63",],
-                        }
-                    ],
+                    "address-pools": cfg.addressPools,
                 }),
             },
         },