From 824de355c0adfe18fa1969e901026b902af95073 Mon Sep 17 00:00:00 2001 From: gotjosh Date: Wed, 14 Feb 2024 10:17:19 +0000 Subject: [PATCH 1/4] Release: Cut 0.27.0-rc.0 Signed-off-by: gotjosh --- CHANGELOG.md | 39 +++++++++++++++++++++++++++++++++++++++ VERSION | 2 +- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46d9a2a60b..b3e45728af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,42 @@ +## 0.27.0-rc.0 / 2024-02-14 + +* [CHANGE] Discord Integration: Enforce max length in `message`. #3597 +* [CHANGE] API: Removal of all `api/v1/` endpoints. These endpoints now log and return a deprecation message and response with a status code of `410`. #2970 +* [FEATURE] UTF-8 Support: Introduction of support for any UTF-8 character as part of label names and matchers. Please read more below. +* [FEATURE] Metrics: Introduced the experimental feature flag `--enable-feature=receiver-name-in-metrics` to include the receiver name in the following metrics: #3045 + * `alertmanager_notifications_total` + * `alertmanager_notifications_failed_totall` + * `alertmanager_notification_requests_total` + * `alertmanager_notification_requests_failed_total` + * `alertmanager_notification_latency_seconds` +* [FEATURE] Metrics: Introduced a new gauge named `alertmanager_inhibition_rules` that counts the number of configured inhibition rules. #3681 +* [FEATURE] Metrics: Introduced a new counter named `alertmanager_alerts_supressed_total` that tracks muted alerts, it contains a `reason` label to indicate the source of the mute. #3565 +* [ENHANCEMENT] Discord Integration: Introduced support for `webhook_url_file`. #3555 +* [ENHANCEMENT] Microsoft Teams Integration: Introduced support for `webhook_url_file`. #3555 +* [ENHANCEMENT] Microsoft Teams Integration: Add support for `summary`. #3616 +* [ENHANCEMENT] Metrics: Notification metrics now support two new values for the label `reason`, `contextCanceled` and `contextDeadlineExceeded`. #3631 +* [ENHANCEMENT] Email Integration: Contents of `auth_password_file` are now trimmed of prefixed and suffixed whitespace. #3680 +* [BUGFIX] amtool: Fixes the error `scheme required for webhook url` when using amtool with `--alertmanager.url`. #3509 +* [BUGFIX] Mixin: Fix `AlertmanagerFailedToSendAlerts`, `AlertmanagerClusterFailedToSendAlerts`, and `AlertmanagerClusterFailedToSendAlerts` to make sure they ignore the `reason` label. #3599 + +### Removal of API v1 + +The Alertmanager `v1` API Has been deprecated since January 2019 with the release of Alertmanager `v0.16.0`. With the release of version `0.27.0` it is now removed. +A successful HTTP request to any of the `v1` endpoints will log and return a deprecation message while responding a status code of `410`. +Please ensure you switch to the `v2` equivalent endpoint in your integrations before upgrading. + +### Alertmanager support for all UTF-8 characters in matchers and label names + +Starting with Alertmanager 0.27, we have a new parser for matchers that has a number of backwards incompatible changes. While most matchers will be forward-compatible, some will not. Alertmanager is operating a transition period where it supports both UTF-8 and classic matchers, so **it's entirely safe to upgrade without any additional configuration**. With that said, we recommend the following: + +- If this is a new Alertmanager installation, we recommend enabling UTF-8 strict mode before creating an Alertmanager configuration file. You can enable strict mode with `alertmanager --config.file=config.yml --enable-feature="utf8-strict-mode"`. + +- If this is an existing Alertmanager installation, we recommend running the Alertmanager in the default mode called fallback mode before enabling UTF-8 strict mode. In this mode, Alertmanager will log a warning if you need to make any changes to your configuration file before UTF-8 strict mode can be enabled. **Alertmanager will make UTF-8 strict mode the default in the next two versions**, so it's important to transition as soon as possible. + +Irrespective of whether an Alertmanager installation is a new or existing installation, you can also use `amtool` to validate that an Alertmanager configuration file is compatible with UTF-8 strict mode before enabling it in Alertmanager server by running `amtool check-config config.yml` and inspecting the log messages. + +Should you encounter any problems, you can run the Alertmanager with just the classic parser enabled by running `alertmanager --config.file=config.yml --enable-feature="classic-mode"`. If so, please submit a bug report via GitHub issues. + ## 0.26.0 / 2023-08-23 * [SECURITY] Fix stored XSS via the /api/v1/alerts endpoint in the Alertmanager UI. CVE-2023-40577 diff --git a/VERSION b/VERSION index 4e8f395fa5..205fccd4ff 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.26.0 +0.27.0-rc.0 From 6d52bcf8a5b6dae166bebb75427f4e91c4053ea3 Mon Sep 17 00:00:00 2001 From: gotjosh Date: Wed, 14 Feb 2024 10:24:12 +0000 Subject: [PATCH 2/4] small fixes - typo in respond - add PR numbers for UTF-8 Signed-off-by: gotjosh --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3e45728af..887c30841d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ ## 0.27.0-rc.0 / 2024-02-14 * [CHANGE] Discord Integration: Enforce max length in `message`. #3597 -* [CHANGE] API: Removal of all `api/v1/` endpoints. These endpoints now log and return a deprecation message and response with a status code of `410`. #2970 -* [FEATURE] UTF-8 Support: Introduction of support for any UTF-8 character as part of label names and matchers. Please read more below. +* [CHANGE] API: Removal of all `api/v1/` endpoints. These endpoints now log and return a deprecation message and respond with a status code of `410`. #2970 +* [FEATURE] UTF-8 Support: Introduction of support for any UTF-8 character as part of label names and matchers. Please read more below. #3453, #3483, #3567, #3570 * [FEATURE] Metrics: Introduced the experimental feature flag `--enable-feature=receiver-name-in-metrics` to include the receiver name in the following metrics: #3045 * `alertmanager_notifications_total` * `alertmanager_notifications_failed_totall` From b379b29aa8a7a56674c7038ad76251770d201ed0 Mon Sep 17 00:00:00 2001 From: gotjosh Date: Wed, 14 Feb 2024 10:46:47 +0000 Subject: [PATCH 3/4] more worthsmithing Signed-off-by: gotjosh --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 887c30841d..2db2d56a29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,13 +21,13 @@ ### Removal of API v1 -The Alertmanager `v1` API Has been deprecated since January 2019 with the release of Alertmanager `v0.16.0`. With the release of version `0.27.0` it is now removed. -A successful HTTP request to any of the `v1` endpoints will log and return a deprecation message while responding a status code of `410`. +The Alertmanager `v1` API has been deprecated since January 2019 with the release of Alertmanager `v0.16.0`. With the release of version `0.27.0` it is now removed. +A successful HTTP request to any of the `v1` endpoints will log and return a deprecation message while responding with a status code of `410`. Please ensure you switch to the `v2` equivalent endpoint in your integrations before upgrading. ### Alertmanager support for all UTF-8 characters in matchers and label names -Starting with Alertmanager 0.27, we have a new parser for matchers that has a number of backwards incompatible changes. While most matchers will be forward-compatible, some will not. Alertmanager is operating a transition period where it supports both UTF-8 and classic matchers, so **it's entirely safe to upgrade without any additional configuration**. With that said, we recommend the following: +Starting with Alertmanager `v0.27.0`, we have a new parser for matchers that has a number of backwards incompatible changes. While most matchers will be forward-compatible, some will not. Alertmanager is operating a transition period where it supports both UTF-8 and classic matchers, so **it's entirely safe to upgrade without any additional configuration**. With that said, we recommend the following: - If this is a new Alertmanager installation, we recommend enabling UTF-8 strict mode before creating an Alertmanager configuration file. You can enable strict mode with `alertmanager --config.file=config.yml --enable-feature="utf8-strict-mode"`. From 0fbd018ebd63a57f9491ac5e62debd6b9b78fead Mon Sep 17 00:00:00 2001 From: gotjosh Date: Wed, 14 Feb 2024 11:18:28 +0000 Subject: [PATCH 4/4] Fix flaky test TestClusterJoinAndReconnect/TestTLSConnection (#3722) wait until `p2.Status()` returns because it blocks until we're ready - that way, we're guaranteed to know that the cluster size is 2. Signed-off-by: gotjosh --- cluster/cluster_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cluster/cluster_test.go b/cluster/cluster_test.go index 768608758c..53db6d0895 100644 --- a/cluster/cluster_test.go +++ b/cluster/cluster_test.go @@ -335,6 +335,8 @@ func testTLSConnection(t *testing.T) { require.NoError(t, err) go p2.Settle(context.Background(), 0*time.Second) p2.WaitReady(context.Background()) + require.Equal(t, "ready", p2.Status()) + require.Equal(t, 2, p1.ClusterSize()) p2.Leave(0 * time.Second) require.Equal(t, 1, p1.ClusterSize())