# bazel-cache.k0.hswaw.net, a Bazel Cache based on buchgr/bazel-remote.
# Once https://github.com/bazelbuild/bazel/pull/4889 gets merged, this will
# likely be replaced with just an Rados GW instance.

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

{
    local app = self,
    local cfg = app.cfg,
    cfg:: {
        namespace: "bazel-cache",
        domain: "k0.hswaw.net",
        storageClassName: "waw-hdd-yolo-2",
    },

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

    namespace: kube.Namespace(cfg.namespace),

    volumeClaim: kube.PersistentVolumeClaim("bazel-cache-storage") {
        metadata+: app.metadata("bazel-cache-storage"),
        spec+: {
            storageClassName: cfg.storageClassName,
            accessModes: [ "ReadWriteOnce" ],
            resources: {
                requests: {
                    storage: "40Gi",
                },
            },
        },
    },


    deployment: kube.Deployment("bazel-remote") {
        metadata+: app.metadata("bazel-cache"),
        spec+: {
            replicas: 1,
            template+: {
                spec+: {
                    volumes_: {
                        data: kube.PersistentVolumeClaimVolume(app.volumeClaim),
                    },
                    containers_: {
                        auth: kube.Container("bazel-remote") {
                            image: "registry.k0.hswaw.net/devtools/bazel-cache:latest",
                            volumeMounts_: {
                                data: { mountPath: "/data" },
                            },
                            ports_: {
                                http: {
                                    containerPort: 8080,
                                    protocol: "TCP",
                                },
                            },
                        },
                    },
                },
            },
        },
    },

    service: kube.Service("bazel-cache") {
        metadata+: app.metadata("bazel-cache"),
        target_pod:: app.deployment.spec.template,
        spec+: {
            type: "ClusterIP",
            ports: [
                { name: "http", port: 8080, targetPort: 8080, protocol: "TCP" },
            ],
        }
    },

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