local cluster = import "lib/cluster.libsonnet";
local global = import "lib/global.libsonnet";

// Monitoring tiers set up on k0. See README for architectural background.

{
    local k0 = self,
    local cfg = {
        storageClasses+: {
            prometheus: "waw-hdd-redundant-3",
            victoria: "waw-hdd-redundant-3",
            grafana: "waw-hdd-redundant-3",
        },
    },

    // Cluster tier - prometheus.
    cluster: cluster.Cluster("k0") {
        cfg+: cfg {
            username: "cluster-k0",
            upstreams: [
                { password: std.split(importstr "secrets/plain/global-agent-cluster-k0", "\n")[0], remote: k0.global.internalIngestURL  },
            ],
        },
    },

    // Global tier - victoria metrics.
    global: global.Global("k0") {
        cfg+: cfg {
            oauth: {
                clientId: "22659ba3-c8b2-4855-9553-f78884e0d743",
                clientSecret: std.split(importstr "secrets/plain/global-oauth-client-secret", "\n")[0],
            },
            hosts: {
                globalAPI: "monitoring-global-api.k0.hswaw.net",
                globalDashboard: "monitoring-global-dashboard.k0.hswaw.net",
            },
            agents: [
                // Ingestion from k0 cluster tier.
                { username: k0.cluster.cfg.username, password: std.split(importstr "secrets/plain/global-agent-cluster-k0", "\n")[0], },
            ],
            loopbackGrafanaUser: {
                username: "grafana",
                password: std.split(importstr "secrets/plain/global-agent-grafana", "\n")[0],
            },
        }, 
    },
}
