95c5d71222
## Why Deploys Grafana in-cluster (observability project) via the grafana-operator, mirroring the puppet Grafana but modernised — **CNPG** for state, **Authentik OIDC** for auth — and ports the live datasource + dashboards in as CRs. Depends on: grafana-operator (#235, merged), grafana schemas (#236, merged), Authentik OIDC (terraform-authentik #2), Vault seeds (done), and `^grafana/` image proxy (terraform-artifactapi #5). ## Changes (`apps/base/grafana`) - **CNPG** postgres Cluster + rw Pooler (db `grafana`); **VaultAuth** + **VaultStaticSecrets** pulling `postgres`/`oauth` credentials from `kv/kubernetes/namespace/grafana/default/*`. - **Grafana CR**: postgres backend via the pooler; Authentik `generic_oauth` (client id/secret from the Vault-synced secret, openid/email/profile scopes, group→role mapping); `root_url` grafana.k8s.syd1.au.unkin.net. - **1 GrafanaDatasource** — k8s VictoriaMetrics via the operator `vmselect-main` service; reuses the previous default datasource uid so the imported dashboards resolve unedited. - **13 GrafanaDashboards** (gzipJson) exported from the current grafana. - **Gateway API** (traefik-internal) + HTTPRoute for grafana.k8s.syd1.au.unkin.net. - Registered in the observability ApplicationSet + project. ## Review notes - OAuth `role_attribute_path` maps Authentik group `grafana-admins` → Admin, else Viewer — **confirm the group name**. - `database.ssl_mode: require` against the CNPG pooler — adjust if the pooler isn't serving TLS. - The `VictoriaLogs - cluster` dashboard has no in-cluster logs datasource yet (no VictoriaLogs in k8s) — included for completeness, will be empty until one exists. - `make kubeconform` clean (24 resources, validated against the strict grafana schemas). Reviewed-on: #238 Co-authored-by: Ben Vincent <ben@unkin.net> Co-committed-by: Ben Vincent <ben@unkin.net>
14 lines
11 KiB
YAML
14 lines
11 KiB
YAML
---
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: haproxy
|
|
namespace: grafana
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
dashboards: "grafana"
|
|
resyncPeriod: 5m
|
|
allowCrossNamespaceImport: false
|
|
gzipJson: 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
|