Commit Graph

25 Commits (5d94a7b434c3b99c2677d15076f32b14316523b2)

Author SHA1 Message Date
q3k abca7901a2 app/matrix: bump riot to 1.7.29
Change-Id: I26c99f110abb7a68320587d7056558403b34a122
2021-06-06 14:23:26 +00:00
viq a1501ab250 matrix: bump version and remove default options
Change-Id: I3b66b5869957b574b0d5e58d52d45ff5832bccbc
2021-06-06 13:10:36 +00:00
q3k 972e54651c app/matrix: appservice-irc: use secret in bootstrap job
Previously: 856b216459 switched to using a
Secret instead of a ConfigMap for appservice-irc. That however didn't
update the bootstrap job which still used the ConfigMap. This fixes
that.

Change-Id: I50f33935691678ce24ecf4e04d7ce1b13c184929
2021-06-06 12:59:25 +00:00
q3k 856b216459 matrix.hackerspace.pl: add secret appservice-irc mappings
These contain a channel key for a secret channel.

We also had to migrate the appservice-irc config to a secret.

Change-Id: I92c7cdf9679f65d9e655e22d690cef2e83180135
2021-05-19 22:04:02 +00:00
q3k 4154673593 matrix: appservice-irc: set debugService.enable if needed
This is the case for any IRC server that has ignoreIdleUsersOnStartup
set, because of what seems like an appservice-irc bug.

Change-Id: If5063a3bc2d79c7f2fc79ec7560bf9bfe2b25aba
2021-05-19 16:10:03 +00:00
q3k 25cd650ec9 matrix: add bootstrapJob config flag to appservices
This allows us to bypass the issue where Kubernetes jobs cannot be
updated once completed, so bumping appservice image versions was
painful.

But really, though, this is probably someting that kubecfg/kartongips
should handle.

Change-Id: I2778c5433f699db89120a3c44e55d2fbe2a10015
2021-05-19 16:09:13 +00:00
q3k 8eae454769 matrix: bump appservice-irc
Also drive-by bump appservice-telegram, which was already bumped on
prod.

Change-Id: Ic8222775e7e3dbaa44361e6ccd84bdd6617924c3
2021-05-19 16:07:52 +00:00
q3k 6751d826f1 Merge changes I2afe9e52,Ideb13ba9
* changes:
  app/matrix/appservice-irc: implement passwordEncryptionKey
  app/matrix/appservice-irc: add ignoreIdleUsersOnStartup option
2021-05-19 15:41:55 +00:00
q3k c3ca29512a app/matrix: update mautrix image
The old image disappearified from their registry:

httpReaderSeeker: failed open: content at https://dock.mau.dev/v2/tulir/mautrix-telegram/manifests/sha256:dc95be8f9cd7c226686bcd8be52872cdc20de6751b5eb9f10c6db87ec478b1ca not found: not found

This is the current latest image. Production (at least
matrix.hackerspace.pl) has been updated.

Change-Id: I754b13f08b569e717295fb48d36c0e6544438aa4
2021-04-10 11:15:31 +00:00
informatic 37fbff768a app/matrix/appservice-irc: implement passwordEncryptionKey
This allows people to save their NickServ passwords into bridge's
storage. Obviously nobody should trust us tho.

Change-Id: I2afe9e5215cd8f7419e9eab8183789df13e21aac
2021-02-13 20:18:51 +01:00
informatic 3d5bb6f2e9 app/matrix/appservice-irc: add ignoreIdleUsersOnStartup option
This should alleviate an issue of people getting joining and immediately
getting dropped off due to client limit on bridge restarts.

Change-Id: Ideb13ba9930d565ede728d2750d0c7af04746cf1
2021-02-13 19:58:58 +01:00
q3k 32d3eaac01 app/matrix: bump appservice-irc
Already deployed to matrix/appservice-irc.

Change-Id: I906390eaed9a9154b154bc8952412f9fa6708f64
2021-02-13 17:50:56 +00:00
q3k 34f56935b9 app/matrix/telegram: re-pin alpine to 3.13
Newer versions of alpine edge repos have a `yq` that behaves oddly:

    $ kubectl -n matrix-0x3c logs -f appservice-telegram-prod-85d66696c6-9drnl -c generate-config
    + apk add --no-cache yq
    fetch https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
    fetch https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
    (1/1) Installing yq (4.4.1-r0)
    Executing busybox-1.31.1-r21.trigger
    ERROR: busybox-1.31.1-r21.trigger: script exited with error 127
    OK: 11 MiB in 15 packages
    + cp /config/config.yaml /data/config.yaml
    + yq r /registration/registration.yaml as_token
    Error: unknown command "r" for "yq"
    Run 'yq --help' for usage.
    + yq w -i /data/config.yaml appservice.as_token
    Error: unknown command "w" for "yq"
    Run 'yq --help' for usage.

