blob: d71dd8495daebeb51e0bbc2c0fb1d59f7280ecef [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,
Serge Bazanski8483d372020-11-10 22:07:30 +010014 oauth2: {
15 clientID: "matrix",
16 clientSecret: { secretKeyRef: { name: "oauth2-cas-proxy", key: "oauth2_secret" } },
17 scope: "profile:read",
18 authorizeURL: "https://sso.hackerspace.pl/oauth/authorize",
19 tokenURL: "https://sso.hackerspace.pl/oauth/token",
20 userinfoURL: "https://sso.hackerspace.pl/api/1/profile",
21 },
Serge Bazanskiace32c02020-11-03 22:04:06 +010022 },
Serge Bazanski60076c72020-11-03 19:17:25 +010023 },
24
25 appservices: {
26 "irc-freenode": irc.AppServiceIrc("freenode") {
27 cfg+: {
Serge Bazanskiace32c02020-11-03 22:04:06 +010028 image: cfg.images.appserviceIRC,
Serge Bazanski60076c72020-11-03 19:17:25 +010029 // TODO(q3k): move this appservice to waw-hdd-redundant-3
30 storageClassName: "waw-hdd-paranoid-2",
31 metadata: app.metadata("appservice-irc-freenode"),
32 // TODO(q3k): add labels to blessed nodes
33 nodeSelector: {
34 "kubernetes.io/hostname": "bc01n03.hswaw.net",
35 },
36 config+: {
37 homeserver+: {
38 url: "https://%s" % [cfg.webDomain],
39 domain: "%s" % [cfg.serverName],
40 },
41 ircService+: {
42 servers+: {
43 "irc.freenode.net"+: {
44 ircClients+: {
45 maxClients: 150,
46 },
47 },
48 },
49 },
50 },
51 },
52 },
53 "telegram-prod": telegram.AppServiceTelegram("prod") {
54 cfg+: {
Serge Bazanskiace32c02020-11-03 22:04:06 +010055 image: cfg.images.appserviceTelegram,
Serge Bazanski60076c72020-11-03 19:17:25 +010056 storageClassName: cfg.storageClassName,
57 metadata: app.metadata("appservice-telegram-prod"),
58
59 config+: {
60 homeserver+: {
61 address: "https://%s" % [cfg.webDomain],
62 domain: cfg.serverName,
63 },
64 appservice+: {
65 id: "telegram",
66 },
67 telegram+: {
68 api_id: (std.split(importstr "secrets/plain/appservice-telegram-prod-api-id", "\n"))[0],
69 api_hash: (std.split(importstr "secrets/plain/appservice-telegram-prod-api-hash", "\n"))[0],
70 bot_token: (std.split(importstr "secrets/plain/appservice-telegram-prod-token", "\n"))[0],
71 },
72 bridge+: {
73 permissions+: {
74 "hackerspace.pl": "puppeting",
75 "@q3k:hackerspace.pl": "admin",
76 },
77 },
78 },
79 },
80 },
81 },
82}