blob: 1760e01e207581562a130ecb5371b3884a080061 [file] [log] [blame]
Piotr Dobrowolskib67ae482021-01-31 10:35:38 +01001local kube = import "../../../kube/kube.libsonnet";
2
3{
4 local app = self,
5 local cfg = app.cfg,
6 cfg:: {
7 image: error "cfg.image must be set",
8
9 # webDomain is the domain name of matrix homeserver to be served
10 webDomain: error "cfg.webDomain must be set",
11 },
12
13 ns:: error "ns needs to be a kube.Namespace object",
radex99ed6a72023-11-24 11:42:55 +010014 local ns = app.ns,
Piotr Dobrowolskib67ae482021-01-31 10:35:38 +010015
radex99ed6a72023-11-24 11:42:55 +010016 deployment: ns.Contain(kube.Deployment("wellknown")) {
Piotr Dobrowolskib67ae482021-01-31 10:35:38 +010017 spec+: {
18 replicas: 1,
19 template+: {
20 spec+: {
21 containers_: {
22 web: kube.Container("wellknown") {
23 image: cfg.image,
24 ports_: {
25 http: { containerPort: 8080 },
26 },
27 command: ["/app/matrix/wellknown"],
28 args: ["-hspki_disable", "-domain", cfg.webDomain],
29 },
30 },
31 securityContext: {
32 runAsUser: 101,
33 runAsGroup: 101,
34 },
35 },
36 },
37 },
38 },
radex99ed6a72023-11-24 11:42:55 +010039 svc: ns.Contain(kube.Service("wellknown")) {
radex8b8f3872023-11-24 11:09:46 +010040 target:: app.deployment,
Piotr Dobrowolskib67ae482021-01-31 10:35:38 +010041 },
42}