diff --git a/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_fluentbitagents.yaml b/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_fluentbitagents.yaml index 9698286eb..e33459f79 100644 --- a/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_fluentbitagents.yaml +++ b/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_fluentbitagents.yaml @@ -805,6 +805,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -1741,6 +1745,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: diff --git a/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_fluentdconfigs.yaml b/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_fluentdconfigs.yaml index 2ce523968..9ff8c2bd9 100644 --- a/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_fluentdconfigs.yaml +++ b/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_fluentdconfigs.yaml @@ -795,6 +795,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -1896,6 +1900,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: diff --git a/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_loggings.yaml b/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_loggings.yaml index 9ccb31a91..05ab4220a 100644 --- a/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_loggings.yaml +++ b/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_loggings.yaml @@ -1666,6 +1666,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -2602,6 +2606,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -4401,6 +4409,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -5502,6 +5514,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -8017,6 +8033,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -12212,6 +12232,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: diff --git a/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_syslogngconfigs.yaml b/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_syslogngconfigs.yaml index 812751981..b807d66ad 100644 --- a/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_syslogngconfigs.yaml +++ b/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_syslogngconfigs.yaml @@ -48,6 +48,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -4243,6 +4247,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: diff --git a/charts/logging-operator/crds/logging.banzaicloud.io_fluentbitagents.yaml b/charts/logging-operator/crds/logging.banzaicloud.io_fluentbitagents.yaml index 125c7b902..25875a3fc 100644 --- a/charts/logging-operator/crds/logging.banzaicloud.io_fluentbitagents.yaml +++ b/charts/logging-operator/crds/logging.banzaicloud.io_fluentbitagents.yaml @@ -802,6 +802,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -1738,6 +1742,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: diff --git a/charts/logging-operator/crds/logging.banzaicloud.io_fluentdconfigs.yaml b/charts/logging-operator/crds/logging.banzaicloud.io_fluentdconfigs.yaml index f46d78698..9f5eaa9c2 100644 --- a/charts/logging-operator/crds/logging.banzaicloud.io_fluentdconfigs.yaml +++ b/charts/logging-operator/crds/logging.banzaicloud.io_fluentdconfigs.yaml @@ -792,6 +792,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -1893,6 +1897,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: diff --git a/charts/logging-operator/crds/logging.banzaicloud.io_loggings.yaml b/charts/logging-operator/crds/logging.banzaicloud.io_loggings.yaml index 841548725..1742005d2 100644 --- a/charts/logging-operator/crds/logging.banzaicloud.io_loggings.yaml +++ b/charts/logging-operator/crds/logging.banzaicloud.io_loggings.yaml @@ -1663,6 +1663,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -2599,6 +2603,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -4398,6 +4406,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -5499,6 +5511,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -8014,6 +8030,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -12209,6 +12229,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: diff --git a/charts/logging-operator/crds/logging.banzaicloud.io_syslogngconfigs.yaml b/charts/logging-operator/crds/logging.banzaicloud.io_syslogngconfigs.yaml index b6dc947e6..3d857e822 100644 --- a/charts/logging-operator/crds/logging.banzaicloud.io_syslogngconfigs.yaml +++ b/charts/logging-operator/crds/logging.banzaicloud.io_syslogngconfigs.yaml @@ -45,6 +45,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -4240,6 +4244,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: diff --git a/config/crd/bases/logging.banzaicloud.io_fluentbitagents.yaml b/config/crd/bases/logging.banzaicloud.io_fluentbitagents.yaml index 125c7b902..25875a3fc 100644 --- a/config/crd/bases/logging.banzaicloud.io_fluentbitagents.yaml +++ b/config/crd/bases/logging.banzaicloud.io_fluentbitagents.yaml @@ -802,6 +802,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -1738,6 +1742,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: diff --git a/config/crd/bases/logging.banzaicloud.io_fluentdconfigs.yaml b/config/crd/bases/logging.banzaicloud.io_fluentdconfigs.yaml index f46d78698..9f5eaa9c2 100644 --- a/config/crd/bases/logging.banzaicloud.io_fluentdconfigs.yaml +++ b/config/crd/bases/logging.banzaicloud.io_fluentdconfigs.yaml @@ -792,6 +792,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -1893,6 +1897,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: diff --git a/config/crd/bases/logging.banzaicloud.io_loggings.yaml b/config/crd/bases/logging.banzaicloud.io_loggings.yaml index 841548725..1742005d2 100644 --- a/config/crd/bases/logging.banzaicloud.io_loggings.yaml +++ b/config/crd/bases/logging.banzaicloud.io_loggings.yaml @@ -1663,6 +1663,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -2599,6 +2603,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -4398,6 +4406,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -5499,6 +5511,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -8014,6 +8030,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -12209,6 +12229,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: diff --git a/config/crd/bases/logging.banzaicloud.io_syslogngconfigs.yaml b/config/crd/bases/logging.banzaicloud.io_syslogngconfigs.yaml index b6dc947e6..3d857e822 100644 --- a/config/crd/bases/logging.banzaicloud.io_syslogngconfigs.yaml +++ b/config/crd/bases/logging.banzaicloud.io_syslogngconfigs.yaml @@ -45,6 +45,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: @@ -4240,6 +4244,10 @@ spec: type: boolean prometheusRules: type: boolean + prometheusRulesLabels: + additionalProperties: + type: string + type: object prometheusRulesOverride: items: properties: diff --git a/docs/configuration/crds/v1beta1/common_types.md b/docs/configuration/crds/v1beta1/common_types.md index c38a0c408..b7d1e95b9 100644 --- a/docs/configuration/crds/v1beta1/common_types.md +++ b/docs/configuration/crds/v1beta1/common_types.md @@ -56,6 +56,9 @@ Enabled controls whether the metrics endpoint should be exposed. Defaults to fal ### prometheusRules (bool, optional) {#metrics-prometheusrules} +### prometheusRulesLabels (map[string]string, optional) {#metrics-prometheusruleslabels} + + ### prometheusRulesOverride ([]PrometheusRulesOverride, optional) {#metrics-prometheusrulesoverride} diff --git a/pkg/resources/fluentbit/buffervolumeprometheusrules.go b/pkg/resources/fluentbit/buffervolumeprometheusrules.go index 3da9dae9f..0634056bc 100644 --- a/pkg/resources/fluentbit/buffervolumeprometheusrules.go +++ b/pkg/resources/fluentbit/buffervolumeprometheusrules.go @@ -16,6 +16,7 @@ package fluentbit import ( "fmt" + "maps" "github.com/cisco-open/operator-tools/pkg/reconciler" v1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" @@ -29,6 +30,7 @@ func (r *Reconciler) bufferVolumePrometheusRules() (runtime.Object, reconciler.D obj := &v1.PrometheusRule{ ObjectMeta: r.FluentbitObjectMeta(fluentbitServiceName + "-buffer-metrics"), } + maps.Copy(obj.Labels, r.fluentbitSpec.BufferVolumeMetrics.PrometheusRulesLabels) state := reconciler.StateAbsent if r.fluentbitSpec.BufferVolumeMetrics != nil && r.fluentbitSpec.BufferVolumeMetrics.IsEnabled() && r.fluentbitSpec.BufferVolumeMetrics.PrometheusRules { diff --git a/pkg/resources/fluentbit/prometheusrules.go b/pkg/resources/fluentbit/prometheusrules.go index 8b48189d8..db9d9e563 100644 --- a/pkg/resources/fluentbit/prometheusrules.go +++ b/pkg/resources/fluentbit/prometheusrules.go @@ -16,6 +16,7 @@ package fluentbit import ( "fmt" + "maps" "github.com/cisco-open/operator-tools/pkg/reconciler" v1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" @@ -29,6 +30,7 @@ func (r *Reconciler) prometheusRules() (runtime.Object, reconciler.DesiredState, obj := &v1.PrometheusRule{ ObjectMeta: r.FluentbitObjectMeta(fluentbitServiceName + "-metrics"), } + maps.Copy(obj.Labels, r.fluentbitSpec.Metrics.PrometheusRulesLabels) state := reconciler.StateAbsent if r.fluentbitSpec.Metrics != nil && r.fluentbitSpec.Metrics.IsEnabled() && r.fluentbitSpec.Metrics.PrometheusRules { nsJobLabel := fmt.Sprintf(`job="%s", namespace="%s"`, obj.Name, obj.Namespace) diff --git a/pkg/resources/fluentd/buffervolumeprometheusrules.go b/pkg/resources/fluentd/buffervolumeprometheusrules.go index e35f8d542..fd373c4ff 100644 --- a/pkg/resources/fluentd/buffervolumeprometheusrules.go +++ b/pkg/resources/fluentd/buffervolumeprometheusrules.go @@ -16,6 +16,7 @@ package fluentd import ( "fmt" + "maps" "github.com/cisco-open/operator-tools/pkg/reconciler" v1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" @@ -29,6 +30,7 @@ func (r *Reconciler) bufferVolumePrometheusRules() (runtime.Object, reconciler.D obj := &v1.PrometheusRule{ ObjectMeta: r.FluentdObjectMeta(ServiceName+"-buffer-metrics", ComponentFluentd), } + maps.Copy(obj.Labels, r.fluentdSpec.BufferVolumeMetrics.PrometheusRulesLabels) state := reconciler.StateAbsent if r.fluentdSpec.BufferVolumeMetrics != nil && r.fluentdSpec.BufferVolumeMetrics.IsEnabled() && r.fluentdSpec.BufferVolumeMetrics.PrometheusRules { diff --git a/pkg/resources/fluentd/prometheusrules.go b/pkg/resources/fluentd/prometheusrules.go index 9c174ace1..08030f704 100644 --- a/pkg/resources/fluentd/prometheusrules.go +++ b/pkg/resources/fluentd/prometheusrules.go @@ -16,6 +16,7 @@ package fluentd import ( "fmt" + "maps" "github.com/cisco-open/operator-tools/pkg/reconciler" prometheus_operator "github.com/kube-logging/logging-operator/pkg/resources/prometheus-operator" @@ -28,6 +29,7 @@ func (r *Reconciler) prometheusRules() (runtime.Object, reconciler.DesiredState, obj := &v1.PrometheusRule{ ObjectMeta: r.FluentdObjectMeta(ServiceName+"-metrics", ComponentFluentd), } + maps.Copy(obj.Labels, r.fluentdSpec.Metrics.PrometheusRulesLabels) state := reconciler.StateAbsent if r.fluentdSpec.Metrics != nil && r.fluentdSpec.Metrics.IsEnabled() && r.fluentdSpec.Metrics.PrometheusRules { diff --git a/pkg/resources/syslogng/buffervolumeprometheusrules.go b/pkg/resources/syslogng/buffervolumeprometheusrules.go index 5e6236f18..eabf8a8ef 100644 --- a/pkg/resources/syslogng/buffervolumeprometheusrules.go +++ b/pkg/resources/syslogng/buffervolumeprometheusrules.go @@ -16,6 +16,7 @@ package syslogng import ( "fmt" + "maps" "github.com/cisco-open/operator-tools/pkg/reconciler" v1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" @@ -29,6 +30,7 @@ func (r *Reconciler) bufferVolumePrometheusRules() (runtime.Object, reconciler.D obj := &v1.PrometheusRule{ ObjectMeta: r.SyslogNGObjectMeta(ServiceName+"-buffer-metrics", ComponentSyslogNG), } + maps.Copy(obj.Labels, r.syslogNGSpec.BufferVolumeMetrics.PrometheusRulesLabels) state := reconciler.StateAbsent if r.syslogNGSpec.BufferVolumeMetrics != nil && r.syslogNGSpec.BufferVolumeMetrics.IsEnabled() && r.syslogNGSpec.BufferVolumeMetrics.PrometheusRules { diff --git a/pkg/resources/syslogng/prometheusrules.go b/pkg/resources/syslogng/prometheusrules.go index 447bbb1f9..74c00a48a 100644 --- a/pkg/resources/syslogng/prometheusrules.go +++ b/pkg/resources/syslogng/prometheusrules.go @@ -16,6 +16,7 @@ package syslogng import ( "fmt" + "maps" "github.com/cisco-open/operator-tools/pkg/reconciler" v1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" @@ -29,6 +30,7 @@ func (r *Reconciler) prometheusRules() (runtime.Object, reconciler.DesiredState, obj := &v1.PrometheusRule{ ObjectMeta: r.SyslogNGObjectMeta(ServiceName+"-metrics", ComponentSyslogNG), } + maps.Copy(obj.Labels, r.syslogNGSpec.Metrics.PrometheusRulesLabels) state := reconciler.StateAbsent if r.syslogNGSpec.Metrics != nil && r.syslogNGSpec.Metrics.IsEnabled() && r.syslogNGSpec.Metrics.PrometheusRules { diff --git a/pkg/sdk/logging/api/v1beta1/common_types.go b/pkg/sdk/logging/api/v1beta1/common_types.go index b761ae9dc..0ec6ff856 100644 --- a/pkg/sdk/logging/api/v1beta1/common_types.go +++ b/pkg/sdk/logging/api/v1beta1/common_types.go @@ -77,6 +77,7 @@ type Metrics struct { PrometheusAnnotations bool `json:"prometheusAnnotations,omitempty"` PrometheusRules bool `json:"prometheusRules,omitempty"` PrometheusRulesOverride []PrometheusRulesOverride `json:"prometheusRulesOverride,omitempty"` + PrometheusRulesLabels map[string]string `json:"prometheusRulesLabels,omitempty"` } func (m *Metrics) IsEnabled() bool { diff --git a/pkg/sdk/logging/api/v1beta1/zz_generated.deepcopy.go b/pkg/sdk/logging/api/v1beta1/zz_generated.deepcopy.go index 1f3d391ef..e99ae2865 100644 --- a/pkg/sdk/logging/api/v1beta1/zz_generated.deepcopy.go +++ b/pkg/sdk/logging/api/v1beta1/zz_generated.deepcopy.go @@ -2311,6 +2311,13 @@ func (in *Metrics) DeepCopyInto(out *Metrics) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.PrometheusRulesLabels != nil { + in, out := &in.PrometheusRulesLabels, &out.PrometheusRulesLabels + *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 Metrics.