mirror of
https://github.com/prometheus-operator/prometheus-operator.git
synced 2025-04-21 03:38:43 +00:00
Merge pull request #7316 from slashpai/global-am-updates
feat: support global smtp_tls_config in alertmanager config secret
This commit is contained in:
commit
8c196e77f5
5 changed files with 45 additions and 0 deletions
|
@ -1734,6 +1734,12 @@ func (gc *globalConfig) sanitize(amVersion semver.Version, logger *slog.Logger)
|
|||
}
|
||||
}
|
||||
|
||||
if gc.SMTPTLSConfig != nil && amVersion.LT(semver.MustParse("0.28.0")) {
|
||||
msg := "'smtp_tls_config' supported in Alertmanager >= 0.28.0 only - dropping field from provided config"
|
||||
logger.Warn(msg, "current_version", amVersion.String())
|
||||
gc.SMTPTLSConfig = nil
|
||||
}
|
||||
|
||||
// We need to sanitize the config for slack globally
|
||||
// As of v0.22.0 Alertmanager config supports passing URL via file name
|
||||
if gc.SlackAPIURLFile != "" {
|
||||
|
|
|
@ -2380,6 +2380,9 @@ func TestSanitizeConfig(t *testing.T) {
|
|||
versionMSTeamsSummaryAllowed := semver.Version{Major: 0, Minor: 27}
|
||||
versionMSTeamsSummaryNotAllowed := semver.Version{Major: 0, Minor: 26}
|
||||
|
||||
versionSMTPTLSConfigAllowed := semver.Version{Major: 0, Minor: 28}
|
||||
versionSMTPTLSConfigNotAllowed := semver.Version{Major: 0, Minor: 27}
|
||||
|
||||
for _, tc := range []struct {
|
||||
name string
|
||||
againstVersion semver.Version
|
||||
|
@ -2387,6 +2390,32 @@ func TestSanitizeConfig(t *testing.T) {
|
|||
expectErr bool
|
||||
golden string
|
||||
}{
|
||||
{
|
||||
name: "Test smtp_tls_config is dropped for unsupported versions",
|
||||
againstVersion: versionSMTPTLSConfigNotAllowed,
|
||||
in: &alertmanagerConfig{
|
||||
Global: &globalConfig{
|
||||
SMTPTLSConfig: &tlsConfig{
|
||||
CAFile: "/var/kubernetes/secrets/tls/ca.txt",
|
||||
},
|
||||
},
|
||||
},
|
||||
golden: "test_smtp_tls_config_is_dropped_for_unsupported_versions.golden",
|
||||
},
|
||||
{
|
||||
name: "Test smtp_tls_config is added for supported versions",
|
||||
againstVersion: versionSMTPTLSConfigAllowed,
|
||||
in: &alertmanagerConfig{
|
||||
Global: &globalConfig{
|
||||
SMTPTLSConfig: &tlsConfig{
|
||||
CAFile: "/var/kubernetes/secrets/tls/ca.txt",
|
||||
MinVersion: "TLS12",
|
||||
MaxVersion: "TLS13",
|
||||
},
|
||||
},
|
||||
},
|
||||
golden: "test_smtp_tls_config_is_added_for_supported_versions.golden",
|
||||
},
|
||||
{
|
||||
name: "Test slack_api_url takes precedence in global config",
|
||||
againstVersion: versionFileURLAllowed,
|
||||
|
|
7
pkg/alertmanager/testdata/test_smtp_tls_config_is_added_for_supported_versions.golden
generated
vendored
Normal file
7
pkg/alertmanager/testdata/test_smtp_tls_config_is_added_for_supported_versions.golden
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
global:
|
||||
smtp_tls_config:
|
||||
ca_file: /var/kubernetes/secrets/tls/ca.txt
|
||||
insecure_skip_verify: false
|
||||
min_version: TLS12
|
||||
max_version: TLS13
|
||||
templates: []
|
2
pkg/alertmanager/testdata/test_smtp_tls_config_is_dropped_for_unsupported_versions.golden
generated
vendored
Normal file
2
pkg/alertmanager/testdata/test_smtp_tls_config_is_dropped_for_unsupported_versions.golden
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
global: {}
|
||||
templates: []
|
|
@ -53,6 +53,7 @@ type globalConfig struct {
|
|||
SMTPAuthSecret string `yaml:"smtp_auth_secret,omitempty" json:"smtp_auth_secret,omitempty"`
|
||||
SMTPAuthIdentity string `yaml:"smtp_auth_identity,omitempty" json:"smtp_auth_identity,omitempty"`
|
||||
SMTPRequireTLS *bool `yaml:"smtp_require_tls,omitempty" json:"smtp_require_tls,omitempty"`
|
||||
SMTPTLSConfig *tlsConfig `yaml:"smtp_tls_config,omitempty" json:"smtp_tls_config,omitempty"`
|
||||
SlackAPIURL *config.URL `yaml:"slack_api_url,omitempty" json:"slack_api_url,omitempty"`
|
||||
SlackAPIURLFile string `yaml:"slack_api_url_file,omitempty" json:"slack_api_url_file,omitempty"`
|
||||
PagerdutyURL *config.URL `yaml:"pagerduty_url,omitempty" json:"pagerduty_url,omitempty"`
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue