mirror of
https://github.com/prometheus-operator/prometheus-operator.git
synced 2025-04-21 03:38:43 +00:00
Merge pull request #7313 from slashpai/chore-0-80-discord
This commit is contained in:
commit
9716e268da
10 changed files with 165 additions and 3 deletions
CHANGELOG.md
pkg/alertmanager
amcfg.goamcfg_test.go
testdata
test_avatar_url_field_added_in_discord_config_for_supported_versions.goldentest_avatar_url_field_dropped_in_discord_config_for_unsupported_versions.goldentest_content_field_added_in_discord_config_for_supported_versions.goldentest_content_field_dropped_in_discord_config_for_unsupported_versions.goldentest_username_field_added_in_discord_config_for_supported_versions.goldentest_username_field_dropped_in_discord_config_for_unsupported_versions.golden
types.go
|
@ -5,7 +5,8 @@
|
|||
* [FEATURE] Add `keepIdentifyingResourceAttributes` field in OTLPConfig for `Prometheus` and `PrometheusAgent` CRDs. #7240
|
||||
* [FEATURE] Add `fallbackScrapeProtocol` field to ScrapeClass for `Prometheus` and `PrometheusAgent` CRDs. #7288
|
||||
* [FEATURE] Support `MSTeamsV2Config` receiver in Alertmanager configuration Secret. #7296
|
||||
* [FEATURE] Add `Timeout` field in Webhook receiver in Alertmanager configuration Secret. #7312
|
||||
* [FEATURE] Add `timeout` field in Webhook receiver in Alertmanager configuration Secret. #7312
|
||||
* [FEATURE] Add `content`, `username` and `avatarUrl` fields in Discord receiver in Alertmanager configuration secret. #7313
|
||||
* [FEATURE] Add `scrapeFailureLogFile` field to the Prometheus and PrometheusAgent CRDs. #7038 #7311
|
||||
* [BUGFIX] Validate respective api URL field in PagerDutyConfigs, DiscordConfigs, SlackConfigs and WebhookConfigs in AlertManagerConfig CRD. #6585
|
||||
|
||||
|
|
|
@ -2329,13 +2329,33 @@ func (tc *telegramConfig) sanitize(amVersion semver.Version, logger *slog.Logger
|
|||
return tc.HTTPConfig.sanitize(amVersion, logger)
|
||||
}
|
||||
|
||||
func (tc *discordConfig) sanitize(amVersion semver.Version, logger *slog.Logger) error {
|
||||
func (dc *discordConfig) sanitize(amVersion semver.Version, logger *slog.Logger) error {
|
||||
discordAllowed := amVersion.GTE(semver.MustParse("0.25.0"))
|
||||
lessThanV0_28 := amVersion.LT(semver.MustParse("0.28.0"))
|
||||
|
||||
if !discordAllowed {
|
||||
return fmt.Errorf(`invalid syntax in receivers config; discord integration is available in Alertmanager >= 0.25.0`)
|
||||
}
|
||||
|
||||
return tc.HTTPConfig.sanitize(amVersion, logger)
|
||||
if dc.Content != "" && lessThanV0_28 {
|
||||
msg := "'content' supported in Alertmanager >= 0.28.0 only - dropping field from provided config"
|
||||
logger.Warn(msg, "current_version", amVersion.String())
|
||||
dc.Content = ""
|
||||
}
|
||||
|
||||
if dc.Username != "" && lessThanV0_28 {
|
||||
msg := "'username' supported in Alertmanager >= 0.28.0 only - dropping field from provided config"
|
||||
logger.Warn(msg, "current_version", amVersion.String())
|
||||
dc.Username = ""
|
||||
}
|
||||
|
||||
if dc.AvatarURL != "" && lessThanV0_28 {
|
||||
msg := "'avatar_url' supported in Alertmanager >= 0.28.0 only - dropping field from provided config"
|
||||
logger.Warn(msg, "current_version", amVersion.String())
|
||||
dc.AvatarURL = ""
|
||||
}
|
||||
|
||||
return dc.HTTPConfig.sanitize(amVersion, logger)
|
||||
}
|
||||
|
||||
func (tc *webexConfig) sanitize(amVersion semver.Version, logger *slog.Logger) error {
|
||||
|
|
|
@ -2362,6 +2362,9 @@ func TestSanitizeConfig(t *testing.T) {
|
|||
versionDiscordAllowed := semver.Version{Major: 0, Minor: 25}
|
||||
versionDiscordNotAllowed := semver.Version{Major: 0, Minor: 24}
|
||||
|
||||
versionDiscordMessageFieldsAllowed := semver.Version{Major: 0, Minor: 28}
|
||||
versionDiscordMessageFieldsNotAllowed := semver.Version{Major: 0, Minor: 27}
|
||||
|
||||
versionMSteamsV2Allowed := semver.Version{Major: 0, Minor: 28}
|
||||
versionMSteamsV2NotAllowed := semver.Version{Major: 0, Minor: 27}
|
||||
|
||||
|
@ -2613,6 +2616,108 @@ func TestSanitizeConfig(t *testing.T) {
|
|||
},
|
||||
expectErr: true,
|
||||
},
|
||||
{
|
||||
name: "Test content is dropped in discord config for unsupported versions",
|
||||
againstVersion: versionDiscordMessageFieldsNotAllowed,
|
||||
in: &alertmanagerConfig{
|
||||
Receivers: []*receiver{
|
||||
{
|
||||
DiscordConfigs: []*discordConfig{
|
||||
{
|
||||
WebhookURL: "http://example.com",
|
||||
Content: "content added for unsupported version",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
golden: "test_content_field_dropped_in_discord_config_for_unsupported_versions.golden",
|
||||
},
|
||||
{
|
||||
name: "Test content is added in discord config for supported versions",
|
||||
againstVersion: versionDiscordMessageFieldsAllowed,
|
||||
in: &alertmanagerConfig{
|
||||
Receivers: []*receiver{
|
||||
{
|
||||
DiscordConfigs: []*discordConfig{
|
||||
{
|
||||
WebhookURL: "http://example.com",
|
||||
Content: "content added for supported version",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
golden: "test_content_field_added_in_discord_config_for_supported_versions.golden",
|
||||
},
|
||||
{
|
||||
name: "Test username is dropped in discord config for unsupported versions",
|
||||
againstVersion: versionDiscordMessageFieldsNotAllowed,
|
||||
in: &alertmanagerConfig{
|
||||
Receivers: []*receiver{
|
||||
{
|
||||
DiscordConfigs: []*discordConfig{
|
||||
{
|
||||
WebhookURL: "http://example.com",
|
||||
Username: "discord_admin",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
golden: "test_username_field_dropped_in_discord_config_for_unsupported_versions.golden",
|
||||
},
|
||||
{
|
||||
name: "Test username is added in discord config for supported versions",
|
||||
againstVersion: versionDiscordMessageFieldsAllowed,
|
||||
in: &alertmanagerConfig{
|
||||
Receivers: []*receiver{
|
||||
{
|
||||
DiscordConfigs: []*discordConfig{
|
||||
{
|
||||
WebhookURL: "http://example.com",
|
||||
Username: "discord_admin",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
golden: "test_username_field_added_in_discord_config_for_supported_versions.golden",
|
||||
},
|
||||
{
|
||||
name: "Test avatar_url is dropped in discord config for unsupported versions",
|
||||
againstVersion: versionDiscordMessageFieldsNotAllowed,
|
||||
in: &alertmanagerConfig{
|
||||
Receivers: []*receiver{
|
||||
{
|
||||
DiscordConfigs: []*discordConfig{
|
||||
{
|
||||
WebhookURL: "http://example.com",
|
||||
AvatarURL: "http://example.com/discord_avatar",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
golden: "test_avatar_url_field_dropped_in_discord_config_for_unsupported_versions.golden",
|
||||
},
|
||||
{
|
||||
name: "Test avatar_url is added in discord config for supported versions",
|
||||
againstVersion: versionDiscordMessageFieldsAllowed,
|
||||
in: &alertmanagerConfig{
|
||||
Receivers: []*receiver{
|
||||
{
|
||||
DiscordConfigs: []*discordConfig{
|
||||
{
|
||||
WebhookURL: "http://example.com",
|
||||
AvatarURL: "http://example.com/discord_avatar",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
golden: "test_avatar_url_field_added_in_discord_config_for_supported_versions.golden",
|
||||
},
|
||||
{
|
||||
name: "webex_config for supported versions",
|
||||
againstVersion: versionWebexAllowed,
|
||||
|
|
6
pkg/alertmanager/testdata/test_avatar_url_field_added_in_discord_config_for_supported_versions.golden
generated
vendored
Normal file
6
pkg/alertmanager/testdata/test_avatar_url_field_added_in_discord_config_for_supported_versions.golden
generated
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
receivers:
|
||||
- name: ""
|
||||
discord_configs:
|
||||
- webhook_url: http://example.com
|
||||
avatar_url: http://example.com/discord_avatar
|
||||
templates: []
|
5
pkg/alertmanager/testdata/test_avatar_url_field_dropped_in_discord_config_for_unsupported_versions.golden
generated
vendored
Normal file
5
pkg/alertmanager/testdata/test_avatar_url_field_dropped_in_discord_config_for_unsupported_versions.golden
generated
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
receivers:
|
||||
- name: ""
|
||||
discord_configs:
|
||||
- webhook_url: http://example.com
|
||||
templates: []
|
6
pkg/alertmanager/testdata/test_content_field_added_in_discord_config_for_supported_versions.golden
generated
vendored
Normal file
6
pkg/alertmanager/testdata/test_content_field_added_in_discord_config_for_supported_versions.golden
generated
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
receivers:
|
||||
- name: ""
|
||||
discord_configs:
|
||||
- webhook_url: http://example.com
|
||||
content: content added for supported version
|
||||
templates: []
|
5
pkg/alertmanager/testdata/test_content_field_dropped_in_discord_config_for_unsupported_versions.golden
generated
vendored
Normal file
5
pkg/alertmanager/testdata/test_content_field_dropped_in_discord_config_for_unsupported_versions.golden
generated
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
receivers:
|
||||
- name: ""
|
||||
discord_configs:
|
||||
- webhook_url: http://example.com
|
||||
templates: []
|
6
pkg/alertmanager/testdata/test_username_field_added_in_discord_config_for_supported_versions.golden
generated
vendored
Normal file
6
pkg/alertmanager/testdata/test_username_field_added_in_discord_config_for_supported_versions.golden
generated
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
receivers:
|
||||
- name: ""
|
||||
discord_configs:
|
||||
- webhook_url: http://example.com
|
||||
username: discord_admin
|
||||
templates: []
|
5
pkg/alertmanager/testdata/test_username_field_dropped_in_discord_config_for_unsupported_versions.golden
generated
vendored
Normal file
5
pkg/alertmanager/testdata/test_username_field_dropped_in_discord_config_for_unsupported_versions.golden
generated
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
receivers:
|
||||
- name: ""
|
||||
discord_configs:
|
||||
- webhook_url: http://example.com
|
||||
templates: []
|
|
@ -368,6 +368,9 @@ type discordConfig struct {
|
|||
WebhookURL string `yaml:"webhook_url,omitempty"`
|
||||
Title string `yaml:"title,omitempty"`
|
||||
Message string `yaml:"message,omitempty"`
|
||||
Content string `yaml:"content,omitempty"`
|
||||
Username string `yaml:"username,omitempty"`
|
||||
AvatarURL string `yaml:"avatar_url,omitempty"`
|
||||
}
|
||||
|
||||
type webexConfig struct {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue