blob: 99c87c9efee03c7b0607306c0ae24d53a965d830 [file] [log] [blame]
Piotr Dobrowolskib67ae482021-01-31 10:35:38 +01001local kube = import "../../../kube/kube.libsonnet";
2
3{
radexc995c212023-11-24 12:01:49 +01004 local top = self,
5 local cfg = top.cfg,
Piotr Dobrowolskib67ae482021-01-31 10:35:38 +01006 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")) {
radexc995c212023-11-24 12:01:49 +010040 target:: top.deployment,
Piotr Dobrowolskib67ae482021-01-31 10:35:38 +010041 },
42}