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

{
    local speedtest = self,
    local cfg = speedtest.cfg,
    cfg:: {
        namespace: "speedtest",
        appName: "speedtest",
        domain: "speedtest.hackerspace.pl",

        tag: "1563032542",
        image: "registry.k0.hswaw.net/bgpwtf/speedtest:" + cfg.tag,

        resources: {
            requests: {
                cpu: "25m",
                memory: "50Mi",
            },
            limits: {
                cpu: "100m",
                memory: "200Mi",
            },
        },
    },

    namespace: kube.Namespace(cfg.namespace),

    metadata(component):: {
        namespace: cfg.namespace,
        labels: {
            "app.kubernetes.io/name": cfg.appName,
            "app.kubernetes.io/managed-by": "kubecfg",
            "app.kubernetes.io/component": component,
        },
    },

    deployment: kube.Deployment("backend") {
        metadata+: speedtest.metadata("backend"),
        spec+: {
            replicas: 1,
            template+: {
                 spec+: {
                     containers_: {
                         nginx: kube.Container("backend") {
                             image: cfg.image,
                             ports_: {
                                 http: { containerPort: 8080 },
                             },
                             resources: cfg.resources,
                         },
                     },
                 },
            },
        },
    },

    svc: kube.Service("public") {
        metadata+: speedtest.metadata("public"),
        target_pod:: speedtest.deployment.spec.template,
    },

    ingress: kube.Ingress("public") {
        metadata+: speedtest.metadata("public") {
            annotations+: {
                "kubernetes.io/tls-acme": "true",
                "certmanager.k8s.io/cluster-issuer": "letsencrypt-prod",
                "nginx.ingress.kubernetes.io/proxy-body-size": "0",
            },
        },
        spec+: {
            tls: [
                { hosts: [cfg.domain], secretName: "public-tls"}
            ],
            rules: [
                {
                    host: cfg.domain,
                    http: {
                        paths: [
                            { path: "/", backend: speedtest.svc.name_port },
                        ],
                    },
                },
            ],
        },
    },
}
