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

{
    local cfg = self.cfg,
    cfg:: {
        image: "frab/frab@sha256:30051f5153c4f02a8a1bee4b306bd696e2b018f2b13d16bd9c681fc1d633de3e",
        storageClassName: error "storageClassName must be set!",
        webFQDN: error "webFQDN must be set!",

        secret: {
            secretKeyBase: error "secretKeyBase must be set!",
            smtpPassword: error "smtpPassword must be set!",
        },

        smtp: {
            server: "mail.hackerspace.pl",
            from: "frab@hackerspace.pl",
            username: "frab",
        },
    },

    component(cfg, env): mirko.Component(env, "frab") {
        local frab = self,
        cfg+: {
            image: cfg.image,
            volumes+: {
                public: kube.PersistentVolumeClaimVolume(frab.volumePublic),
            },

            pgpass:: { secretKeyRef: { name: frab.makeName("-postgres"), key: "postgres_password", } },

            container: frab.Container("main") {
                volumeMounts_+: {
                    public: { mountPath: "/home/frab/app/public", },
                },
                // order matters (for POSTGRES_PASS substitution), we don't use env_
                env: [
                    { name: "TZ", value: "Europe/Warsaw" },
                    { name: "POSTGRES_PASS", valueFrom: frab.cfg.pgpass },
                    { name: "DATABASE_URL", value:  "postgresql://frab:$(POSTGRES_PASS)@%s/frab" % [frab.postgres.svc.host] },
                    { name: "SECRET_KEY_BASE", valueFrom: kube.SecretKeyRef(frab.secret, "secretKeyBase") },
                    { name: "FROM_EMAIL", value: cfg.smtp.from },
                    { name: "SMTP_ADDRESS", value: cfg.smtp.server },
                    { name: "SMTP_USERNAME", value: cfg.smtp.username },
                    { name: "SMTP_PASSWORD", valueFrom: kube.SecretKeyRef(frab.secret, "smtpPassword") },
                    { name: "SMTP_PORT", value: "587" },
                    { name: "SMTP_NOTLS", value: "false" },
                ],
                resources: {
                    // thicc RoR
                    requests: {
                        cpu: "100m",
                        memory: "512Mi",
                    },
                    limits: {
                        cpu: "1",
                        memory: "1Gi",
                    },
                },
            },
            ports+: {
                publicHTTP: {
                    web: {
                        port: 3000,
                        dns: cfg.webFQDN,
                    },
                },
            },
        },

        secret: kube.Secret(frab.makeName("-secret")) {
            metadata+: frab.metadata,
            data: cfg.secret,
        },

        postgres: postgres {
            cfg+: {
                namespace: frab.metadata.namespace,
                appName: "frab",
                storageClassName: cfg.storageClassName,
                prefix: frab.makeName("-postgres") + "-",
                database: "frab",
                username: "frab",
                password: frab.cfg.pgpass,
            },
        },

        volumePublic: kube.PersistentVolumeClaim(frab.makeName("-public")) {
            metadata+: frab.metadata,
            spec+: {
                storageClassName: cfg.storageClassName,
                accessModes: ["ReadWriteOnce"],
                resources: {
                    requests: {
                        storage: "5Gi",
                    },
                },
            },
        },
    },
}
