diff --git a/deploy/crds/common/monitoring.rhobs_monitoringstacks.yaml b/deploy/crds/common/monitoring.rhobs_monitoringstacks.yaml index b7ceebdff..db70266f3 100644 --- a/deploy/crds/common/monitoring.rhobs_monitoringstacks.yaml +++ b/deploy/crds/common/monitoring.rhobs_monitoringstacks.yaml @@ -48,6 +48,11 @@ spec: prometheusConfig: description: Define prometheus config properties: + externalLabels: + additionalProperties: + type: string + description: Define ExternalLabels for prometheus + type: object persistentVolumeClaim: description: Define persistent volume claim for prometheus properties: diff --git a/docs/api.md b/docs/api.md index a3d63dcea..54ba152df 100644 --- a/docs/api.md +++ b/docs/api.md @@ -148,6 +148,13 @@ Define prometheus config + externalLabels + map[string]string + + Define ExternalLabels for prometheus
+ + false + persistentVolumeClaim object diff --git a/pkg/apis/v1alpha1/types.go b/pkg/apis/v1alpha1/types.go index b6fbbe4e8..1ffbb71ae 100644 --- a/pkg/apis/v1alpha1/types.go +++ b/pkg/apis/v1alpha1/types.go @@ -88,6 +88,9 @@ type PrometheusConfig struct { // Define persistent volume claim for prometheus // +optional PersistentVolumeClaim *corev1.PersistentVolumeClaimSpec `json:"persistentVolumeClaim,omitempty"` + // Define ExternalLabels for prometheus + // +optional + ExternalLabels map[string]string `json:"externalLabels,omitempty"` } // NamespaceSelector is a selector for selecting either all namespaces or a diff --git a/pkg/apis/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/v1alpha1/zz_generated.deepcopy.go index a7628403a..be10fabd8 100644 --- a/pkg/apis/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/v1alpha1/zz_generated.deepcopy.go @@ -163,6 +163,13 @@ func (in *PrometheusConfig) DeepCopyInto(out *PrometheusConfig) { *out = new(corev1.PersistentVolumeClaimSpec) (*in).DeepCopyInto(*out) } + if in.ExternalLabels != nil { + in, out := &in.ExternalLabels, &out.ExternalLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusConfig. diff --git a/pkg/controllers/monitoring-stack/components.go b/pkg/controllers/monitoring-stack/components.go index 1c41d32c0..12dbac53d 100644 --- a/pkg/controllers/monitoring-stack/components.go +++ b/pkg/controllers/monitoring-stack/components.go @@ -489,8 +489,9 @@ func newPrometheus( BaseImage: stringPtr("quay.io/thanos/thanos"), Version: stringPtr("v0.24.0"), }, - Storage: storageForPVC(config.PersistentVolumeClaim), - RemoteWrite: config.RemoteWrite, + Storage: storageForPVC(config.PersistentVolumeClaim), + RemoteWrite: config.RemoteWrite, + ExternalLabels: config.ExternalLabels, }, }