hswaw/capacifier: rewrite it in go

This reimplements capacifier, one of the earliest
just-some-flask-code-on-boston-packets services, in Go.

It's a minimum reimplementation, as this service is generally deprecated
- but some stuff still depends on it. So we do away with capacifier v0's
bespoke rule language and just hardcode everything. It's not like any of
these rules ever changed, anyway.

This is not yet deployed.

Change-Id: Id65ef92784a524c32ae5223cd5460736ac683116
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1509
Reviewed-by: ironbound <ironbound@hackerspace.pl>
diff --git a/hswaw/kube/hswaw.jsonnet b/hswaw/kube/hswaw.jsonnet
index 9a1bec7..7918043 100644
--- a/hswaw/kube/hswaw.jsonnet
+++ b/hswaw/kube/hswaw.jsonnet
@@ -8,6 +8,7 @@
 local pretalx = import "pretalx.libsonnet";
 local cebulacamp = import "cebulacamp.libsonnet";
 local site = import "site.libsonnet";
+local capacifier = import "capacifier.libsonnet";
 
 {
     hswaw(name):: mirko.Environment(name) {
@@ -22,6 +23,7 @@
             pretalx: pretalx.cfg,
             cebulacamp: cebulacamp.cfg,
             site: site.cfg,
+            capacifier: capacifier.cfg,
         },
 
         components: {
@@ -33,6 +35,7 @@
             pretalx: pretalx.component(cfg.pretalx, env),
             cebulacamp: cebulacamp.component(cfg.cebulacamp, env),
             site: site.component(cfg.site, env),
+            capacifier: capacifier.component(cfg.capacifier, env),
         },
     },
 
@@ -75,6 +78,9 @@
             site+: {
                 webFQDN: "new.hackerspace.pl",
             },
+            capacifier+: {
+                ldapBindPassword: std.base64(std.split(importstr "secrets/plain/prod-capacifier-password", "\n")[0]),
+            },
         },
     },
 }