openova/clusters/otech.omani.works/bootstrap-kit/25-grafana.yaml
e3mrah 2913c4f27a
feat(bp-grafana): chart-verified — smoke OK on contabo + per-Sovereign overlay drift fix (closes #381) (#416)
bp-grafana 1.0.0 was published by blueprint-release run 25214143810 on
commit a1bd5502 (alongside the #387 Gateway API HTTPRoute templates).
This commit verifies the chart on contabo and brings the per-Sovereign
overlays in line with the _template (and with the bp-keycloak pattern
shipped in #377).

Verification:
  - helm template defaults → 13 kinds (HTTPRoute skip-renders when
    gateway.host is empty, per the #387/#402 if-host-emit pattern)
  - helm template with gateway.host=grafana.test.example.com → 14 kinds
    (incl. HTTPRoute)
  - smoke install in grafana-smoke ns: 1/1 Ready in 65s; in-cluster GET
    http://smoke-grafana/login → HTTP 200; /api/health → 200; image
    docker.io/grafana/grafana:12.3.1 confirmed; smoke torn down clean.

Per-Sovereign overlay drift fix:
  - clusters/omantel.omani.works/bootstrap-kit/25-grafana.yaml — add
    values.gateway.host = grafana.omantel.omani.works (was missing).
  - clusters/otech.omani.works/bootstrap-kit/25-grafana.yaml — add
    values.gateway.host = grafana.otech.omani.works (was missing).

Both now match the _template and the bp-keycloak otech overlay shape.

Scope clarification: the original ticket said "Bundle: Alloy + Loki +
Mimir + Tempo + Grafana dashboards" but the actual chart split has
Alloy/Loki/Mimir/Tempo as sibling Blueprints at slots 21-24, with
bp-grafana as the visualizer-only at slot 25. WBS §2 row updated to
reflect this. Each LGTM sibling has its own ticket.

Closes #381

Co-authored-by: hatiyildiz <hatice.yildiz@openova.io>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 16:55:07 +04:00

83 lines
2.4 KiB
YAML

# bp-grafana — Catalyst Blueprint #25 (W2.K2 Observability batch).
# Grafana — visualization layer of the LGTM stack. Pairs with bp-loki
# (logs), bp-mimir (metrics), bp-tempo (traces); CNPG-backed Postgres
# for dashboard/folder/alert state; Keycloak OIDC for SSO.
#
# Wrapper chart: platform/grafana/chart/
# Reconciled by: Flux on the new Sovereign's k3s control plane, AFTER
# bp-cnpg, bp-loki, bp-mimir, bp-tempo, bp-keycloak are
# all Ready.
#
# dependsOn:
# - bp-cnpg (slot 16) — Postgres backend for Grafana state.
# - bp-loki (slot 22) — datasource for logs.
# - bp-mimir (slot 23) — datasource for metrics.
# - bp-tempo (slot 24) — datasource for traces.
# - bp-keycloak (slot 09) — OIDC IdP for SSO.
#
# disableWait: Grafana waits for its CNPG-managed `grafana-app` Secret
# (synthesised by bp-cnpg via the chart's Cluster CR), and for upstream
# datasource endpoints to answer. Helm `--wait` would block on the
# Deployment rollout, which the HelmRelease cannot influence; runtime
# convergence is observed via kubectl rollout status.
---
apiVersion: v1
kind: Namespace
metadata:
name: grafana
labels:
catalyst.openova.io/sovereign: otech.omani.works
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: bp-grafana
namespace: flux-system
spec:
type: oci
interval: 15m
url: oci://ghcr.io/openova-io
secretRef:
name: ghcr-pull
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: bp-grafana
namespace: flux-system
spec:
interval: 15m
timeout: 15m
releaseName: grafana
targetNamespace: grafana
dependsOn:
- name: bp-cnpg
- name: bp-loki
- name: bp-mimir
- name: bp-tempo
- name: bp-keycloak
chart:
spec:
chart: bp-grafana
version: 1.0.0
sourceRef:
kind: HelmRepository
name: bp-grafana
namespace: flux-system
install:
disableWait: true
remediation:
retries: 3
upgrade:
disableWait: true
remediation:
retries: 3
# Per-Sovereign overrides — issue #387:
# Wire the per-Sovereign hostname into the HTTPRoute template
# (platform/grafana/chart/templates/httproute.yaml). The HTTPRoute
# attaches to cilium-gateway/kube-system installed by 01-cilium.yaml.
values:
gateway:
host: grafana.otech.omani.works