local kube = import "../../../kube/kube.libsonnet";

{
    local top = self,
    local cfg = top.cfg,
    cfg:: {
        image: error "cfg.image must be set",

        # webDomain is the domain name at which matrix instance/cas proxy is served
        webDomain: error "cfg.webDomain must be set",

        oauth2: error "cfg.oauth2 must be set",
    },

    ns:: error "ns needs to be a kube.Namespace object",
    local ns = top.ns,

    deployment: ns.Contain(kube.Deployment("oauth2-cas-proxy")) {
        spec+: {
            replicas: 1,
            template+: {
                spec+: {
                    containers_: {
                        proxy: kube.Container("oauth2-cas-proxy") {
                            image: cfg.image,
                            ports_: {
                                http: { containerPort: 5000 },
                            },
                            env_: {
                                BASE_URL: "https://%s" % [cfg.webDomain],
                                SERVICE_URL: "https://%s" % [cfg.webDomain],
                                OAUTH2_CLIENT: cfg.oauth2.clientID,
                                OAUTH2_SECRET: cfg.oauth2.clientSecret,
                                OAUTH2_SCOPE: cfg.oauth2.scope,
                                OAUTH2_AUTHORIZE: cfg.oauth2.authorizeURL,
                                OAUTH2_TOKEN: cfg.oauth2.tokenURL,
                                OAUTH2_USERINFO: cfg.oauth2.userinfoURL,
                            },
                        },
                    },
                },
            },
        },
    },

    svc: ns.Contain(kube.Service("oauth2-cas-proxy")) {
        target:: top.deployment,
    },
}
