mirror of
https://github.com/enix/x509-certificate-exporter.git
synced 2026-08-19 12:06:30 +00:00
Two new value maps under `prometheusRules`: - `alertExprOverrides` — alertName -> custom Prometheus expression that replaces the default `expr:`. Closes #253: multi-cluster setups can inject `max by (cluster, …)` aggregations or label filters without having to disableBuiltinAlertGroup and reconstruct everything. - `alertForOverrides` — alertName -> `for:` duration that replaces the default. Schema-validated against Prometheus's duration syntax. Both maps key on bare alert names (no `rulePrefix`). Overrides are taken whole — no merge with the default. Single-line and multi-line strings both render correctly: the template now emits each `expr:` via `| quote` which wraps in a YAML double-quoted scalar (newlines serialise to \n; Prometheus parses the resulting string identically to the multi-line form). Test ratchets added alongside: - test/schema/valid/prometheusrules-alert-overrides.yaml — valid case covering both maps, with a multi-line expr to exercise the quoting path. - test/schema/invalid/prometheusrules-alertforoverrides-bad-duration — paired with .expect.txt, ensures the duration regex rejects natural-language inputs ("30 minutes"). - test/render/prometheusrules-default-alerts.{yaml,expect-pass.txt} — new ratchet under the existing TestHelmRender machinery (extended to support "positive substring" checks via .expect-pass.txt). Locks in the exact 13 alert names the chart ships by default: any rename or accidental removal breaks the test at PR time. Docs: - chart/README.md.gotmpl alert table refreshed — was still on the v3 layout (X509ExporterReadErrors + 3 cert alerts). Now lists all 13. - values.yaml gets the two new map keys with descriptions and commented examples.