From 02289d1854c96afc68bb2a2389df228ad586ff3d Mon Sep 17 00:00:00 2001 From: Casey Wylie Date: Wed, 4 May 2022 21:25:23 -0400 Subject: [PATCH] feat: add support for configuring Prometheus external labels (#126) Fixes: #125 Signed-off-by: cm891237 --- deploy/crds/common/monitoring.rhobs_monitoringstacks.yaml | 5 +++++ docs/api.md | 7 +++++++ pkg/apis/v1alpha1/types.go | 3 +++ pkg/apis/v1alpha1/zz_generated.deepcopy.go | 7 +++++++ pkg/controllers/monitoring-stack/components.go | 5 +++-- 5 files changed, 25 insertions(+), 2 deletions(-) diff --git a/deploy/crds/common/monitoring.rhobs_monitoringstacks.yaml b/deploy/crds/common/monitoring.rhobs_monitoringstacks.yaml index b7ceebdf..db70266f 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 a3d63dce..54ba152d 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 b6fbbe4e..1ffbb71a 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 a7628403..be10fabd 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 1c41d32c..12dbac53 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, }, }