From 9222133df83693cb8945da46e5b32e309c501e21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Thu, 22 Apr 2021 15:13:27 +0100 Subject: [PATCH] fix(backend): allow duplicated upstream URIs Fixes #3024 --- CHANGELOG.md | 5 +++++ .../039_duplicated_alertmanager_uri.txt | 17 ----------------- internal/alertmanager/upstream.go | 5 ----- 3 files changed, 5 insertions(+), 22 deletions(-) delete mode 100644 cmd/karma/tests/testscript/039_duplicated_alertmanager_uri.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 2121b7ea3..6c2a96c0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ for multi-grid, when multi-grid is configured to `Automatic selection` in the UI or when `ui:multiGridLabel` config section is set to `@auto`. +### Changed + +- karma will no longer fail to start if config file contains multiple alertmanager + instances with different name but identical URI #3024. + ## v0.83 ### Added diff --git a/cmd/karma/tests/testscript/039_duplicated_alertmanager_uri.txt b/cmd/karma/tests/testscript/039_duplicated_alertmanager_uri.txt deleted file mode 100644 index e1e447bae..000000000 --- a/cmd/karma/tests/testscript/039_duplicated_alertmanager_uri.txt +++ /dev/null @@ -1,17 +0,0 @@ -# Raises an error if we have 2 instances with the same URI -karma.bin-should-fail --config.file karma.yaml -! stdout . -cmp stderr stderr.txt - --- stderr.txt -- -level=info msg="Reading configuration file" path=karma.yaml -level=info msg="Version: dev" -level=info msg="Configured Alertmanager source" name=am1 proxy=false readonly=false uri=https://127.0.0.1:9093 -level=error msg="Execution failed" error="failed to register Alertmanager 'am2' with URI 'https://127.0.0.1:9093': alertmanager upstream 'am1' already collects from 'https://127.0.0.1:9093'" --- karma.yaml -- -alertmanager: - servers: - - name: am1 - uri: https://127.0.0.1:9093 - - name: am2 - uri: https://127.0.0.1:9093 diff --git a/internal/alertmanager/upstream.go b/internal/alertmanager/upstream.go index a44fee7b4..a7bb2c0b3 100644 --- a/internal/alertmanager/upstream.go +++ b/internal/alertmanager/upstream.go @@ -75,11 +75,6 @@ func RegisterAlertmanager(am *Alertmanager) error { return fmt.Errorf("alertmanager upstream '%s' already exist", am.Name) } - for _, existingAM := range upstreams { - if existingAM.URI == am.URI { - return fmt.Errorf("alertmanager upstream '%s' already collects from '%s'", existingAM.Name, uri.SanitizeURI(existingAM.URI)) - } - } upstreams[am.Name] = am // am.Name, uri.SanitizeURI(am.URI), am.ProxyRequests, am.ReadOnly log.Info().