diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fbf01456b..b45a662b78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## 4.20 - [#2595](https://github.com/openshift/cluster-monitoring-operator/pull/2595) Multi-tenant support for KSM's CRS feature-set downstream. +- [#2625](https://github.com/openshift/cluster-monitoring-operator/pull/2625) Support lookarounds in KSM's deny-list and white-list `kube_namespace_created`. ## 4.18 diff --git a/assets/kube-state-metrics/deployment.yaml b/assets/kube-state-metrics/deployment.yaml index edac57c5ea..7b1ffd976a 100644 --- a/assets/kube-state-metrics/deployment.yaml +++ b/assets/kube-state-metrics/deployment.yaml @@ -46,7 +46,7 @@ spec: - --metric-labels-allowlist=pods=[*],nodes=[*],namespaces=[*],persistentvolumes=[*],persistentvolumeclaims=[*],poddisruptionbudgets=[*] - | --metric-denylist= - ^kube_.+_created$, + ^kube_(?=namespace).*_created$, ^kube_.+_metadata_resource_version$, ^kube_replicaset_metadata_generation$, ^kube_replicaset_status_observed_generation$, diff --git a/jsonnet/main.jsonnet b/jsonnet/main.jsonnet index b65e564bb5..db12c6322a 100644 --- a/jsonnet/main.jsonnet +++ b/jsonnet/main.jsonnet @@ -10,6 +10,7 @@ local alertmanager = import './components/alertmanager.libsonnet'; local alertmanagerUserWorkload = import './components/alertmanager-user-workload.libsonnet'; local dashboards = import './components/dashboards.libsonnet'; local kubeStateMetrics = import './components/kube-state-metrics.libsonnet'; +local ksmLite = import 'github.com/prometheus-operator/kube-prometheus/jsonnet/kube-prometheus/addons/ksm-lite.libsonnet'; local controlPlane = import './components/control-plane.libsonnet'; local nodeExporter = import './components/node-exporter.libsonnet'; local metricsServer = import './components/metrics-server.libsonnet'; @@ -432,7 +433,23 @@ local inCluster = openshiftStateMetrics: openshiftStateMetrics($.values.openshiftStateMetrics), } + (import './utils/anti-affinity.libsonnet') + - (import 'github.com/prometheus-operator/kube-prometheus/jsonnet/kube-prometheus/addons/ksm-lite.libsonnet') + + (ksmLite { + ksmConfig: { + ksmDenyList: [ + '^kube_(?=namespace).*_created$', + '^kube_.+_metadata_resource_version$', + '^kube_replicaset_metadata_generation$', + '^kube_replicaset_status_observed_generation$', + '^kube_pod_restart_policy$', + '^kube_pod_init_container_status_terminated$', + '^kube_pod_init_container_status_running$', + '^kube_pod_container_status_terminated$', + '^kube_pod_container_status_running$', + '^kube_pod_completion_time$', + '^kube_pod_status_scheduled$', + ], + }, + }) + (import './utils/ibm-cloud-managed-profile.libsonnet') + (import './components/metrics-server-audit.libsonnet') + {}; // Including empty object to simplify adding and removing imports during development