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,
}),
},
},