blob: e882636c1a397252d80f00ab560f6957ca231cd8 [file] [log] [blame]
Serge Bazanski60076c72020-11-03 19:17:25 +01001local matrix = import "lib/matrix.libsonnet";
2local irc = import "lib/appservice-irc.libsonnet";
3local telegram = import "lib/appservice-telegram.libsonnet";
4
5matrix {
6 local app = self,
7 local cfg = app.cfg,
8 cfg+:: {
9 namespace: "matrix",
10 webDomain: "matrix.hackerspace.pl",
11 serverName: "hackerspace.pl",
Serge Bazanskiace32c02020-11-03 22:04:06 +010012 cas: {
13 enable: true,
14 },
Serge Bazanski60076c72020-11-03 19:17:25 +010015 },
16
17 appservices: {
18 "irc-freenode": irc.AppServiceIrc("freenode") {
19 cfg+: {
Serge Bazanskiace32c02020-11-03 22:04:06 +010020 image: cfg.images.appserviceIRC,
Serge Bazanski60076c72020-11-03 19:17:25 +010021 // TODO(q3k): move this appservice to waw-hdd-redundant-3
22 storageClassName: "waw-hdd-paranoid-2",
23 metadata: app.metadata("appservice-irc-freenode"),
24 // TODO(q3k): add labels to blessed nodes
25 nodeSelector: {
26 "kubernetes.io/hostname": "bc01n03.hswaw.net",
27 },
28 config+: {
29 homeserver+: {
30 url: "https://%s" % [cfg.webDomain],
31 domain: "%s" % [cfg.serverName],
32 },
33 ircService+: {
34 servers+: {
35 "irc.freenode.net"+: {
36 ircClients+: {
37 maxClients: 150,
38 },
39 },
40 },
41 },
42 },
43 },
44 },
45 "telegram-prod": telegram.AppServiceTelegram("prod") {
46 cfg+: {
Serge Bazanskiace32c02020-11-03 22:04:06 +010047 image: cfg.images.appserviceTelegram,
Serge Bazanski60076c72020-11-03 19:17:25 +010048 storageClassName: cfg.storageClassName,
49 metadata: app.metadata("appservice-telegram-prod"),
50
51 config+: {
52 homeserver+: {
53 address: "https://%s" % [cfg.webDomain],
54 domain: cfg.serverName,
55 },
56 appservice+: {
57 id: "telegram",
58 },
59 telegram+: {
60 api_id: (std.split(importstr "secrets/plain/appservice-telegram-prod-api-id", "\n"))[0],
61 api_hash: (std.split(importstr "secrets/plain/appservice-telegram-prod-api-hash", "\n"))[0],
62 bot_token: (std.split(importstr "secrets/plain/appservice-telegram-prod-token", "\n"))[0],
63 },
64 bridge+: {
65 permissions+: {
66 "hackerspace.pl": "puppeting",
67 "@q3k:hackerspace.pl": "admin",
68 },
69 },
70 },
71 },
72 },
73 },
74}