Skip to content

feat(alertmanager): align receiver schema with Mimir's vendored Alertmanager - #77

Merged
fgouteroux merged 15 commits into
mainfrom
feat/alertmanager-mimir-parity
Aug 10, 2026
Merged

feat(alertmanager): align receiver schema with Mimir's vendored Alertmanager#77
fgouteroux merged 15 commits into
mainfrom
feat/alertmanager-mimir-parity

Conversation

@fgouteroux

@fgouteroux fgouteroux commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Aligns the mimir_alertmanager_config receiver schema with the Alertmanager fork Mimir vendors, and makes docs generation actually run in CI.

Receiver attributes

Available in every targeted Mimir release: webhook.timeout, pagerduty.source, pushover.device / ttl, global.smtp_tls_config.

Requires Mimir >= 3.1.0, noted as such in each description: discord content / username / avatar_url; email force_implicit_tls and threading; pagerduty timeout; slack app_token / app_url / message_text / timeout; pushover monospace; telegram message_thread_id; global smtp_force_implicit_tls / slack_app_token / slack_app_url / telegram_bot_token; inhibit_rule.name.

Mimir rejects a configuration carrying a key it does not know, so every new attribute uses a plain type with omitempty and never reaches the wire unless set. TestExpandAlertmanagerConfigOmitsUnsetKeys builds each receiver block from the schema itself with zero values and asserts none of the new keys appear, so older Mimir versions stay unaffected.

Not added: the *_file variants, which Mimir refuses outright, and jira_configs / rocketchat_configs / mattermost_configs / incidentio_configs, which the vendored config parses but for which Mimir builds no notifier — a receiver holding only those gets an empty integrations list and silently drops its alerts.

Time intervals

Generated configurations now use time_intervals rather than the deprecated mute_time_intervals. Reads accept either spelling and merge them, so importing a hand-written configuration still works. No Terraform diff for existing users.

CI and docs

Adds Mimir 3.1.4 to the acceptance matrix and puts the Mimir version in the job name, with acceptance tests gated on the release that introduced each attribute.

make generate was a no-op — there was no //go:generate directive anywhere, so the "Confirm no diff" step passed unconditionally. Adds the directive with an explicit provider name, since tfplugindocs otherwise derives it from the directory basename and produces different output depending on where it runs.

@fgouteroux
fgouteroux merged commit d36edf6 into main Aug 10, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant