From 1e787e0c9c27af44518d521c3fcd8a66c3477df5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Mon, 20 Apr 2020 15:36:35 +0100 Subject: [PATCH] fix(backend): ensure alertmanager server uses default name if not set Fixes #1646 --- .../duplicated_alertmanager_default_name.txt | 11 +++++++++++ .../tests/testscript/empty_alertmanager_name.txt | 10 ++++++++++ internal/config/config.go | 3 +++ 3 files changed, 24 insertions(+) create mode 100644 cmd/karma/tests/testscript/duplicated_alertmanager_default_name.txt create mode 100644 cmd/karma/tests/testscript/empty_alertmanager_name.txt diff --git a/cmd/karma/tests/testscript/duplicated_alertmanager_default_name.txt b/cmd/karma/tests/testscript/duplicated_alertmanager_default_name.txt new file mode 100644 index 000000000..1e5be3cab --- /dev/null +++ b/cmd/karma/tests/testscript/duplicated_alertmanager_default_name.txt @@ -0,0 +1,11 @@ +# Raises an error if we have 2 instances with the same name (one using default name) +karma.bin-should-fail --log.format=text --log.config=false --log.level=error --config.file=karma.yaml +! stdout . +stderr 'msg="Failed to register Alertmanager ''default'' with URI ''https://localhost:9094'': alertmanager upstream ''default'' already exist"' + +-- karma.yaml -- +alertmanager: + servers: + - name: default + uri: https://localhost:9093 + - uri: https://localhost:9094 diff --git a/cmd/karma/tests/testscript/empty_alertmanager_name.txt b/cmd/karma/tests/testscript/empty_alertmanager_name.txt new file mode 100644 index 000000000..36fddb036 --- /dev/null +++ b/cmd/karma/tests/testscript/empty_alertmanager_name.txt @@ -0,0 +1,10 @@ +# Uses 'default' as the default alertmanager name +karma.bin-should-work --log.format=text --log.config=false --config.file=karma.yaml --check-config +! stdout . +stderr 'msg="\[default\] Configured Alertmanager source at http://localhost:9093 \(proxied: false\, readonly: false\)"' +! stderr 'level=error' + +-- karma.yaml -- +alertmanager: + servers: + - uri: http://localhost:9093 diff --git a/internal/config/config.go b/internal/config/config.go index 1461dd86a..747b3ea99 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -269,6 +269,9 @@ func (config *configSchema) Read(flags *pflag.FlagSet) string { } for i, s := range config.Alertmanager.Servers { + if s.Name == "" { + config.Alertmanager.Servers[i].Name = "default" + } if s.Timeout.Seconds() == 0 { config.Alertmanager.Servers[i].Timeout = config.Alertmanager.Timeout }