ruler: Support OAuth2 and proxies in Alertmanager client #9945
+366
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does
The AM client already supports several TLS options + basic auth for talking to Alertmanager.
Extend this to also support OAuth2 Client Credentials Workflow, plus a URL for talking to the Alertmanager through a proxy.
These are all supported in upstream Prometheus's Alertmanager client: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config
via `http_config: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config
Supports HTTP, HTTP with CONNECT, or SOCKS5 proxies per https://pkg.go.dev/net/http#Transport. Under the hood,
prometheus/common
doesn't implement anything special for proxies and just wires the configuration up tohttp.Transport
's proxy (1, 2)Which issue(s) this PR fixes or relates to
n/a
Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]
.about-versioning.md
updated with experimental features.