Les règles d'alerte du groupe prospection (tools/prometheus/values.yaml → serverFiles.alerting_rules.yml) s'évaluaient déjà dans Prometheus, mais ne notifiaient nulle part : server.alertmanagers était vide et l'Alertmanager n'avait aucun config (donc aucun receiver).
Cette PR câble la livraison end-to-end vers le bot Telegram de prospection, en réutilisant telegram_configs natif d'Alertmanager.
Changements
1. Vault IaC (hashicorp-vault/iac/main.tf)
Policy read-only alertmanager-telegram sur kvv2/data/prospection/telegram.
Rôle k8s alertmanager (SA prometheus-alertmanager, ns tools, audience vault), rattaché à vault_auth_backend.kubernetes.
Appliqué par le workflow vault.yaml (OIDC → Vault), pas par ArgoCD.
2. VSO (prometheus/templates/vault-telegram.yaml, nouveau)
Le Secret prospection-telegram est namespace-scoped (prospection) et non réutilisable dans tools. On resynchronise donc le même chemin kvv2 vers un Secret alertmanager-telegram dans tools.
rolloutRestartTargets sur le StatefulSet prometheus-alertmanager (ceinture + bretelles ; Alertmanager relit bot_token_file à chaque envoi de toute façon).
alertmanager.config : route (group_by alertname/app) + receiver telegram (bot_token_file sur le fichier monté, chat_id inline non sensible, parse_mode: HTML, send_resolved: true).
alertmanager.extraSecretMounts : montage du Secret alertmanager-telegram sur /etc/alertmanager/telegram.
Vérifications
helm template du chart : le ConfigMap prometheus-alertmanager contient bien le receiver telegram, la config Prometheus liste l'Alertmanager, et le StatefulSet monte le Secret sur /etc/alertmanager/telegram (readOnly).
## Contexte
Les règles d'alerte du groupe `prospection` (`tools/prometheus/values.yaml` → `serverFiles.alerting_rules.yml`) s'évaluaient déjà dans Prometheus, mais **ne notifiaient nulle part** : `server.alertmanagers` était vide et l'Alertmanager n'avait aucun `config` (donc aucun receiver).
Cette PR câble la **livraison end-to-end** vers le bot Telegram de prospection, en réutilisant `telegram_configs` natif d'Alertmanager.
## Changements
**1. Vault IaC (`hashicorp-vault/iac/main.tf`)**
- Policy read-only `alertmanager-telegram` sur `kvv2/data/prospection/telegram`.
- Rôle k8s `alertmanager` (SA `prometheus-alertmanager`, ns `tools`, audience `vault`), rattaché à `vault_auth_backend.kubernetes`.
- Appliqué par le workflow `vault.yaml` (OIDC → Vault), pas par ArgoCD.
**2. VSO (`prometheus/templates/vault-telegram.yaml`, nouveau)**
- Le Secret `prospection-telegram` est namespace-scoped (`prospection`) et non réutilisable dans `tools`. On resynchronise donc le **même chemin kvv2** vers un Secret `alertmanager-telegram` dans `tools`.
- `VaultAuth` (rôle `alertmanager`) + `VaultStaticSecret` (mount `kvv2`, path `prospection/telegram`, kv-v2, `refreshAfter: 1h`).
- `rolloutRestartTargets` sur le StatefulSet `prometheus-alertmanager` (ceinture + bretelles ; Alertmanager relit `bot_token_file` à chaque envoi de toute façon).
**3. Prometheus values (`prometheus/values.yaml`)**
- `server.alertmanagers` → `prometheus-alertmanager:9093`.
- `alertmanager.config` : `route` (group_by alertname/app) + receiver `telegram` (`bot_token_file` sur le fichier monté, `chat_id` inline non sensible, `parse_mode: HTML`, `send_resolved: true`).
- `alertmanager.extraSecretMounts` : montage du Secret `alertmanager-telegram` sur `/etc/alertmanager/telegram`.
## Vérifications
- `helm template` du chart : le ConfigMap `prometheus-alertmanager` contient bien le receiver `telegram`, la config Prometheus liste l'Alertmanager, et le StatefulSet monte le Secret sur `/etc/alertmanager/telegram` (readOnly).
- YAML validés (`yaml.safe_load_all`), `tofu fmt` clean.
- **Additif** : ni grafana (fix startupProbe récent) ni les règles d'alerte existantes ne sont modifiés.
## Suite (hors PR)
- `vault.yaml` doit être dispatché (handoff OIDC) pour créer le rôle Vault avant que VSO puisse synchroniser le Secret.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Les règles d'alerte `prospection` s'évaluaient déjà dans Prometheus mais ne
notifiaient nulle part. On câble Alertmanager pour livrer les alertes sur le bot
Telegram de prospection, via `telegram_configs` natif d'Alertmanager.
- iac Vault : policy read-only `alertmanager-telegram` sur
kvv2/data/prospection/telegram + rôle k8s `alertmanager` (SA
prometheus-alertmanager, ns tools).
- VSO : VaultAuth + VaultStaticSecret resynchronisent kvv2/prospection/telegram
vers un Secret `alertmanager-telegram` dans le ns tools (le Secret prospection
est namespace-scoped, non réutilisable). rolloutRestartTargets sur le
StatefulSet Alertmanager.
- prometheus values : lien server -> Alertmanager (prometheus-alertmanager:9093),
route + receiver `telegram` (bot_token_file monté, chat_id inline, parse_mode
HTML, send_resolved), et montage du Secret via extraSecretMounts.
Additif : ni grafana ni les règles d'alerte existantes ne sont touchés.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Contexte
Les règles d'alerte du groupe
prospection(tools/prometheus/values.yaml→serverFiles.alerting_rules.yml) s'évaluaient déjà dans Prometheus, mais ne notifiaient nulle part :server.alertmanagersétait vide et l'Alertmanager n'avait aucunconfig(donc aucun receiver).Cette PR câble la livraison end-to-end vers le bot Telegram de prospection, en réutilisant
telegram_configsnatif d'Alertmanager.Changements
1. Vault IaC (
hashicorp-vault/iac/main.tf)alertmanager-telegramsurkvv2/data/prospection/telegram.alertmanager(SAprometheus-alertmanager, nstools, audiencevault), rattaché àvault_auth_backend.kubernetes.vault.yaml(OIDC → Vault), pas par ArgoCD.2. VSO (
prometheus/templates/vault-telegram.yaml, nouveau)prospection-telegramest namespace-scoped (prospection) et non réutilisable danstools. On resynchronise donc le même chemin kvv2 vers un Secretalertmanager-telegramdanstools.VaultAuth(rôlealertmanager) +VaultStaticSecret(mountkvv2, pathprospection/telegram, kv-v2,refreshAfter: 1h).rolloutRestartTargetssur le StatefulSetprometheus-alertmanager(ceinture + bretelles ; Alertmanager relitbot_token_fileà chaque envoi de toute façon).3. Prometheus values (
prometheus/values.yaml)server.alertmanagers→prometheus-alertmanager:9093.alertmanager.config:route(group_by alertname/app) + receivertelegram(bot_token_filesur le fichier monté,chat_idinline non sensible,parse_mode: HTML,send_resolved: true).alertmanager.extraSecretMounts: montage du Secretalertmanager-telegramsur/etc/alertmanager/telegram.Vérifications
helm templatedu chart : le ConfigMapprometheus-alertmanagercontient bien le receivertelegram, la config Prometheus liste l'Alertmanager, et le StatefulSet monte le Secret sur/etc/alertmanager/telegram(readOnly).yaml.safe_load_all),tofu fmtclean.Suite (hors PR)
vault.yamldoit être dispatché (handoff OIDC) pour créer le rôle Vault avant que VSO puisse synchroniser le Secret.🤖 Generated with Claude Code