cluster: add ceph-waw3, move metallb to bgp

Change-Id: Iebf369f9a02e44be163ef4afc2e0f23c4b009898
diff --git a/cluster/kube/lib/metallb.libsonnet b/cluster/kube/lib/metallb.libsonnet
index 7f3d746..ad58964 100644
--- a/cluster/kube/lib/metallb.libsonnet
+++ b/cluster/kube/lib/metallb.libsonnet
@@ -25,9 +25,10 @@
         cfg:: {
             namespace: "metallb-system",
             namespaceCreate: true,
-            version:: "v0.7.3",
+            version:: "v0.8.3",
             imageController: "metallb/controller:" + cfg.version,
-            imageSpeaker: "metallb/speaker:" + cfg.version,
+            //imageSpeaker: "metallb/speaker:" + cfg.version,
+            imageSpeaker: "derq3k/metallb-speaker:20191101-180123",
             addressPools: error "addressPools must be set in config",
         },
 
@@ -76,6 +77,11 @@
                     resources: ["services", "endpoints", "nodes"],
                     verbs: ["get", "list", "watch"],
                 },
+                {
+                    apiGroups: [""],
+                    resources: ["events"],
+                    verbs: ["create", "patch"],
+                },
             ],
         },
 
@@ -165,6 +171,7 @@
                                 args: [ "--port=7472", "--config=config" ],
                                 env_: {
                                     METALLB_NODE_NAME: kube.FieldRef("spec.nodeName"),
+                                    METALLB_HOST: kube.FieldRef("status.hostIP"),
                                 },
                                 ports: [
                                     { name: "monitoring", containerPort: 7472 },
@@ -174,7 +181,7 @@
                                 },
                                 securityContext: {
                                     allowPrivilegeEscalation: false,
-                                    capabilities: { drop: [ "all" ], add: [ "net_raw" ] },
+                                    capabilities: { drop: [ "all" ], add: [ "NET_ADMIN", "NET_RAW", "SYS_ADMIN" ] },
                                     readOnlyRootFilesystem: true,
                                 },
                             },
@@ -192,6 +199,7 @@
             data: {
                 config: std.manifestYamlDoc({
                     "address-pools": cfg.addressPools,
+                    "peers": cfg.peers,
                 }),
             },
         },