k/matrx/bridges/matrix-appservice-slack: initial commit

This commit is contained in:
Danny Grove 2024-01-21 22:04:42 -08:00
parent 90937430f4
commit 8d6b5f5334
Signed by: drgrove
GPG Key ID: E1F4160251DB4C2E
6 changed files with 225 additions and 0 deletions

View File

@ -0,0 +1,119 @@
apiVersion: v1
kind: Secret
metadata:
name: matrix-appservice-slack
type: Opaque
stringData:
config.yaml: ENC[AES256_GCM,data:wgpE6EZr1o7qvQdXhJgB3Uz47LFHFuN/b56qAgodf7GzNt5BAaPS7c0EiIZBcjZaZtg5BjGnohXsnyd2s/9Gww/ImZqAIk9nf7yTDYNoKeOx67r0dzTex6EE/ZjfTtKRdW6b+LZgehCT6TjutxnfY6HVFdT9MLsdSzAyWdD4e1q3imK6KGn4GMWx7xFqDMmjzUWzU/XC4dc7CxVfDZcNX5CZpCDUw7M8qz3OVf+afIRZPwy67eUG9MuueyLZpC+AD3OX4PFvsM7hlavIZWE3NL2yWloiMsqVA15IsfZkPvOjFSsOba7Xh8ko59HTIhaOBE4WCC4GI7QiWZU9/oh1497gq2ZKMc9jVbFMcz5psMWSwARIWobM+wHTRBSY7RmQqCyRkBqqL+gpKk0ZYgdOrtIQUOxlkRs3sNy+2tfpyvZxj+WxitUpsfMGQWhOzB7xzhTe6bsFLHFf3WCS3/JkbbVF7jAz8Ky+2l5WFwNGO8DR0oRWjwYiFNbY1id0JiL0x/zhLAhtAZoG9wXYkDcaOUZLPBf19uNCtPpxlcSoh8Z22M4gvZsgdRqGeaW8L2CRPmFpvlIkMslnPmW4a0ZSGKF/prPvTQ8Ize7osR0gP9kANgNaYrZjXu/mvbnzwkyN5Ak9HTh5UGEKZ5BdjUrZ1CDefZb5JCYqJvRKZEAdaNr2ARVUN+a0qSj9ng4r7v+vS6wbYJcp8PABTBdN1YPnJl0jHjSdY0gKiZ3ADceK8F2TH3nG6Qy398X9spkWJt3vDiWP9WTYL5FHdlB1U4J8oNV3UbdV9x4jy9nnabfpshcIIDrsPqzAVk5FIIOFeF7hon3HT4NIZGkr9X7ACpBb0JBnNqSxI+NpCXncTAcr8q7vvngxlBVkNxSePfhL5LV5Sflv4n91mprIdYzOwlX2kVdjlHfRzbQ5H1iGzIBy6FTXHpw8dXY5Xh7hTcFbX+6JQXC79eSRFj/N26fd7L9u27dxiB6bPmh3JZN5zqtL3Kqp9JR/OrtuBQkXxdNPxpfrii89oWtU+L/Io007V/QdLYMKweV6rx7S99PVyvQWJrSF3/+W03bj/YmX82sK1HL0JTPGncgcUDAa,iv:EyJlIF/A0hC4WsXexiUTK2SKG3gbqGcXE6QzxyNzI9E=,tag:y4c3sxCKqAd+qR6ECtc6nw==,type:str]
slack.yaml: ENC[AES256_GCM,data:b+EN+PH5OgQIia7zyXWv4TFTBw9LhrTKtLCRerRpapyJuMGa2Thr0LrG61aH0ggGmd27sMlXd36KPSXVaE6Zzg3dhD5bzziOrAzMUaP2gNt4M3IcDwF4uWJDw9fdN/yi7OLBu81Z4/1oIsdQ9QGphLWYvJ4h1ygxA6ytXVZPsZtd5wcuOO7e08hIIB1IfdZQhu9eMtpFVeDGPDPW9byv/Fs/l0U3oQp2LylUQLO3bbYphC5aVj7vk3jpHelQnjLJq0e9xNbeMaWHnHAMb0803KOSNFEgONIyClNuvmChJ5Xaisz6dj7I46NFsGepi+y1QuWLzN++7CWAX/u1Pth+abMCPA/SQ3Ba8UYJHTdsEVmSGa+1WgOs9xIQcwjA61QStFqiK4GKaewG5XZ58WY5E2MvF4QUss0374crBafJb/yQnSiHMBwqY6I35/daeoUBVCGV2t8uEd4PL1iIl5P2AQ==,iv:mrWD3mrhZtHPMWd4qGZskxhMZbopWes3Nsd0/51so74=,tag:GgqmeTx146/qoAgNLMbCVw==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age: []
lastmodified: "2024-01-19T07:52:51Z"
mac: ENC[AES256_GCM,data:eerncWbi85ZV3KYgLcRiSYVDF9WtlTfTS7XnMN3rlX8O4T2c8K76G1KIsL92U3pIFGCJOg1KUPrMajVGiWdXIsypT/J/BKkiijetk6z5javtc1JmuWC9V4VA0DqpHnL5+Nf7EHewxa8GWWe9bGtwOkkcWlujRfu2algCwUmtCUY=,iv:mWA0wJcJl/S5rbYJXIxuwouXsNg+pB/zmXvv0D7lA2o=,tag:+VzRB2Pixsv4jDcnlEnKLw==,type:str]
pgp:
- created_at: "2024-01-11T20:55:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
wcFMA82rPM2mSf/aARAAkFACzQmqyF9BqaD1qEjIO4e6owS/n4h3U6ee0Y7fhO8y
a5RJ4/HvMmfXcYeHm+CZjsFaui4YJkPS93clGTJzV4w15yXJUunIVjAmkvSrVh6P
GqRUtNpi1y+JCS3sjlAfvm3h9b08dNxFv7rTwZtDiP8zmcNuB0zbLBFR7G6ixetx
ZxL7piPYX75Rqoz8A/+V7VAtsoX8t3xv5xgjHzzfhiM3TeoQUgLnF8aN5huiSptf
dMmNMa0GGu5QaUjYJ3iHjv5eMtCJ79KwpuCfv5iX34Q++rTe5VUWoQabNAiE/Frt
Rc3JB8o8rfL6WME9qIIa5k654JlVDKqOvTH3mtHkOIWhD2+CEK89Siq3G35Kkct8
Ym7UNa6gE8IdSGkCOH81G4ZheU6Z8OKF1Z7dO+o7IdgIURTwLEFeBIC2PtWOKOJP
PnzqZNk1w4n4XK6hQg4bmIj8VaZXXgHEXcO/jaGCoRyr36BHCE1Sj1ae5cMUgDje
p6WKVO6gXfRg7SRJqQNUh03Lz0YKIjsI/429UPyf9mtXbHfvVyrW3+wyByok86FG
cGL1Y/N7thxAxXqHy4OZFCE0NMP2bobMzzGJTtDY9oPsGwTb6xk1g0wE5zg6IoQa
9hnObBJhdpvYcD6juz+V0wkeI30essnz7ZTtsLdfCox6mnP5BMTtzxmcRrCpNvHS
UQFIZa0XryYoXv3rcw6yUpkqv6aYzD3L4PnqYtGUEtbMoTb8NXa9Cp+1OeypqZ0g
7uO5zCKJgL6sBaPnJL5/n+afafzYcIOsQc2O+q0s4O1d5Q==
=3E6w
-----END PGP MESSAGE-----
fp: 6B61ECD76088748C70590D55E90A401336C8AAA9
- created_at: "2024-01-11T20:55:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
wcFMAw95Vf08z8oUAQ//abo3n5r8YdQ6p+/X031/n8MCvWKw+ERGSvDuT2r7g8m8
DqrBQmX578jHVmZkC2B6fYqEBuQAeyEJyQ56MLMuGMNSET8dgNS4Uj/gwvsuEDQf
NhU10WLkfQ3g2/o654BVzPC2b3UQTL4mmXqp0+ID79uynn0/WZ0TQQ8xj/uUaDS1
h6/uC7mmDGTHaxF3gFuYkvWMghU0bqX5BfrAPdICAr8FIqxUGIvUD6KkBu9hWTYP
RLtfwpU/DAcT/7pNtic25WzzQt7W0mok3zUZZq5r2UqO35x2XOrgC5DQ69QYf7JZ
a9S236gEpAS0Kl1IWSvY2kDzj/J27T3nonY2kX3a+UqVWX15LEmVmNNUMwjz91/b
0G+26vustzinHBs30EHGBqhyELjRW0RjcmlVGNXvZwhgGL5/LNIEcfBi19tIang1
dRYE9TasSeRbyTU/A/CXFDeuGtC8K552SzXjv1zP6gkwZFb0/zd0/XHPSyGyOLbM
1PC3JhkA8GEYQ7l9y5BdPXxZseuoSHDPHfMRIcnogx6w6rfBdd9+78M1WjnGzhYi
/utORBaiwU9Zk+Xm3B+WbkDl5+jio+UIp9nHoYAGfuJ9A6TZYBIavB6K171wALke
Kl6hoTxef/VGwdfXB9ikUy0bi0Km1vVpZGVzIjSFXiSlLkaamhxUFSgDPGZN21rS
UQHeXKkhgKXTEVvi+kypRbN2/174bElGTWz1C2TWPNJAcvvKmRw66t5g8pahnXbm
SYQoB5JaAl0URu6zHWBYhCjQjiyePhnxHV4tgGtEYAdY3g==
=xXRR
-----END PGP MESSAGE-----
fp: 88823A75ECAA786B0FF38B148E401478A3FBEF72
- created_at: "2024-01-11T20:55:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
wcFMA0/D4ws+/KPtARAAsxa6N9jRT1AUqfWI7gIfJK6i6g0F5oxRYJ5A2mjhc89k
ZAN4/tO9GC+Fg8+lLhPHdiz6v2T1+92AFXET3jm+ax6rYei2woMHNXKzgqxjkQEQ
xQ/3LcQ3+FOTrvy7Gir9HQ/DoWSePBF7tx16unxH75hi6AgOiT0nFoEbXP3CJXie
lVOO5r5jKgBg9LENj/U+9LHjXB6W0PbVdhxdeStk2TTKcmuDnrGeqKZ3SyZ9V33p
DEfydW+T0ac156Eb2tdszzW5e87oPmW78wvLkotboZcPVWBadRtJkzVn3JXoMAda
gN+W2+I4/4iQN8ITBQ+2i5GsdbHtnrmPkzSbtSqhujwZ1k/a7uRmHy46ejDK9QnT
lQzm2OKyjTlCDhnxnKj0eTE4nN0CDyxGBNlNVG2piKd8i+HpqrjKJ9IUcMj7oO3U
8rtQ2A0LHquNvu6ZatP6fUk3tKgLaEslV4ORXMlILdZXlYqgznmvWJaII3XVeu8l
G/tHPkOhrcQDIecBeYcTLZYXtPtmY1UNJZfbDazG/9J0rdq/r9NmnB7woy7FSYEp
yRNji1i/89nVLsu94ra1D6FHyxgIFTSLkD7s1iCMTsz0UdwfbxqdLIWumYrm04XF
wM2eTB8OAGe8mdfi1q4te0FEDMLTpdYBhYDDjHmBv4fXwKPcWkgixvNJtT6xPgLS
UQEvOn03hQ8MCQ5kh1R1FoTOw1UpgV0eqJSateC2wkBKbZ/4NWPbnZA7XAW6Jb98
JidKJ8TiYiI33hxUhu4nUeZWjNcd7MgHyl1Do2r7SfyICw==
=TXST
-----END PGP MESSAGE-----
fp: 3D7C8D39E8C4DF771583D3F0A8A091FD346001CA
- created_at: "2024-01-11T20:55:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
wcFMA5Wf+FyJ+zFJAQ/+I9khYJfqjCHhrAaElVWKgn4c+7C+oilVNE0132pQZfLb
u17yv6AYY5zThK6Lg0GZMKaKFn+JuF9wonTyixJQccJ+w2MxsJQRNQZTV/t19HrQ
B+6YFLVPNyOglr7jf+o5BnOdIvpR0Cog5JDzn0j4iwpRWRSGW1sWXiABKWUIW0Ks
nR7Rm/k3Jm8zYO6LtoyYog5HGUEHRMuOY6Yoj/EEbfDLKFU5WZ+hfKnbGGM9KW31
RkXoCtjm2AstZTia5+Y0E3wNb9bbvpbkewyQd5KqaHmHaX3MzuoYKNHGVEgPMfla
Y26aED5uSLETv+C1U/jYJyxyVJxNYb2JBrS8a7+p+mo00Cvbs/pbM/cr5Y/Ogu7Q
Ed0+Ixst3LzSTOcYAAiEC/LpWztaIp/4h/cAfE7eKnsoFUVcv2lLpLHyI7fS/sJH
Ywp8tlqlfx7DaCqYEVjPMSfI9qBbJomoQ77szHL+Gyi4ibyF0iRz0/NnF5lmu5H5
sDAYiqnHEIpk1v+gWXoj/CQq7a5jJf044cYylcO+al27cugr+jr5TBQQVv+wDNJV
LqpAxmmz8yUJ6RlTSg5JwNlNCCOONv6f+lX0Cjk7V0kPcOMgbVn19Su7zIvhM7wd
m9mzuVWWx2SBGzORdK9W4tt7lybU7aCvusT1jP1nwXF/JCz9lyEbb1syaNIAiXHS
UQE2Va23CUVgB+cV/ImXBCEuAjZhiSMFVCtWOZrcqPS8EZX9s6WzscpsEmFnDE7t
GVR3u1IyjxTsuTxxYU0ldSjHqYFjQrgRD3ZBzwZcgeajqw==
=bF9b
-----END PGP MESSAGE-----
fp: F4BF5C81EC78A5DD341C91EEDC4B7D1F52E0BA4D
- created_at: "2024-01-11T20:55:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
wcFMA8KRInHl7Vz+ARAAoMRyGipvXTgUChfL1Lryej14FI9+8dvWQculBjPQzg6x
oxdPzz07ifIX8D64zfToE+qc439l/RYwiMx9XyGscEim0D1GIFPwxOm4DCXT+/5m
wlLkOBP7oMwirqSazS7dNF1hE83717QTi1GqC0UqhoMINtxrhQIv1Y6xxREqD1Wd
eW3M45p1i8iSZkzF7n0EhIK3J59Wl3vxt9FUX3YRWk1JH0oaqIc1VCH3TJc73DAx
9e1jIVQSo4R8BfQc5Y64xRh0eq/87Ud2E2x9JbZmpnw4FN/OHg9QqRMaZ9r6EQ/l
VerhJFkfSj3UVAfODzViKXyNTKRak1GOcQBE5lfAXynAW1nfTTx0re0rl6/tvOwC
i02a/raksTI8afak1RMclNFqlihsegGU239ZGDRPb4apL32nYY0SMim58vET8rv5
eTiQE1udg+1ttIRAGq/PxzHKlc6FUEdyJ6i2Da16c0K76FpF3Gnxxhw+Tleixx3h
6+PbhC2qEgt7LS8TNg9J2WTDy4Hlw5YEmzOAM9NA6UYrH9BHsR87sbdriz6pAC55
CnFkWptrME4CjUP72qIezRYt/4784ABTw6poQ51jP30641YhgPoYLrWS8hWQYaE3
jcrum3JQnLTjsE88OclcreKNvNj+b1t0uxuHa/6UdMnyRCd8osJ22s6JJHLGgB/S
UQHvy+Rv0QJ65DjsJ4TfdRBLcKXaF7Ar5SaANqGi8EYwjVbhfImwx5VSEsvQclEU
7JihoETtCrRwJM1BkJz3nuBAaYDm1Y+lWHSyVZ6xi8G0eg==
=n6cE
-----END PGP MESSAGE-----
fp: C92FE5A3FBD58DD3EC5AA26BB10116B8193F2DBD
encrypted_regex: ^(data|stringData)$
version: 3.8.1

View File

@ -0,0 +1,25 @@
-----BEGIN CERTIFICATE-----
MIIEQTCCAqmgAwIBAgIUJnvJP3vy1FrGBmP3zN/Q6le9D5owDQYJKoZIhvcNAQEM
BQAwOjE4MDYGA1UEAwwvZWI2ZjdjZmItNjBkNy00ZTg2LTlmN2UtYTliMmU5MDdk
YWUyIFByb2plY3QgQ0EwHhcNMjMwNTEyMDMzMTA3WhcNMzMwNTA5MDMzMTA3WjA6
MTgwNgYDVQQDDC9lYjZmN2NmYi02MGQ3LTRlODYtOWY3ZS1hOWIyZTkwN2RhZTIg
UHJvamVjdCBDQTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAO41H/hV
eJYfE+b0aMPj1vLhefmGkdjD5N3HD1StaL95bjiB7U73exQenoEZYTW3Ns7+BzHq
ffFJwXC3sL8qVxqnNdJy3IkrwJxdmJrj5+KoVUrD8yNbujjQ5q+r0fMRwBwtJYkf
78b/mCBP7GOllJim3nG4MMzL1sA/5JaOQEwZgmERmIVJi1RK1k8nGuFKbcr7YW6u
vE8VQR77uQIUffokC6tDzhjxDz8eDzZ3lwsnGavCG31nW5Kc6+rg6Kpo097/ZkYf
DThwFmGwmP4oT6h2+/LPqsb3OCvFWh5DLHXTa5xvczFwY134o55CW25JNebrTYxc
ZnvlE1afgiuKsqGsGmvmnjgxKTNKOhMWKd1gXLmQ6Tt0WrLpIBlAVlh4pn0YtWDm
Nz+YcOnQ20O4pZyOntc2TGFmbHqAp5HnmRmtDWWbUQoRRAIsvvUpIGRxWid124gV
2h9UxbymVoieFpAjNv6d9Qu9+kKeJ/FOwSq6qatOuI4ILSjG6E1SMeimxQIDAQAB
oz8wPTAdBgNVHQ4EFgQUpoMewYjVdrnCuCjW/57GlzlMtdQwDwYDVR0TBAgwBgEB
/wIBADALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEMBQADggGBAKRENCIP7KTg2ULy
DCuZAvPDzqRwAstmXP54DZOpeMT81c+m9Kq4urM1PMFvPOfiSSlE3wAA1+oX5wyv
r4kKgSYqG4QRk4aUfk7NJUQ2yAEtNcwrTc4MSsoFJOJVWdW/E+KNWYKjepg1t2kV
4hzZNqnIO05sxVp/Sx0tu5dhn8xPwNTVuDD5VjoC7VweSlq+E2vTNz10VBSHJ9Pm
bBJ32kd0lXdYsmy9vGDLa2NrjeTESSBfk8umm2dIbIFxOShHSs/6jHwCGv5WvPpo
HoPH69XBnXQuXf+gPltEaAtRwKVqdgMTFQe1gfeK2ddvlzPtGJ1mj+1rPGZApEuV
Ax+5Klk+711dhJrRQsI0w1Zl/2CgpKToIVbBe5nLyH2Q7SstcdpfnNcs5+k3iXb/
KMUIMP84ScQ+ojUefMntny2SqUFT/CD1IVpOsHFTbKc2ZHUllrDf1p4qopMdiwWj
TlnDOh78B94f1O9by4ftQ/g8G5TaKgRsMxrDNy77tCpKy9vR4g==
-----END CERTIFICATE-----

View File

@ -0,0 +1,20 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
labels:
- includeSelectors: true
pairs:
app.kubernetes.io/name: matrix-appservice-slack
app.kubernetes.io/part-of: matrix
app.kubernetes.io/component: bridge
resources:
- statefulset.yaml
- service.yaml
generators:
- secret-generator.yaml
configMapGenerator:
- name: digital-ocean-ca
files:
- files/digital-ocean-ca.crt
images:
- name: matrixdotorg/matrix-appservice-slack
newTag: release-2.1.2

View File

@ -0,0 +1,6 @@
apiVersion: viaduct.ai/v1
kind: ksops
metadata:
name: slack-ksops-secrets
files:
- config-secrets.enc.yaml

View File

@ -0,0 +1,17 @@
kind: Service
apiVersion: v1
metadata:
name: appservice-slack
spec:
publishNotReadyAddresses: true
ports:
- name: appservice
protocol: TCP
port: 5858
targetPort: 5858
- name: rtm
protocol: TCP
port: 9898
targetPort: 9898
selector: {}
type: ClusterIP

View File

@ -0,0 +1,38 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: appservice-slack
spec:
serviceName: matrix-appservice-slack
template:
spec:
containers:
- name: appservice-slack
image: matrixdotorg/matrix-appservice-slack
env:
- name: NODE_EXTRA_CA_CERTS
value: /config/digital-ocean-ca.crt
ports:
- name: appservice
containerPort: 5858
protocol: TCP
- name: rtm
containerPort: 9898
protocol: TCP
volumeMounts:
- name: config-secrets
mountPath: /config/config.yaml
subPath: config.yaml
- name: config-secrets
mountPath: /config/slack-registration.yaml
subPath: slack.yaml
- name: digital-ocean-ca
mountPath: /config/digital-ocean-ca.crt
subPath: digital-ocean-ca.crt
volumes:
- name: config-secrets
secret:
secretName: matrix-appservice-slack
- name: digital-ocean-ca
configMap:
name: digital-ocean-ca