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  }