Generate alertmanager.yml so no-webhook is a valid state, not a broken one
Deploying before the webhook exists is deliberate, so it must not depend on Alertmanager tolerating an empty webhook_url_file — which I could not verify. configure.py now generates the config and omits the Discord notifier entirely when ALERT_WEBHOOK_URL is unset: the receiver exists, drops notifications, and alerts still evaluate, group and show at /alerts. Setting the variable and re-applying turns delivery on. The URL stays in /etc/vanguard/alert-webhook rather than the config, because that file can be 0640 root:65534 for the container's user while the repo copy cannot. alertmanager.example.yml is the reference copy and is gitignored in generated form, like the other configs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -104,8 +104,9 @@ vmalert → Alertmanager → dumpd `/heartbeat`, and the disks. It speaks on cha
|
||||
with no webhook configured still logs and exits non-zero so `systemctl is-failed vanguard-deadman.service` is
|
||||
a signal. Nothing inside the stack can report its own death; this can.
|
||||
|
||||
`ALERT_WEBHOOK_URL` in `.env` → `/etc/vanguard/alert-webhook` (0640 root:65534). Empty means log-only, which
|
||||
is a working configuration, not an error.
|
||||
`ALERT_WEBHOOK_URL` in `.env` → `/etc/vanguard/alert-webhook` (0640 root:65534). Empty means log-only, which is
|
||||
a working configuration, not an error: `configure.py` generates `observability/alertmanager.yml` with the
|
||||
Discord notifier omitted, so nothing is half-configured and nothing fails to load.
|
||||
|
||||
## Wiring sketches (the options that were weighed)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user