blob: 4c70b4567933c8f64d8a5fdc9a0a46b1c1f851bf [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 at which matrix instance/cas proxy is served
10 webDomain: error "cfg.webDomain must be set",
11
12 oauth2: error "cfg.oauth2 must be set",
13 },
14
15 ns:: error "ns needs to be a kube.Namespace object",
radex99ed6a72023-11-24 11:42:55 +010016 local ns = app.ns,
Piotr Dobrowolskib67ae482021-01-31 10:35:38 +010017
radex99ed6a72023-11-24 11:42:55 +010018 deployment: ns.Contain(kube.Deployment("oauth2-cas-proxy")) {
Piotr Dobrowolskib67ae482021-01-31 10:35:38 +010019 spec+: {
20 replicas: 1,
21 template+: {
22 spec+: {
23 containers_: {
24 proxy: kube.Container("oauth2-cas-proxy") {
25 image: cfg.image,
26 ports_: {
27 http: { containerPort: 5000 },
28 },
29 env_: {
30 BASE_URL: "https://%s" % [cfg.webDomain],
31 SERVICE_URL: "https://%s" % [cfg.webDomain],
32 OAUTH2_CLIENT: cfg.oauth2.clientID,
33 OAUTH2_SECRET: cfg.oauth2.clientSecret,
34 OAUTH2_SCOPE: cfg.oauth2.scope,
35 OAUTH2_AUTHORIZE: cfg.oauth2.authorizeURL,
36 OAUTH2_TOKEN: cfg.oauth2.tokenURL,
37 OAUTH2_USERINFO: cfg.oauth2.userinfoURL,
38 },
39 },
40 },
41 },
42 },
43 },
44 },
45
radex99ed6a72023-11-24 11:42:55 +010046 svc: ns.Contain(kube.Service("oauth2-cas-proxy")) {
radex8b8f3872023-11-24 11:09:46 +010047 target:: app.deployment,
Piotr Dobrowolskib67ae482021-01-31 10:35:38 +010048 },
49}