VictoriaMetrics / VictoriaMetrics/operator
Add payload field to webhook_configs in VMAlertmanagerConfig CRD and operator validation
@vrutkovs is already working on this.
Since Aug 21, 2026.
- Dominant language
- Go
- Stars
- 589
- Forks
- 229
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 77
Description
Summary
Alertmanager v0.32.0 introduced the payload field for webhook_configs, allowing users to specify a custom JSON payload for webhook notifications. This field is documented in the official Alertmanager configuration reference:
https://prometheus.io/docs/alerting/0.32/configuration/#webhook_config
However, the VictoriaMetrics operator (VMAlertmanagerConfig CRD) does not currently support this field. There are two separate issues that prevent its usage:
- CRD schema validation – The payload field is not defined in the CRD schema. Any attempt to include it in a VMAlertmanagerConfig resource is rejected by the Kubernetes API server with an error similar to:
error validating data: ValidationError(VMAlertmanagerConfig.spec.receivers[0].webhook_configs[0]): unknown field "payload"
- Operator internal validation – Even when trying to bypass the CRD by supplying a full Alertmanager configuration via configRawYaml or configSecret on the VMAlertmanager resource, the operator still parses the configuration into its internal config.plain structure, which does not include the payload field. This results in an error like:
yaml: unmarshal errors:
line XX: field payload not found in type config.plain
Consequently, there is currently no way to configure a custom webhook payload using the VictoriaMetrics operator, regardless of whether you use VMAlertmanagerConfig CRDs or configRawYaml/configSecret. Users are forced to deploy an intermediate webhook adapter service to transform the payload externally.
Upstream Support
The payload field is already supported by:
- Alertmanager itself – introduced in v0.32.0 (released 2026-04-08)
- Prometheus Operator – already implemented and merged via PR #8505. The corresponding issue is #8527.
Proposed Change
Add the payload field to the webhook_configs section of the VMAlertmanagerConfig CRD, and update the operator's internal config.plain struct to recognize and pass this field through to the Alertmanager configuration.
Why This Matters
- Consistency – Users expect the operator to support all fields that Alertmanager itself supports.
- Parity – Prometheus Operator already supports this field; VictoriaMetrics operator should follow suit.
- User Experience – Currently, users must choose between using CRD-based configuration (which lacks this feature) or using workarounds that bypass CRD management.
Related Issues
- Issue #2064 – Similar request for update_message field in SlackConfig, also introduced in Alertmanager v0.32.0.
- Issue #8527 – prometheus-operator – Same feature request for Prometheus Operator.
Additional Context
- Alertmanager v0.32.0 release notes: https://github.com/prometheus/alertmanager/releases/tag/v0.32.0[reference:8]
- Alertmanager webhook_config documentation: https://prometheus.io/docs/alerting/0.32/configuration/#webhook_config[reference:9]
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.