This downgrades back to a working yq.

Change-Id: Ifc77bcc88156b02f3ec17e6f84c5615149108777
2021-02-08 17:54:10 +01:00
informatic fb119aa4f0 app/matrix: backport matrix.metadata(component) into matrix-ng
This is used by some external modules (appservices/instance
definitions). In order to reduce scope of (untested) changes in this
rollout, let's temporarily backport that function into matrix-ng.

Change-Id: Ib1054844391497ef1455b25c7f939c68c628ff09
2021-01-31 19:07:53 +01:00
informatic b67ae4893c app/matrix: split matrix-ng into submodules, use kube.Namespace.Contain
matrix-ng split into multiple submodules causes some changes in keys
that might've been used for homeserver/riot configuration customization.

Migration to kube.Namespace.Contain has also caused change in Deployment
selectors (immutable fields), thus needing manual removal of these
first.

This is, as always, documented in lib/matrix-ng.libsonnet header.

Change-Id: I39a745ee27e3c55ec748818b9cf9b4e8ba1d2df5
2021-01-31 12:55:38 +01:00
informatic 8ec865728e app/matrix: matrix-ng - synapse deployment cleanup
This is a major revamp of our matrix/synapse deployment as a separate
.libsonnet module.

* synapse version bump to 1.25.0
* riot-web version bump to 1.7.18
* Replaced synapse migration hack we used to template configuration with
environment variable replacement done by Kubernetes itself
* Implemented support for OpenID Connect, migration from CAS has been
verified to be working with some additional configuration options
* Moved homeserver signing key into k8s secret, thus making it possible
to run synapse processes without a single data volume
* Split synapse into main process, generic worker and media repository
worker. (latter is the only container using data volume) Both generic
worker and media repository worker is running on a single replica, until
we get proper HTTP routing/loadbalancing
* Riot nginx.conf has been extracted into an external file loaded using
importstr.

Change-Id: I6c4d34bf41e148a302d1cbe725608a5aeb7b87ba
2021-01-30 21:18:51 +01:00
informatic ee62857c70 app/matrix: cleanup irc bridge registration oneliner
Change-Id: Ic71cbdce6bd9668754285f863fd987c63ab5386d
2021-01-30 13:10:22 +01:00
informatic 63244ca465 app/matrix: add wellKnown server integration
Exposes /.well-known/matrix/ metadata endpoints on cfg.webDomain that
are required for federation to work properly. This can be enabled using
cfg.wellKnown flag set to true.

Change-Id: I097b58efc7442b904a135d4519999e36d155c197
2021-01-30 13:10:15 +01:00
q3k d67635d338 Bump riot-web on matrix.hackerspace.pl
Change-Id: Ia043a03afb85b1a149b112a2be5c29fb26d5969d
2020-12-29 22:27:32 +00:00
Norbert Szulc c67abc23a8 app/matrix enable cas proxy for matrix.0x3c.pl
Change-Id: I63c8172dbc93b9f6781aa03f7924be944b8f1846
2020-11-10 23:34:30 +01:00
Norbert Szulc 014c9cd018 app/matrix make cas deployment configurable
Change-Id: I59ea4d0d5f4a68ffbd88264857c309f6bac61288
2020-11-09 15:22:56 +01:00
Norbert Szulc 1ef5600dcb app/matrix: make riotConfig parametrizable
Change-Id: Ib616ec7fbf097ab1e17a254c5c16202bb9151585
2020-11-08 16:13:58 +01:00
q3k 21a9616583 app/matrix: finish parametrization, fix running as non-root
This should allow us to run matrix on our default podsecuritypolicy.

Change-Id: I054f527ebab2f499e7a6595e618281a58c82e283
2020-11-04 00:09:03 +01:00
q3k ace32c0360 app/matrix: parametrize configuration
This adds cfg.cas.enable, and parametrizes homeserver.yaml from jsonnet
configuration.

Change-Id: I37a9b27a7080248cdd70282b897bbf6d3f9ae5f6
2020-11-03 22:04:08 +01:00
q3k 60076c70f8 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
2020-11-03 21:36:49 +01:00