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

{
    local top = self,
    local cfg = top.cfg,
    cfg:: {
        # webDomain is the domain name at which element will run
        webDomain: error "cfg.webDomain must be set",
        # serverName is the server part of the MXID this homeserver will cover
        serverName: error "cfg.serverName must be set",
        image: error "cfg.image must be set",
    },

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

    config:: {
        "default_hs_url": "https://%s" % [cfg.webDomain],
        "disable_custom_urls": false,
        "disable_guests": false,
        "disable_login_language_selector": false,
        "disable_3pid_login": true,
        "brand": "Riot",
        "integrations_ui_url": "https://scalar.vector.im/",
        "integrations_rest_url": "https://scalar.vector.im/api",
        "integrations_jitsi_widget_url": "https://scalar.vector.im/api/widgets/jitsi.html",

        "bug_report_endpoint_url": "https://riot.im/bugreports/submit",
        "features": {
            "feature_groups": "labs",
            "feature_pinning": "labs",
            "feature_reactions": "labs"
        },
        "default_federate": true,
        "default_theme": "light",
        "roomDirectory": {
            "servers": [
                cfg.serverName,
            ]
        },
        "welcomeUserId": "@riot-bot:matrix.org",
        "enable_presence_by_hs_url": {
            "https://matrix.org": false
        }
    },

    configMap: ns.Contain(kube.ConfigMap("riot-web-config")) {
        data: {
            "config.json": std.manifestJsonEx(top.config, ""),
            // Standard nginx.conf, made to work when running as unprivileged user.
            "nginx.conf": importstr "riot/nginx.conf",
        },
    },

    deployment: ns.Contain(kube.Deployment("riot-web")) {
        spec+: {
            replicas: 1,
            template+: {
                spec+: {
                    volumes_: {
                        config: kube.ConfigMapVolume(top.configMap),
                    },
                    containers_: {
                        web: kube.Container("riot-web") {
                            image: cfg.image,
                            ports_: {
                                http: { containerPort: 8080 },
                            },
                            volumeMounts: [
                                {
                                    name: "config",
                                    mountPath: "/app/config.json",
                                    subPath: "config.json",
                                },
                                {
                                    name: "config",
                                    mountPath: "/etc/nginx/nginx.conf",
                                    subPath: "nginx.conf",
                                },
                            ],
                        },
                    },
                    securityContext: {
                        // nginx:nginx
                        runAsUser: 101,
                        runAsGroup: 101,
                    },
                },
            },
        },
    },

    svc: ns.Contain(kube.Service("riot-web")) {
        target:: top.deployment,
    },
}
