diff --git a/pkg/alertmanager/amcfg.go b/pkg/alertmanager/amcfg.go index f3802f1f2..a9e458c0a 100644 --- a/pkg/alertmanager/amcfg.go +++ b/pkg/alertmanager/amcfg.go @@ -3175,6 +3175,10 @@ func (cb *ConfigBuilder) checkAlertmanagerGlobalConfigResource( return err } + if err := cb.checkGlobalVictorOpsConfig(ctx, gc.VictorOpsConfig, namespace); err != nil { + return err + } + if err := cb.checkGlobalWebexConfig(gc.WebexConfig); err != nil { return err } @@ -3210,6 +3214,24 @@ func (cb *ConfigBuilder) checkGlobalJiraConfig(jc *monitoringv1.GlobalJiraConfig return nil } +func (cb *ConfigBuilder) checkGlobalVictorOpsConfig( + ctx context.Context, + vc *monitoringv1.GlobalVictorOpsConfig, + namespace string, +) error { + if vc == nil { + return nil + } + + if vc.APIKey != nil { + if _, err := cb.store.GetSecretKey(ctx, namespace, *vc.APIKey); err != nil { + return err + } + } + + return nil +} + func (cb *ConfigBuilder) checkGlobalWebexConfig(wc *monitoringv1.GlobalWebexConfig) error { if wc == nil { return nil diff --git a/pkg/alertmanager/validation/v1/validation.go b/pkg/alertmanager/validation/v1/validation.go index a7e77bcfe..eb42b0d94 100644 --- a/pkg/alertmanager/validation/v1/validation.go +++ b/pkg/alertmanager/validation/v1/validation.go @@ -42,6 +42,10 @@ func ValidateAlertmanagerGlobalConfig(gc *monitoringv1.AlertmanagerGlobalConfig) return fmt.Errorf("webex: %w", err) } + if err := validateGlobalVictorOpsConfig(gc.VictorOpsConfig); err != nil { + return fmt.Errorf("victorops: %w", err) + } + if err := validateGlobalWeChatConfig(gc.WeChatConfig); err != nil { return fmt.Errorf("wechatConfig: %w", err) } @@ -73,6 +77,18 @@ func validateGlobalJiraConfig(jc *monitoringv1.GlobalJiraConfig) error { return nil } +func validateGlobalVictorOpsConfig(vc *monitoringv1.GlobalVictorOpsConfig) error { + if vc == nil { + return nil + } + + if err := validation.ValidateURLPtr((*string)(vc.APIURL)); err != nil { + return fmt.Errorf("invalid apiURL: %w", err) + } + + return nil +} + func validateGlobalWebexConfig(wc *monitoringv1.GlobalWebexConfig) error { if wc == nil { return nil