github.com/verrazzano/verrazzano@v1.7.1/tools/psr/backend/pkg/prometheus/updater.go (about) 1 // Copyright (c) 2022, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 package prometheus 5 6 import ( 7 vzapi "github.com/verrazzano/verrazzano/platform-operator/apis/verrazzano/v1alpha1" 8 corev1 "k8s.io/api/core/v1" 9 ) 10 11 const ( 12 AlertmanagerCMName = "alertmanager-config-override" 13 AlertmanagerCMKey = "config" 14 ) 15 16 type AlertmanagerConfigModifier struct { 17 } 18 19 func (u AlertmanagerConfigModifier) ModifyCR(cr *vzapi.Verrazzano) { 20 selector := &corev1.ConfigMapKeySelector{ 21 LocalObjectReference: corev1.LocalObjectReference{ 22 Name: AlertmanagerCMName, 23 }, 24 Key: AlertmanagerCMKey, 25 } 26 if cr.Spec.Components.PrometheusOperator == nil { 27 cr.Spec.Components.PrometheusOperator = &vzapi.PrometheusOperatorComponent{} 28 } 29 overrides := cr.Spec.Components.PrometheusOperator.ValueOverrides 30 if overrides == nil { 31 overrides = []vzapi.Overrides{} 32 } else { 33 for _, override := range overrides { 34 if override.ConfigMapRef.Name == selector.LocalObjectReference.Name && override.ConfigMapRef.Key == selector.Key { 35 return 36 } 37 } 38 } 39 cr.Spec.Components.PrometheusOperator.ValueOverrides = append(overrides, vzapi.Overrides{ConfigMapRef: selector}) 40 }