matrix: refactor synapse into library
This is in prepration for bringing up a Matrix server for hsp.sh.
Verified to cause no diff on prod.
Change-Id: Ied2de210692e3ddfdb1d3f37b12893b214c34b0b
diff --git a/app/matrix/matrix.hackerspace.pl.jsonnet b/app/matrix/matrix.hackerspace.pl.jsonnet
new file mode 100644
index 0000000..bbfa27c
--- /dev/null
+++ b/app/matrix/matrix.hackerspace.pl.jsonnet
@@ -0,0 +1,71 @@
+local matrix = import "lib/matrix.libsonnet";
+local irc = import "lib/appservice-irc.libsonnet";
+local telegram = import "lib/appservice-telegram.libsonnet";
+
+matrix {
+ local app = self,
+ local cfg = app.cfg,
+ cfg+:: {
+ namespace: "matrix",
+ webDomain: "matrix.hackerspace.pl",
+ serverName: "hackerspace.pl",
+ },
+
+ appservices: {
+ "irc-freenode": irc.AppServiceIrc("freenode") {
+ cfg+: {
+ image: cfg.appserviceIRCImage,
+ // TODO(q3k): move this appservice to waw-hdd-redundant-3
+ storageClassName: "waw-hdd-paranoid-2",
+ metadata: app.metadata("appservice-irc-freenode"),
+ // TODO(q3k): add labels to blessed nodes
+ nodeSelector: {
+ "kubernetes.io/hostname": "bc01n03.hswaw.net",
+ },
+ config+: {
+ homeserver+: {
+ url: "https://%s" % [cfg.webDomain],
+ domain: "%s" % [cfg.serverName],
+ },
+ ircService+: {
+ servers+: {
+ "irc.freenode.net"+: {
+ ircClients+: {
+ maxClients: 150,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ "telegram-prod": telegram.AppServiceTelegram("prod") {
+ cfg+: {
+ image: cfg.appserviceTelegramImage,
+ storageClassName: cfg.storageClassName,
+ metadata: app.metadata("appservice-telegram-prod"),
+
+ config+: {
+ homeserver+: {
+ address: "https://%s" % [cfg.webDomain],
+ domain: cfg.serverName,
+ },
+ appservice+: {
+ id: "telegram",
+ },
+ telegram+: {
+ api_id: (std.split(importstr "secrets/plain/appservice-telegram-prod-api-id", "\n"))[0],
+ api_hash: (std.split(importstr "secrets/plain/appservice-telegram-prod-api-hash", "\n"))[0],
+ bot_token: (std.split(importstr "secrets/plain/appservice-telegram-prod-token", "\n"))[0],
+ },
+ bridge+: {
+ permissions+: {
+ "hackerspace.pl": "puppeting",
+ "@q3k:hackerspace.pl": "admin",
+ },
+ },
+ },
+ },
+ },
+ },
+}