apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: alm-examples: |- [ { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "MonitoringStack", "metadata": { "labels": { "mso": "example" }, "name": "sample-monitoring-stack" }, "spec": { "logLevel": "debug", "resourceSelector": { "matchLabels": { "app": "demo" } }, "retention": "1d" } }, { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "ThanosQuerier", "metadata": { "name": "example-thanos" }, "spec": { "selector": { "matchLabels": { "mso": "example" } } } } ] capabilities: Basic Install categories: Monitoring certified: "false" containerImage: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb createdAt: "2025-11-03T09:23:49Z" description: A Go based Kubernetes operator to setup and manage highly available Monitoring Stack using Prometheus, Alertmanager and Thanos Querier. features.operators.openshift.io/cnf: "false" features.operators.openshift.io/cni: "false" features.operators.openshift.io/csi: "false" features.operators.openshift.io/disconnected: "true" features.operators.openshift.io/fips-compliant: "false" features.operators.openshift.io/proxy-aware: "false" features.operators.openshift.io/tls-profiles: "false" features.operators.openshift.io/token-auth-aws: "false" features.operators.openshift.io/token-auth-azure: "false" features.operators.openshift.io/token-auth-gcp: "false" olm.operatorGroup: global-operators olm.operatorNamespace: openshift-operators olm.skipRange: '>=..0 <1.3.0' operatorframework.io/cluster-monitoring: "true" operatorframework.io/properties: '{"properties":[{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Alertmanager","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"AlertmanagerConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"MonitoringStack","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PodMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Probe","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Prometheus","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusAgent","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusRule","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ScrapeConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ServiceMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosQuerier","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosRuler","version":"v1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"ObservabilityInstaller","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"UIPlugin","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"Perses","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDashboard","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDatasource","version":"v1alpha1"}},{"type":"olm.package","value":{"packageName":"cluster-observability-operator","version":"1.3.0"}}]}' operatorframework.io/suggested-namespace: openshift-cluster-observability-operator operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", "OpenShift Container Platform", "OpenShift Platform Plus"]' operators.operatorframework.io/builder: operator-sdk-v1.41.1 operators.operatorframework.io/internal-objects: |- [ "prometheuses.monitoring.rhobs", "alertmanagers.monitoring.rhobs", "thanosrulers.monitoring.rhobs", "prometheusagents.monitoring.rhobs", "perses.perses.dev" ] operators.operatorframework.io/project_layout: unknown repository: https://github.com/rhobs/observability-operator support: Cluster Observability (https://issues.redhat.com/projects/COO/) creationTimestamp: "2025-12-04T00:57:58Z" generation: 1 labels: olm.copiedFrom: openshift-operators olm.managed: "true" operatorframework.io/arch.amd64: supported operatorframework.io/arch.arm64: supported operatorframework.io/arch.ppc64le: supported operatorframework.io/arch.s390x: supported name: cluster-observability-operator.v1.3.0 namespace: openstack resourceVersion: "23920" uid: 17b24534-c503-4d93-8e35-56d81ab07846 spec: apiservicedefinitions: {} cleanup: enabled: false customresourcedefinitions: owned: - description: AlertmanagerConfig configures the Prometheus Alertmanager, specifying how alerts should be grouped, inhibited and notified to external systems displayName: AlertmanagerConfig kind: AlertmanagerConfig name: alertmanagerconfigs.monitoring.rhobs version: v1alpha1 - description: Alertmanager describes an Alertmanager cluster displayName: Alertmanager kind: Alertmanager name: alertmanagers.monitoring.rhobs version: v1 - description: MonitoringStack is the Schema for the monitoringstacks API displayName: MonitoringStack kind: MonitoringStack name: monitoringstacks.monitoring.rhobs version: v1alpha1 - kind: ObservabilityInstaller name: observabilityinstallers.observability.openshift.io version: v1alpha1 - description: Perses is the Schema for the perses API displayName: Perses kind: Perses name: perses.perses.dev version: v1alpha1 - description: A Perses Dashboard displayName: Perses Dashboard kind: PersesDashboard name: persesdashboards.perses.dev version: v1alpha1 - description: A Perses Datasource displayName: Perses Datasource kind: PersesDatasource name: persesdatasources.perses.dev version: v1alpha1 - description: PodMonitor defines monitoring for a set of pods displayName: PodMonitor kind: PodMonitor name: podmonitors.monitoring.rhobs version: v1 - description: Probe defines monitoring for a set of static targets or ingresses displayName: Probe kind: Probe name: probes.monitoring.rhobs version: v1 - description: PrometheusAgent defines a Prometheus agent deployment displayName: PrometheusAgent kind: PrometheusAgent name: prometheusagents.monitoring.rhobs version: v1alpha1 - description: Prometheus defines a Prometheus deployment displayName: Prometheus kind: Prometheus name: prometheuses.monitoring.rhobs version: v1 - description: PrometheusRule defines recording and alerting rules for a Prometheus instance displayName: PrometheusRule kind: PrometheusRule name: prometheusrules.monitoring.rhobs version: v1 - description: ScrapeConfig defines a namespaced Prometheus scrape_config to be aggregated across multiple namespaces into the Prometheus configuration displayName: ScrapeConfig kind: ScrapeConfig name: scrapeconfigs.monitoring.rhobs version: v1alpha1 - description: ServiceMonitor defines monitoring for a set of services displayName: ServiceMonitor kind: ServiceMonitor name: servicemonitors.monitoring.rhobs version: v1 - description: ThanosQuerier outlines the Thanos querier components, managed by this stack displayName: ThanosQuerier kind: ThanosQuerier name: thanosqueriers.monitoring.rhobs version: v1alpha1 - description: ThanosRuler defines a ThanosRuler deployment displayName: ThanosRuler kind: ThanosRuler name: thanosrulers.monitoring.rhobs version: v1 - description: UIPlugin defines a console plugin for observability displayName: UIPlugin kind: UIPlugin name: uiplugins.observability.openshift.io version: v1alpha1 description: |- Cluster Observability Operator is a Go based Kubernetes operator to easily setup and manage various observability tools. ### Supported Features - Setup multiple Highly Available Monitoring stack using Prometheus, Alertmanager and Thanos Querier - Customizable configuration for managing Prometheus deployments - Customizable configuration for managing Alertmanager deployments - Customizable configuration for managing Thanos Querier deployments - Setup console plugins - Setup korrel8r - Setup Perses - Setup Cluster Health Analyzer ### Documentation - **[Documentation](https://docs.redhat.com/en/documentation/openshift_container_platform/latest/html/cluster_observability_operator/index)** ### License Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) displayName: Cluster Observability Operator icon: - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0idXVpZC1kMWI4NDIzOC0wYzgxLTQ5MjctOGQ4Mi03OTcyN2Y5OGZjYWMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM4IDM4Ij4KPHRpdGxlPkNsdXN0ZXIgb2JzZXJ2YWJpbGl0eTwvdGl0bGU+CjxkZXNjPmNsb3VkPC9kZXNjPgo8bWV0YWRhdGE+PD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOC4wLWMwMDEgMS4wMDAwMDAsIDAwMDAvMDAvMDAtMDA6MDA6MDAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8IS0tIG1ldGFkYXRhIGZpZWxkcyAtLT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InciPz48L21ldGFkYXRhPgo8ZGVmcz48c3R5bGU+LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhe2ZpbGw6I2UwZTBlMDt9LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhLC51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCwudXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgsLnV1aWQtNGJlZjgyMGItNTZjOS00N2U3LTgyYTMtMmRiOGQ4YzdiMTEye3N0cm9rZS13aWR0aDowcHg7fS51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMHtmaWxsOiMwMDA7fS51dWlkLWYwMzIxNzhlLWJkNTAtNGRlNy1iNzczLTY2NWJmZDVjNWJiOHtmaWxsOiNlMDA7fS51dWlkLTRiZWY4MjBiLTU2YzktNDdlNy04MmEzLTJkYjhkOGM3YjExMntmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPgo8cmVjdCBjbGFzcz0idXVpZC00YmVmODIwYi01NmM5LTQ3ZTctODJhMy0yZGI4ZDhjN2IxMTIiIHg9IjEiIHk9IjEiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjkiIHJ5PSI5Ii8+CjxwYXRoIGNsYXNzPSJ1dWlkLTI0YjBkOTdiLTY4MWUtNGRhNi1hMWM3LTc2NzFhZTU3NTMyYSIgZD0iTTI4LDIuMjVjNC4yNzM0LDAsNy43NSwzLjQ3NjYsNy43NSw3Ljc1djE4YzAsNC4yNzM0LTMuNDc2Niw3Ljc1LTcuNzUsNy43NUgxMGMtNC4yNzM0LDAtNy43NS0zLjQ3NjYtNy43NS03Ljc1VjEwYzAtNC4yNzM0LDMuNDc2Ni03Ljc1LDcuNzUtNy43NWgxOE0yOCwxSDEwQzUuMDI5NCwxLDEsNS4wMjk0LDEsMTB2MThjMCw0Ljk3MDYsNC4wMjk0LDksOSw5aDE4YzQuOTcwNiwwLDktNC4wMjk0LDktOVYxMGMwLTQuOTcwNi00LjAyOTQtOS05LTloMFoiLz4KPHBhdGggY2xhc3M9InV1aWQtZjAzMjE3OGUtYmQ1MC00ZGU3LWI3NzMtNjY1YmZkNWM1YmI4IiBkPSJNMjEuMzc1LDE5YzAsLjM0NTIuMjgwMy42MjUuNjI1LjYyNXMuNjI1LS4yNzk4LjYyNS0uNjI1YzAtMS45OTktMS42MjYtMy42MjUtMy42MjUtMy42MjUtLjM0NDcsMC0uNjI1LjI3OTgtLjYyNS42MjVzLjI4MDMuNjI1LjYyNS42MjVjMS4zMDk2LDAsMi4zNzUsMS4wNjU0LDIuMzc1LDIuMzc1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgiIGQ9Ik0xOSwxMy4zNzVjLS43ODIyLDAtMS41MzkxLjE1NzctMi4yNS40NjgzLS4zMTY0LjEzODItLjQ2MDkuNTA2OC0uMzIyMy44MjMyLjEzNzcuMzE2NC41MDc4LjQ1ODUuODIyMy4zMjIzLjU1MjctLjI0MTIsMS4xNDE2LS4zNjM4LDEuNzUtLjM2MzgsMi40MTIxLDAsNC4zNzUsMS45NjI0LDQuMzc1LDQuMzc1cy0xLjk2MjksNC4zNzUtNC4zNzUsNC4zNzUtNC4zNzUtMS45NjI0LTQuMzc1LTQuMzc1YzAtLjYwODkuMTIyMS0xLjE5NzMuMzYzMy0xLjc0OTUuMTM4Ny0uMzE2NC0uMDA1OS0uNjg1MS0uMzIyMy0uODIzMi0uMzE0NS0uMTM5Mi0uNjgzNi4wMDU0LS44MjIzLjMyMjMtLjMxMTUuNzExNC0uNDY4OCwxLjQ2ODMtLjQ2ODgsMi4yNTA1LDAsMy4xMDE2LDIuNTIzNCw1LjYyNSw1LjYyNSw1LjYyNXM1LjYyNS0yLjUyMzQsNS42MjUtNS42MjUtMi41MjM0LTUuNjI1LTUuNjI1LTUuNjI1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC05N2MxZWM4NC05YjgxLTQ1NmUtOTlhYS03MTM3NTBlYjY5ZTAiIGQ9Ik0zMC40NjY4LDE4LjczODhjLTIuMDU2Ni00LjQ3MzEtNi41NTc2LTcuMzYzOC0xMS40NjY4LTcuMzYzOHMtOS40MTAyLDIuODkwNi0xMS40NjY4LDcuMzYzOGMtLjA3NTIuMTY2LS4wNzUyLjM1NjQsMCwuNTIyNSwyLjA1NjYsNC40NzMxLDYuNTU3Niw3LjM2MzgsMTEuNDY2OCw3LjM2MzhzOS40MTAyLTIuODkwNiwxMS40NjY4LTcuMzYzOGMuMDc1Mi0uMTY2LjA3NTItLjM1NjQsMC0uNTIyNVpNMTksMjUuMzc1Yy00LjMyNjIsMC04LjMwMDgtMi40OTI3LTEwLjIwNjEtNi4zNzUsMS45MDUzLTMuODgyMyw1Ljg3OTktNi4zNzUsMTAuMjA2MS02LjM3NXM4LjMwMDgsMi40OTI3LDEwLjIwNjEsNi4zNzVjLTEuOTA1MywzLjg4MjMtNS44Nzk5LDYuMzc1LTEwLjIwNjEsNi4zNzVaIi8+CjxwYXRoIGNsYXNzPSJ1dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCIgZD0iTTE1LjQ0MjQsMTQuNTU4MWMtLjI0NDEtLjI0NDEtLjY0MDYtLjI0NDEtLjg4NDgsMC0uMjQzMi4yNDQxLS4yNDMyLjYzOTYsMCwuODgzOGw0LDRjLjEyMjEuMTIyMS4yODIyLjE4MzEuNDQyNC4xODMxcy4zMjAzLS4wNjEuNDQyNC0uMTgzMWMuMjQzMi0uMjQ0MS4yNDMyLS42Mzk2LDAtLjg4MzhsLTQtNFoiLz4KPC9zdmc+Cg== mediatype: image/svg+xml install: spec: clusterPermissions: - rules: - apiGroups: - monitoring.rhobs resources: - alertmanagers - alertmanagers/finalizers - alertmanagers/status - alertmanagerconfigs - prometheuses - prometheuses/finalizers - prometheuses/status - prometheusagents - prometheusagents/finalizers - prometheusagents/status - thanosrulers - thanosrulers/finalizers - thanosrulers/status - scrapeconfigs - scrapeconfigs/status - servicemonitors - servicemonitors/status - podmonitors - podmonitors/status - probes - probes/status - prometheusrules verbs: - '*' - apiGroups: - apps resources: - statefulsets verbs: - '*' - apiGroups: - "" resources: - configmaps - secrets verbs: - '*' - apiGroups: - "" resources: - pods verbs: - list - delete - apiGroups: - "" resources: - services - services/finalizers verbs: - get - create - update - delete - apiGroups: - "" resources: - nodes verbs: - list - watch - apiGroups: - "" resources: - namespaces verbs: - get - list - watch - apiGroups: - "" resources: - events verbs: - patch - create - apiGroups: - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - storage.k8s.io resources: - storageclasses verbs: - get - apiGroups: - "" resources: - endpoints verbs: - get - create - update - delete - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator - rules: - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator-admission-webhook - rules: - apiGroups: - "" resources: - configmaps - secrets - serviceaccounts - services verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - endpoints - events - namespaces - nodes - persistentvolumeclaims - persistentvolumes - pods - replicationcontrollers verbs: - get - list - watch - apiGroups: - "" resources: - services/finalizers verbs: - patch - update - apiGroups: - apps resources: - daemonsets - replicasets - statefulsets verbs: - get - list - watch - apiGroups: - apps resources: - deployments verbs: - create - delete - get - list - patch - update - watch - apiGroups: - authentication.k8s.io resources: - tokenreviews verbs: - create - apiGroups: - authorization.k8s.io resources: - subjectaccessreviews verbs: - create - apiGroups: - autoscaling resources: - horizontalpodautoscalers verbs: - get - list - watch - apiGroups: - batch resources: - cronjobs - jobs verbs: - get - list - watch - apiGroups: - config.openshift.io resources: - clusterversions verbs: - get - list - watch - apiGroups: - console.openshift.io resources: - consoleplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - extensions - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - loki.grafana.com resources: - application - audit - infrastructure - network verbs: - get - apiGroups: - loki.grafana.com resources: - lokistacks verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - main resources: - alertmanagers/api verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - k8s resources: - prometheuses/api verbs: - create - get - update - apiGroups: - monitoring.coreos.com resources: - servicemonitors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - alertmanagers - prometheuses - servicemonitors - thanosqueriers verbs: - create - delete - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks verbs: - create - get - list - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks/finalizers - monitoringstacks/status verbs: - get - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/finalizers verbs: - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/status verbs: - get - patch - update - apiGroups: - networking.k8s.io resources: - ingresses - networkpolicies verbs: - get - list - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers - uiplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers/finalizers - observabilityinstallers/status verbs: - delete - get - patch - update - apiGroups: - observability.openshift.io resources: - uiplugins/finalizers - uiplugins/status verbs: - get - update - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors/status verbs: - get - list - watch - apiGroups: - operator.openshift.io resources: - consoles verbs: - get - list - patch - watch - apiGroups: - operators.coreos.com resources: - clusterserviceversions - subscriptions verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses - persesdashboards - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers - persesdashboards/finalizers - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status - persesdashboards/status - persesdatasources/status verbs: - get - patch - update - apiGroups: - policy resources: - poddisruptionbudgets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - rbac.authorization.k8s.io resources: - clusterrolebindings - clusterroles - rolebindings - roles verbs: - create - delete - get - list - patch - update - watch - apiGroups: - security.openshift.io resourceNames: - nonroot - nonroot-v2 resources: - securitycontextconstraints verbs: - use - apiGroups: - storage.k8s.io resources: - storageclasses - volumeattachments verbs: - get - list - watch - apiGroups: - tempo.grafana.com resourceNames: - traces resources: - application verbs: - create - apiGroups: - tempo.grafana.com resources: - tempomonolithics verbs: - list - apiGroups: - tempo.grafana.com resources: - tempostacks verbs: - create - delete - get - list - patch - update - watch - apiGroups: - tempo.grafana.com resources: - tempostacks/status verbs: - get - list - watch serviceAccountName: observability-operator-sa - rules: - apiGroups: - apps resources: - deployments - statefulsets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - events verbs: - create - patch - apiGroups: - "" resources: - services - configmaps - secrets verbs: - get - patch - update - create - delete - list - watch - apiGroups: - perses.dev resources: - perses verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdashboards verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdashboards/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdashboards/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdatasources/status verbs: - get - patch - update serviceAccountName: perses-operator deployments: - label: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 automountServiceAccountToken: true containers: - args: - --prometheus-config-reloader=$(RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER) - --prometheus-instance-selector=app.kubernetes.io/managed-by=observability-operator - --alertmanager-instance-selector=app.kubernetes.io/managed-by=observability-operator - --thanos-ruler-instance-selector=app.kubernetes.io/managed-by=observability-operator env: - name: GOGC value: "30" - name: RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER value: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator ports: - containerPort: 8080 name: http protocol: TCP resources: limits: cpu: 100m memory: 500Mi requests: cpu: 5m memory: 150Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator-admission-webhook spec: replicas: 2 selector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator strategy: rollingUpdate: maxUnavailable: 1 template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator-admission-webhook creationTimestamp: null labels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator namespaces: - default topologyKey: kubernetes.io/hostname automountServiceAccountToken: false containers: - args: - --web.enable-tls=true - --web.cert-file=/tmp/k8s-webhook-server/serving-certs/tls.crt - --web.key-file=/tmp/k8s-webhook-server/serving-certs/tls.key image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook ports: - containerPort: 8443 name: https protocol: TCP resources: limits: cpu: 200m memory: 200Mi requests: cpu: 50m memory: 50Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator-admission-webhook tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 name: observability-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator strategy: {} template: metadata: creationTimestamp: null labels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - args: - --namespace=$(NAMESPACE) - --images=perses=$(RELATED_IMAGE_PERSES) - --images=alertmanager=$(RELATED_IMAGE_ALERTMANAGER) - --images=prometheus=$(RELATED_IMAGE_PROMETHEUS) - --images=thanos=$(RELATED_IMAGE_THANOS) - --images=ui-dashboards=$(RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN) - --images=ui-distributed-tracing=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN) - --images=ui-distributed-tracing-pf5=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5) - --images=ui-distributed-tracing-pf4=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4) - --images=ui-logging=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN) - --images=ui-logging-pf4=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4) - --images=ui-troubleshooting-panel=$(RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN) - --images=ui-monitoring=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN) - --images=ui-monitoring-pf5=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5) - --images=korrel8r=$(RELATED_IMAGE_KORREL8R) - --images=health-analyzer=$(RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER) - --openshift.enabled=true env: - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: RELATED_IMAGE_ALERTMANAGER value: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 - name: RELATED_IMAGE_PROMETHEUS value: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b - name: RELATED_IMAGE_THANOS value: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 - name: RELATED_IMAGE_PERSES value: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade - name: RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN value: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 - name: RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN value: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c - name: RELATED_IMAGE_KORREL8R value: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 - name: RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER value: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb imagePullPolicy: Always livenessProbe: httpGet: path: /healthz port: 8081 name: operator readinessProbe: httpGet: path: /healthz port: 8081 resources: limits: cpu: 400m memory: 512Mi requests: cpu: 100m memory: 256Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /etc/tls/private name: observability-operator-tls readOnly: true securityContext: runAsNonRoot: true serviceAccountName: observability-operator-sa terminationGracePeriodSeconds: 30 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - name: observability-operator-tls secret: optional: true secretName: observability-operator-tls - label: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator name: perses-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: perses-operator creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 15 periodSeconds: 20 name: perses-operator readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 resources: limits: cpu: 500m memory: 512Mi requests: cpu: 100m memory: 128Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /ca name: openshift-service-ca readOnly: true serviceAccountName: perses-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt optional: true name: openshift-service-ca strategy: deployment installModes: - supported: false type: OwnNamespace - supported: false type: SingleNamespace - supported: false type: MultiNamespace - supported: true type: AllNamespaces keywords: - observability - monitoring - prometheus - thanos links: - name: GitHub url: https://github.com/rhobs/observability-operator maintainers: - email: jfajersk@redhat.com name: Jan Fajerski - email: spasquie@redhat.com name: Simon Pasquier maturity: alpha provider: name: Red Hat relatedImages: - image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb name: cluster-observability-operator - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 name: prometheus-config-reloader - image: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 name: alertmanager - image: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b name: prometheus - image: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 name: thanos - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator - image: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb name: ui-dashboards - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f name: ui-tracing - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 name: ui-tracing-pf5 - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 name: ui-tracing-pf4 - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b name: ui-logging - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 name: ui-logging-pf4 - image: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 name: ui-troubleshooting - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 name: ui-monitoring - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c name: ui-monitoring-pf5 - image: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 name: korrel8r - image: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 name: cluster-health-analyzer - image: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade name: perses - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 name: perses-operator replaces: cluster-observability-operator.v1.2.2 version: 1.3.0 webhookdefinitions: - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: alertmanagerconfigs.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - alertmanagerconfigs scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-alertmanagerconfigs/validate - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: prometheusrules.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - prometheusrules scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-prometheusrules/validate status: certsLastUpdated: "2025-12-04T00:56:42Z" certsRotateAt: "2027-12-03T00:56:41Z" cleanup: {} conditions: - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: requirements not yet checked phase: Pending reason: RequirementsUnknown - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: one or more requirements couldn't be found phase: Pending reason: RequirementsNotMet - lastTransitionTime: "2025-12-04T00:56:39Z" lastUpdateTime: "2025-12-04T00:56:39Z" message: all requirements found, attempting install phase: InstallReady reason: AllRequirementsMet - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:41Z" message: waiting for install components to report healthy phase: Installing reason: InstallSucceeded - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:43Z" message: 'installing: waiting for deployment obo-prometheus-operator to become ready: deployment "obo-prometheus-operator" not available: Deployment does not have minimum availability.' phase: Installing reason: InstallWaiting - lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: install strategy completed with no errors phase: Succeeded reason: InstallSucceeded lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: The operator is running in openshift-operators but is managing this namespace phase: Succeeded reason: Copied requirementStatus: - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagerconfigs.monitoring.rhobs status: Present uuid: fdb5fb0c-6e9f-4adf-9365-e3e7eb7c0067 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagers.monitoring.rhobs status: Present uuid: e7cc9eeb-3d09-427c-a19e-e9c6b7eb2898 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: monitoringstacks.monitoring.rhobs status: Present uuid: 9ccaadbf-0dca-48b2-a78f-500c1872cfff version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: observabilityinstallers.observability.openshift.io status: Present uuid: 77fac378-1af3-4ceb-ab13-4dcbdcd7273c version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: perses.perses.dev status: Present uuid: e03c0eb7-4876-4e69-897d-262406875f61 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdashboards.perses.dev status: Present uuid: e3e03868-fb11-4678-832d-b4347b218d2f version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdatasources.perses.dev status: Present uuid: 842a1904-aa52-4dfe-8f68-445677c5832d version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: podmonitors.monitoring.rhobs status: Present uuid: 7f0fbafb-4530-4794-ba46-036a95ce4ed1 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: probes.monitoring.rhobs status: Present uuid: 5e9f4268-128e-484a-81b8-826995506fc0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusagents.monitoring.rhobs status: Present uuid: 7e7569e0-7f4e-474f-b8a3-82aa6d1491af version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheuses.monitoring.rhobs status: Present uuid: b4317bbb-7c2d-4663-a47f-df8459ad11a5 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusrules.monitoring.rhobs status: Present uuid: 7155f6cf-1c79-416e-8c3b-4f151e5024b0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: scrapeconfigs.monitoring.rhobs status: Present uuid: 3c0d5d32-16b5-49b2-b6ea-290b52c13784 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: servicemonitors.monitoring.rhobs status: Present uuid: 35381462-6751-4a3e-8efe-2348be176098 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosqueriers.monitoring.rhobs status: Present uuid: bd3cda66-d433-40ce-9892-bc4ac8eb9b7e version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosrulers.monitoring.rhobs status: Present uuid: 567d004f-dd11-4527-a2ee-c97b395d08cf version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: uiplugins.observability.openshift.io status: Present uuid: b14324f9-a93e-4a3c-975e-02bdf570d177 version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","alertmanagers/finalizers","alertmanagers/status","alertmanagerconfigs","prometheuses","prometheuses/finalizers","prometheuses/status","prometheusagents","prometheusagents/finalizers","prometheusagents/status","thanosrulers","thanosrulers/finalizers","thanosrulers/status","scrapeconfigs","scrapeconfigs/status","servicemonitors","servicemonitors/status","podmonitors","podmonitors/status","probes","probes/status","prometheusrules"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["apps"],"resources":["statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":[""],"resources":["configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","delete"],"apiGroups":[""],"resources":["pods"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["services","services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","watch"],"apiGroups":[""],"resources":["nodes"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["namespaces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","create"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["endpoints"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator-admission-webhook status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["configmaps","secrets","serviceaccounts","services"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["endpoints","events","namespaces","nodes","persistentvolumeclaims","persistentvolumes","pods","replicationcontrollers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","update"],"apiGroups":[""],"resources":["services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["apps"],"resources":["daemonsets","replicasets","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authentication.k8s.io"],"resources":["tokenreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authorization.k8s.io"],"resources":["subjectaccessreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["autoscaling"],"resources":["horizontalpodautoscalers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["batch"],"resources":["cronjobs","jobs"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["config.openshift.io"],"resources":["clusterversions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["console.openshift.io"],"resources":["consoleplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["extensions","networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["loki.grafana.com"],"resources":["application","audit","infrastructure","network"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["loki.grafana.com"],"resources":["lokistacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["monitoring.coreos.com"],"resources":["alertmanagers/api"],"resourceNames":["main"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","update"],"apiGroups":["monitoring.coreos.com"],"resources":["prometheuses/api"],"resourceNames":["k8s"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["monitoring.coreos.com"],"resources":["servicemonitors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","list","patch","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","prometheuses","servicemonitors","thanosqueriers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","list","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks/finalizers","monitoringstacks/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses","networkpolicies"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers","uiplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["delete","get","patch","update"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers/finalizers","observabilityinstallers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["observability.openshift.io"],"resources":["uiplugins/finalizers","uiplugins/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","patch","watch"],"apiGroups":["operator.openshift.io"],"resources":["consoles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["operators.coreos.com"],"resources":["clusterserviceversions","subscriptions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses","persesdashboards","persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers","persesdashboards/finalizers","persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status","persesdashboards/status","persesdatasources/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["policy"],"resources":["poddisruptionbudgets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["clusterrolebindings","clusterroles","rolebindings","roles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot","nonroot-v2"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses","volumeattachments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["tempo.grafana.com"],"resources":["application"],"resourceNames":["traces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list"],"apiGroups":["tempo.grafana.com"],"resources":["tempomonolithics"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: observability-operator-sa status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","patch"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update","create","delete","list","watch"],"apiGroups":[""],"resources":["services","configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdashboards"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: perses-operator status: Present version: v1 apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: alm-examples: |- [ { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "MonitoringStack", "metadata": { "labels": { "mso": "example" }, "name": "sample-monitoring-stack" }, "spec": { "logLevel": "debug", "resourceSelector": { "matchLabels": { "app": "demo" } }, "retention": "1d" } }, { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "ThanosQuerier", "metadata": { "name": "example-thanos" }, "spec": { "selector": { "matchLabels": { "mso": "example" } } } } ] capabilities: Basic Install categories: Monitoring certified: "false" containerImage: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb createdAt: "2025-11-03T09:23:49Z" description: A Go based Kubernetes operator to setup and manage highly available Monitoring Stack using Prometheus, Alertmanager and Thanos Querier. features.operators.openshift.io/cnf: "false" features.operators.openshift.io/cni: "false" features.operators.openshift.io/csi: "false" features.operators.openshift.io/disconnected: "true" features.operators.openshift.io/fips-compliant: "false" features.operators.openshift.io/proxy-aware: "false" features.operators.openshift.io/tls-profiles: "false" features.operators.openshift.io/token-auth-aws: "false" features.operators.openshift.io/token-auth-azure: "false" features.operators.openshift.io/token-auth-gcp: "false" olm.operatorGroup: global-operators olm.operatorNamespace: openshift-operators olm.skipRange: '>=..0 <1.3.0' operatorframework.io/cluster-monitoring: "true" operatorframework.io/properties: '{"properties":[{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Alertmanager","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"AlertmanagerConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"MonitoringStack","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PodMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Probe","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Prometheus","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusAgent","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusRule","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ScrapeConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ServiceMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosQuerier","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosRuler","version":"v1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"ObservabilityInstaller","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"UIPlugin","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"Perses","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDashboard","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDatasource","version":"v1alpha1"}},{"type":"olm.package","value":{"packageName":"cluster-observability-operator","version":"1.3.0"}}]}' operatorframework.io/suggested-namespace: openshift-cluster-observability-operator operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", "OpenShift Container Platform", "OpenShift Platform Plus"]' operators.operatorframework.io/builder: operator-sdk-v1.41.1 operators.operatorframework.io/internal-objects: |- [ "prometheuses.monitoring.rhobs", "alertmanagers.monitoring.rhobs", "thanosrulers.monitoring.rhobs", "prometheusagents.monitoring.rhobs", "perses.perses.dev" ] operators.operatorframework.io/project_layout: unknown repository: https://github.com/rhobs/observability-operator support: Cluster Observability (https://issues.redhat.com/projects/COO/) creationTimestamp: "2025-12-04T00:57:58Z" generation: 1 labels: olm.copiedFrom: openshift-operators olm.managed: "true" operatorframework.io/arch.amd64: supported operatorframework.io/arch.arm64: supported operatorframework.io/arch.ppc64le: supported operatorframework.io/arch.s390x: supported name: cluster-observability-operator.v1.3.0 namespace: openstack-operators resourceVersion: "23916" uid: 7bf00262-bed4-420e-b618-5f52c3765c51 spec: apiservicedefinitions: {} cleanup: enabled: false customresourcedefinitions: owned: - description: AlertmanagerConfig configures the Prometheus Alertmanager, specifying how alerts should be grouped, inhibited and notified to external systems displayName: AlertmanagerConfig kind: AlertmanagerConfig name: alertmanagerconfigs.monitoring.rhobs version: v1alpha1 - description: Alertmanager describes an Alertmanager cluster displayName: Alertmanager kind: Alertmanager name: alertmanagers.monitoring.rhobs version: v1 - description: MonitoringStack is the Schema for the monitoringstacks API displayName: MonitoringStack kind: MonitoringStack name: monitoringstacks.monitoring.rhobs version: v1alpha1 - kind: ObservabilityInstaller name: observabilityinstallers.observability.openshift.io version: v1alpha1 - description: Perses is the Schema for the perses API displayName: Perses kind: Perses name: perses.perses.dev version: v1alpha1 - description: A Perses Dashboard displayName: Perses Dashboard kind: PersesDashboard name: persesdashboards.perses.dev version: v1alpha1 - description: A Perses Datasource displayName: Perses Datasource kind: PersesDatasource name: persesdatasources.perses.dev version: v1alpha1 - description: PodMonitor defines monitoring for a set of pods displayName: PodMonitor kind: PodMonitor name: podmonitors.monitoring.rhobs version: v1 - description: Probe defines monitoring for a set of static targets or ingresses displayName: Probe kind: Probe name: probes.monitoring.rhobs version: v1 - description: PrometheusAgent defines a Prometheus agent deployment displayName: PrometheusAgent kind: PrometheusAgent name: prometheusagents.monitoring.rhobs version: v1alpha1 - description: Prometheus defines a Prometheus deployment displayName: Prometheus kind: Prometheus name: prometheuses.monitoring.rhobs version: v1 - description: PrometheusRule defines recording and alerting rules for a Prometheus instance displayName: PrometheusRule kind: PrometheusRule name: prometheusrules.monitoring.rhobs version: v1 - description: ScrapeConfig defines a namespaced Prometheus scrape_config to be aggregated across multiple namespaces into the Prometheus configuration displayName: ScrapeConfig kind: ScrapeConfig name: scrapeconfigs.monitoring.rhobs version: v1alpha1 - description: ServiceMonitor defines monitoring for a set of services displayName: ServiceMonitor kind: ServiceMonitor name: servicemonitors.monitoring.rhobs version: v1 - description: ThanosQuerier outlines the Thanos querier components, managed by this stack displayName: ThanosQuerier kind: ThanosQuerier name: thanosqueriers.monitoring.rhobs version: v1alpha1 - description: ThanosRuler defines a ThanosRuler deployment displayName: ThanosRuler kind: ThanosRuler name: thanosrulers.monitoring.rhobs version: v1 - description: UIPlugin defines a console plugin for observability displayName: UIPlugin kind: UIPlugin name: uiplugins.observability.openshift.io version: v1alpha1 description: |- Cluster Observability Operator is a Go based Kubernetes operator to easily setup and manage various observability tools. ### Supported Features - Setup multiple Highly Available Monitoring stack using Prometheus, Alertmanager and Thanos Querier - Customizable configuration for managing Prometheus deployments - Customizable configuration for managing Alertmanager deployments - Customizable configuration for managing Thanos Querier deployments - Setup console plugins - Setup korrel8r - Setup Perses - Setup Cluster Health Analyzer ### Documentation - **[Documentation](https://docs.redhat.com/en/documentation/openshift_container_platform/latest/html/cluster_observability_operator/index)** ### License Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) displayName: Cluster Observability Operator icon: - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0idXVpZC1kMWI4NDIzOC0wYzgxLTQ5MjctOGQ4Mi03OTcyN2Y5OGZjYWMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM4IDM4Ij4KPHRpdGxlPkNsdXN0ZXIgb2JzZXJ2YWJpbGl0eTwvdGl0bGU+CjxkZXNjPmNsb3VkPC9kZXNjPgo8bWV0YWRhdGE+PD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOC4wLWMwMDEgMS4wMDAwMDAsIDAwMDAvMDAvMDAtMDA6MDA6MDAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8IS0tIG1ldGFkYXRhIGZpZWxkcyAtLT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InciPz48L21ldGFkYXRhPgo8ZGVmcz48c3R5bGU+LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhe2ZpbGw6I2UwZTBlMDt9LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhLC51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCwudXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgsLnV1aWQtNGJlZjgyMGItNTZjOS00N2U3LTgyYTMtMmRiOGQ4YzdiMTEye3N0cm9rZS13aWR0aDowcHg7fS51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMHtmaWxsOiMwMDA7fS51dWlkLWYwMzIxNzhlLWJkNTAtNGRlNy1iNzczLTY2NWJmZDVjNWJiOHtmaWxsOiNlMDA7fS51dWlkLTRiZWY4MjBiLTU2YzktNDdlNy04MmEzLTJkYjhkOGM3YjExMntmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPgo8cmVjdCBjbGFzcz0idXVpZC00YmVmODIwYi01NmM5LTQ3ZTctODJhMy0yZGI4ZDhjN2IxMTIiIHg9IjEiIHk9IjEiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjkiIHJ5PSI5Ii8+CjxwYXRoIGNsYXNzPSJ1dWlkLTI0YjBkOTdiLTY4MWUtNGRhNi1hMWM3LTc2NzFhZTU3NTMyYSIgZD0iTTI4LDIuMjVjNC4yNzM0LDAsNy43NSwzLjQ3NjYsNy43NSw3Ljc1djE4YzAsNC4yNzM0LTMuNDc2Niw3Ljc1LTcuNzUsNy43NUgxMGMtNC4yNzM0LDAtNy43NS0zLjQ3NjYtNy43NS03Ljc1VjEwYzAtNC4yNzM0LDMuNDc2Ni03Ljc1LDcuNzUtNy43NWgxOE0yOCwxSDEwQzUuMDI5NCwxLDEsNS4wMjk0LDEsMTB2MThjMCw0Ljk3MDYsNC4wMjk0LDksOSw5aDE4YzQuOTcwNiwwLDktNC4wMjk0LDktOVYxMGMwLTQuOTcwNi00LjAyOTQtOS05LTloMFoiLz4KPHBhdGggY2xhc3M9InV1aWQtZjAzMjE3OGUtYmQ1MC00ZGU3LWI3NzMtNjY1YmZkNWM1YmI4IiBkPSJNMjEuMzc1LDE5YzAsLjM0NTIuMjgwMy42MjUuNjI1LjYyNXMuNjI1LS4yNzk4LjYyNS0uNjI1YzAtMS45OTktMS42MjYtMy42MjUtMy42MjUtMy42MjUtLjM0NDcsMC0uNjI1LjI3OTgtLjYyNS42MjVzLjI4MDMuNjI1LjYyNS42MjVjMS4zMDk2LDAsMi4zNzUsMS4wNjU0LDIuMzc1LDIuMzc1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgiIGQ9Ik0xOSwxMy4zNzVjLS43ODIyLDAtMS41MzkxLjE1NzctMi4yNS40NjgzLS4zMTY0LjEzODItLjQ2MDkuNTA2OC0uMzIyMy44MjMyLjEzNzcuMzE2NC41MDc4LjQ1ODUuODIyMy4zMjIzLjU1MjctLjI0MTIsMS4xNDE2LS4zNjM4LDEuNzUtLjM2MzgsMi40MTIxLDAsNC4zNzUsMS45NjI0LDQuMzc1LDQuMzc1cy0xLjk2MjksNC4zNzUtNC4zNzUsNC4zNzUtNC4zNzUtMS45NjI0LTQuMzc1LTQuMzc1YzAtLjYwODkuMTIyMS0xLjE5NzMuMzYzMy0xLjc0OTUuMTM4Ny0uMzE2NC0uMDA1OS0uNjg1MS0uMzIyMy0uODIzMi0uMzE0NS0uMTM5Mi0uNjgzNi4wMDU0LS44MjIzLjMyMjMtLjMxMTUuNzExNC0uNDY4OCwxLjQ2ODMtLjQ2ODgsMi4yNTA1LDAsMy4xMDE2LDIuNTIzNCw1LjYyNSw1LjYyNSw1LjYyNXM1LjYyNS0yLjUyMzQsNS42MjUtNS42MjUtMi41MjM0LTUuNjI1LTUuNjI1LTUuNjI1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC05N2MxZWM4NC05YjgxLTQ1NmUtOTlhYS03MTM3NTBlYjY5ZTAiIGQ9Ik0zMC40NjY4LDE4LjczODhjLTIuMDU2Ni00LjQ3MzEtNi41NTc2LTcuMzYzOC0xMS40NjY4LTcuMzYzOHMtOS40MTAyLDIuODkwNi0xMS40NjY4LDcuMzYzOGMtLjA3NTIuMTY2LS4wNzUyLjM1NjQsMCwuNTIyNSwyLjA1NjYsNC40NzMxLDYuNTU3Niw3LjM2MzgsMTEuNDY2OCw3LjM2MzhzOS40MTAyLTIuODkwNiwxMS40NjY4LTcuMzYzOGMuMDc1Mi0uMTY2LjA3NTItLjM1NjQsMC0uNTIyNVpNMTksMjUuMzc1Yy00LjMyNjIsMC04LjMwMDgtMi40OTI3LTEwLjIwNjEtNi4zNzUsMS45MDUzLTMuODgyMyw1Ljg3OTktNi4zNzUsMTAuMjA2MS02LjM3NXM4LjMwMDgsMi40OTI3LDEwLjIwNjEsNi4zNzVjLTEuOTA1MywzLjg4MjMtNS44Nzk5LDYuMzc1LTEwLjIwNjEsNi4zNzVaIi8+CjxwYXRoIGNsYXNzPSJ1dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCIgZD0iTTE1LjQ0MjQsMTQuNTU4MWMtLjI0NDEtLjI0NDEtLjY0MDYtLjI0NDEtLjg4NDgsMC0uMjQzMi4yNDQxLS4yNDMyLjYzOTYsMCwuODgzOGw0LDRjLjEyMjEuMTIyMS4yODIyLjE4MzEuNDQyNC4xODMxcy4zMjAzLS4wNjEuNDQyNC0uMTgzMWMuMjQzMi0uMjQ0MS4yNDMyLS42Mzk2LDAtLjg4MzhsLTQtNFoiLz4KPC9zdmc+Cg== mediatype: image/svg+xml install: spec: clusterPermissions: - rules: - apiGroups: - monitoring.rhobs resources: - alertmanagers - alertmanagers/finalizers - alertmanagers/status - alertmanagerconfigs - prometheuses - prometheuses/finalizers - prometheuses/status - prometheusagents - prometheusagents/finalizers - prometheusagents/status - thanosrulers - thanosrulers/finalizers - thanosrulers/status - scrapeconfigs - scrapeconfigs/status - servicemonitors - servicemonitors/status - podmonitors - podmonitors/status - probes - probes/status - prometheusrules verbs: - '*' - apiGroups: - apps resources: - statefulsets verbs: - '*' - apiGroups: - "" resources: - configmaps - secrets verbs: - '*' - apiGroups: - "" resources: - pods verbs: - list - delete - apiGroups: - "" resources: - services - services/finalizers verbs: - get - create - update - delete - apiGroups: - "" resources: - nodes verbs: - list - watch - apiGroups: - "" resources: - namespaces verbs: - get - list - watch - apiGroups: - "" resources: - events verbs: - patch - create - apiGroups: - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - storage.k8s.io resources: - storageclasses verbs: - get - apiGroups: - "" resources: - endpoints verbs: - get - create - update - delete - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator - rules: - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator-admission-webhook - rules: - apiGroups: - "" resources: - configmaps - secrets - serviceaccounts - services verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - endpoints - events - namespaces - nodes - persistentvolumeclaims - persistentvolumes - pods - replicationcontrollers verbs: - get - list - watch - apiGroups: - "" resources: - services/finalizers verbs: - patch - update - apiGroups: - apps resources: - daemonsets - replicasets - statefulsets verbs: - get - list - watch - apiGroups: - apps resources: - deployments verbs: - create - delete - get - list - patch - update - watch - apiGroups: - authentication.k8s.io resources: - tokenreviews verbs: - create - apiGroups: - authorization.k8s.io resources: - subjectaccessreviews verbs: - create - apiGroups: - autoscaling resources: - horizontalpodautoscalers verbs: - get - list - watch - apiGroups: - batch resources: - cronjobs - jobs verbs: - get - list - watch - apiGroups: - config.openshift.io resources: - clusterversions verbs: - get - list - watch - apiGroups: - console.openshift.io resources: - consoleplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - extensions - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - loki.grafana.com resources: - application - audit - infrastructure - network verbs: - get - apiGroups: - loki.grafana.com resources: - lokistacks verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - main resources: - alertmanagers/api verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - k8s resources: - prometheuses/api verbs: - create - get - update - apiGroups: - monitoring.coreos.com resources: - servicemonitors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - alertmanagers - prometheuses - servicemonitors - thanosqueriers verbs: - create - delete - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks verbs: - create - get - list - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks/finalizers - monitoringstacks/status verbs: - get - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/finalizers verbs: - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/status verbs: - get - patch - update - apiGroups: - networking.k8s.io resources: - ingresses - networkpolicies verbs: - get - list - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers - uiplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers/finalizers - observabilityinstallers/status verbs: - delete - get - patch - update - apiGroups: - observability.openshift.io resources: - uiplugins/finalizers - uiplugins/status verbs: - get - update - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors/status verbs: - get - list - watch - apiGroups: - operator.openshift.io resources: - consoles verbs: - get - list - patch - watch - apiGroups: - operators.coreos.com resources: - clusterserviceversions - subscriptions verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses - persesdashboards - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers - persesdashboards/finalizers - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status - persesdashboards/status - persesdatasources/status verbs: - get - patch - update - apiGroups: - policy resources: - poddisruptionbudgets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - rbac.authorization.k8s.io resources: - clusterrolebindings - clusterroles - rolebindings - roles verbs: - create - delete - get - list - patch - update - watch - apiGroups: - security.openshift.io resourceNames: - nonroot - nonroot-v2 resources: - securitycontextconstraints verbs: - use - apiGroups: - storage.k8s.io resources: - storageclasses - volumeattachments verbs: - get - list - watch - apiGroups: - tempo.grafana.com resourceNames: - traces resources: - application verbs: - create - apiGroups: - tempo.grafana.com resources: - tempomonolithics verbs: - list - apiGroups: - tempo.grafana.com resources: - tempostacks verbs: - create - delete - get - list - patch - update - watch - apiGroups: - tempo.grafana.com resources: - tempostacks/status verbs: - get - list - watch serviceAccountName: observability-operator-sa - rules: - apiGroups: - apps resources: - deployments - statefulsets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - events verbs: - create - patch - apiGroups: - "" resources: - services - configmaps - secrets verbs: - get - patch - update - create - delete - list - watch - apiGroups: - perses.dev resources: - perses verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdashboards verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdashboards/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdashboards/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdatasources/status verbs: - get - patch - update serviceAccountName: perses-operator deployments: - label: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 automountServiceAccountToken: true containers: - args: - --prometheus-config-reloader=$(RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER) - --prometheus-instance-selector=app.kubernetes.io/managed-by=observability-operator - --alertmanager-instance-selector=app.kubernetes.io/managed-by=observability-operator - --thanos-ruler-instance-selector=app.kubernetes.io/managed-by=observability-operator env: - name: GOGC value: "30" - name: RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER value: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator ports: - containerPort: 8080 name: http protocol: TCP resources: limits: cpu: 100m memory: 500Mi requests: cpu: 5m memory: 150Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator-admission-webhook spec: replicas: 2 selector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator strategy: rollingUpdate: maxUnavailable: 1 template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator-admission-webhook creationTimestamp: null labels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator namespaces: - default topologyKey: kubernetes.io/hostname automountServiceAccountToken: false containers: - args: - --web.enable-tls=true - --web.cert-file=/tmp/k8s-webhook-server/serving-certs/tls.crt - --web.key-file=/tmp/k8s-webhook-server/serving-certs/tls.key image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook ports: - containerPort: 8443 name: https protocol: TCP resources: limits: cpu: 200m memory: 200Mi requests: cpu: 50m memory: 50Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator-admission-webhook tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 name: observability-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator strategy: {} template: metadata: creationTimestamp: null labels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - args: - --namespace=$(NAMESPACE) - --images=perses=$(RELATED_IMAGE_PERSES) - --images=alertmanager=$(RELATED_IMAGE_ALERTMANAGER) - --images=prometheus=$(RELATED_IMAGE_PROMETHEUS) - --images=thanos=$(RELATED_IMAGE_THANOS) - --images=ui-dashboards=$(RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN) - --images=ui-distributed-tracing=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN) - --images=ui-distributed-tracing-pf5=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5) - --images=ui-distributed-tracing-pf4=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4) - --images=ui-logging=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN) - --images=ui-logging-pf4=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4) - --images=ui-troubleshooting-panel=$(RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN) - --images=ui-monitoring=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN) - --images=ui-monitoring-pf5=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5) - --images=korrel8r=$(RELATED_IMAGE_KORREL8R) - --images=health-analyzer=$(RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER) - --openshift.enabled=true env: - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: RELATED_IMAGE_ALERTMANAGER value: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 - name: RELATED_IMAGE_PROMETHEUS value: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b - name: RELATED_IMAGE_THANOS value: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 - name: RELATED_IMAGE_PERSES value: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade - name: RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN value: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 - name: RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN value: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c - name: RELATED_IMAGE_KORREL8R value: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 - name: RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER value: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb imagePullPolicy: Always livenessProbe: httpGet: path: /healthz port: 8081 name: operator readinessProbe: httpGet: path: /healthz port: 8081 resources: limits: cpu: 400m memory: 512Mi requests: cpu: 100m memory: 256Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /etc/tls/private name: observability-operator-tls readOnly: true securityContext: runAsNonRoot: true serviceAccountName: observability-operator-sa terminationGracePeriodSeconds: 30 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - name: observability-operator-tls secret: optional: true secretName: observability-operator-tls - label: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator name: perses-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: perses-operator creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 15 periodSeconds: 20 name: perses-operator readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 resources: limits: cpu: 500m memory: 512Mi requests: cpu: 100m memory: 128Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /ca name: openshift-service-ca readOnly: true serviceAccountName: perses-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt optional: true name: openshift-service-ca strategy: deployment installModes: - supported: false type: OwnNamespace - supported: false type: SingleNamespace - supported: false type: MultiNamespace - supported: true type: AllNamespaces keywords: - observability - monitoring - prometheus - thanos links: - name: GitHub url: https://github.com/rhobs/observability-operator maintainers: - email: jfajersk@redhat.com name: Jan Fajerski - email: spasquie@redhat.com name: Simon Pasquier maturity: alpha provider: name: Red Hat relatedImages: - image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb name: cluster-observability-operator - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 name: prometheus-config-reloader - image: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 name: alertmanager - image: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b name: prometheus - image: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 name: thanos - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator - image: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb name: ui-dashboards - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f name: ui-tracing - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 name: ui-tracing-pf5 - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 name: ui-tracing-pf4 - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b name: ui-logging - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 name: ui-logging-pf4 - image: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 name: ui-troubleshooting - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 name: ui-monitoring - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c name: ui-monitoring-pf5 - image: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 name: korrel8r - image: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 name: cluster-health-analyzer - image: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade name: perses - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 name: perses-operator replaces: cluster-observability-operator.v1.2.2 version: 1.3.0 webhookdefinitions: - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: alertmanagerconfigs.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - alertmanagerconfigs scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-alertmanagerconfigs/validate - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: prometheusrules.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - prometheusrules scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-prometheusrules/validate status: certsLastUpdated: "2025-12-04T00:56:42Z" certsRotateAt: "2027-12-03T00:56:41Z" cleanup: {} conditions: - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: requirements not yet checked phase: Pending reason: RequirementsUnknown - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: one or more requirements couldn't be found phase: Pending reason: RequirementsNotMet - lastTransitionTime: "2025-12-04T00:56:39Z" lastUpdateTime: "2025-12-04T00:56:39Z" message: all requirements found, attempting install phase: InstallReady reason: AllRequirementsMet - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:41Z" message: waiting for install components to report healthy phase: Installing reason: InstallSucceeded - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:43Z" message: 'installing: waiting for deployment obo-prometheus-operator to become ready: deployment "obo-prometheus-operator" not available: Deployment does not have minimum availability.' phase: Installing reason: InstallWaiting - lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: install strategy completed with no errors phase: Succeeded reason: InstallSucceeded lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: The operator is running in openshift-operators but is managing this namespace phase: Succeeded reason: Copied requirementStatus: - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagerconfigs.monitoring.rhobs status: Present uuid: fdb5fb0c-6e9f-4adf-9365-e3e7eb7c0067 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagers.monitoring.rhobs status: Present uuid: e7cc9eeb-3d09-427c-a19e-e9c6b7eb2898 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: monitoringstacks.monitoring.rhobs status: Present uuid: 9ccaadbf-0dca-48b2-a78f-500c1872cfff version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: observabilityinstallers.observability.openshift.io status: Present uuid: 77fac378-1af3-4ceb-ab13-4dcbdcd7273c version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: perses.perses.dev status: Present uuid: e03c0eb7-4876-4e69-897d-262406875f61 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdashboards.perses.dev status: Present uuid: e3e03868-fb11-4678-832d-b4347b218d2f version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdatasources.perses.dev status: Present uuid: 842a1904-aa52-4dfe-8f68-445677c5832d version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: podmonitors.monitoring.rhobs status: Present uuid: 7f0fbafb-4530-4794-ba46-036a95ce4ed1 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: probes.monitoring.rhobs status: Present uuid: 5e9f4268-128e-484a-81b8-826995506fc0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusagents.monitoring.rhobs status: Present uuid: 7e7569e0-7f4e-474f-b8a3-82aa6d1491af version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheuses.monitoring.rhobs status: Present uuid: b4317bbb-7c2d-4663-a47f-df8459ad11a5 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusrules.monitoring.rhobs status: Present uuid: 7155f6cf-1c79-416e-8c3b-4f151e5024b0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: scrapeconfigs.monitoring.rhobs status: Present uuid: 3c0d5d32-16b5-49b2-b6ea-290b52c13784 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: servicemonitors.monitoring.rhobs status: Present uuid: 35381462-6751-4a3e-8efe-2348be176098 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosqueriers.monitoring.rhobs status: Present uuid: bd3cda66-d433-40ce-9892-bc4ac8eb9b7e version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosrulers.monitoring.rhobs status: Present uuid: 567d004f-dd11-4527-a2ee-c97b395d08cf version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: uiplugins.observability.openshift.io status: Present uuid: b14324f9-a93e-4a3c-975e-02bdf570d177 version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","alertmanagers/finalizers","alertmanagers/status","alertmanagerconfigs","prometheuses","prometheuses/finalizers","prometheuses/status","prometheusagents","prometheusagents/finalizers","prometheusagents/status","thanosrulers","thanosrulers/finalizers","thanosrulers/status","scrapeconfigs","scrapeconfigs/status","servicemonitors","servicemonitors/status","podmonitors","podmonitors/status","probes","probes/status","prometheusrules"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["apps"],"resources":["statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":[""],"resources":["configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","delete"],"apiGroups":[""],"resources":["pods"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["services","services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","watch"],"apiGroups":[""],"resources":["nodes"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["namespaces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","create"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["endpoints"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator-admission-webhook status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["configmaps","secrets","serviceaccounts","services"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["endpoints","events","namespaces","nodes","persistentvolumeclaims","persistentvolumes","pods","replicationcontrollers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","update"],"apiGroups":[""],"resources":["services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["apps"],"resources":["daemonsets","replicasets","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authentication.k8s.io"],"resources":["tokenreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authorization.k8s.io"],"resources":["subjectaccessreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["autoscaling"],"resources":["horizontalpodautoscalers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["batch"],"resources":["cronjobs","jobs"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["config.openshift.io"],"resources":["clusterversions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["console.openshift.io"],"resources":["consoleplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["extensions","networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["loki.grafana.com"],"resources":["application","audit","infrastructure","network"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["loki.grafana.com"],"resources":["lokistacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["monitoring.coreos.com"],"resources":["alertmanagers/api"],"resourceNames":["main"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","update"],"apiGroups":["monitoring.coreos.com"],"resources":["prometheuses/api"],"resourceNames":["k8s"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["monitoring.coreos.com"],"resources":["servicemonitors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","list","patch","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","prometheuses","servicemonitors","thanosqueriers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","list","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks/finalizers","monitoringstacks/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses","networkpolicies"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers","uiplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["delete","get","patch","update"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers/finalizers","observabilityinstallers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["observability.openshift.io"],"resources":["uiplugins/finalizers","uiplugins/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","patch","watch"],"apiGroups":["operator.openshift.io"],"resources":["consoles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["operators.coreos.com"],"resources":["clusterserviceversions","subscriptions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses","persesdashboards","persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers","persesdashboards/finalizers","persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status","persesdashboards/status","persesdatasources/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["policy"],"resources":["poddisruptionbudgets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["clusterrolebindings","clusterroles","rolebindings","roles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot","nonroot-v2"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses","volumeattachments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["tempo.grafana.com"],"resources":["application"],"resourceNames":["traces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list"],"apiGroups":["tempo.grafana.com"],"resources":["tempomonolithics"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: observability-operator-sa status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","patch"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update","create","delete","list","watch"],"apiGroups":[""],"resources":["services","configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdashboards"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: perses-operator status: Present version: v1 apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: alm-examples: |- [ { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "MonitoringStack", "metadata": { "labels": { "mso": "example" }, "name": "sample-monitoring-stack" }, "spec": { "logLevel": "debug", "resourceSelector": { "matchLabels": { "app": "demo" } }, "retention": "1d" } }, { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "ThanosQuerier", "metadata": { "name": "example-thanos" }, "spec": { "selector": { "matchLabels": { "mso": "example" } } } } ] capabilities: Basic Install categories: Monitoring certified: "false" containerImage: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb createdAt: "2025-11-03T09:23:49Z" description: A Go based Kubernetes operator to setup and manage highly available Monitoring Stack using Prometheus, Alertmanager and Thanos Querier. features.operators.openshift.io/cnf: "false" features.operators.openshift.io/cni: "false" features.operators.openshift.io/csi: "false" features.operators.openshift.io/disconnected: "true" features.operators.openshift.io/fips-compliant: "false" features.operators.openshift.io/proxy-aware: "false" features.operators.openshift.io/tls-profiles: "false" features.operators.openshift.io/token-auth-aws: "false" features.operators.openshift.io/token-auth-azure: "false" features.operators.openshift.io/token-auth-gcp: "false" olm.operatorGroup: global-operators olm.operatorNamespace: openshift-operators olm.skipRange: '>=..0 <1.3.0' operatorframework.io/cluster-monitoring: "true" operatorframework.io/properties: '{"properties":[{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Alertmanager","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"AlertmanagerConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"MonitoringStack","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PodMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Probe","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Prometheus","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusAgent","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusRule","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ScrapeConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ServiceMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosQuerier","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosRuler","version":"v1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"ObservabilityInstaller","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"UIPlugin","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"Perses","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDashboard","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDatasource","version":"v1alpha1"}},{"type":"olm.package","value":{"packageName":"cluster-observability-operator","version":"1.3.0"}}]}' operatorframework.io/suggested-namespace: openshift-cluster-observability-operator operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", "OpenShift Container Platform", "OpenShift Platform Plus"]' operators.operatorframework.io/builder: operator-sdk-v1.41.1 operators.operatorframework.io/internal-objects: |- [ "prometheuses.monitoring.rhobs", "alertmanagers.monitoring.rhobs", "thanosrulers.monitoring.rhobs", "prometheusagents.monitoring.rhobs", "perses.perses.dev" ] operators.operatorframework.io/project_layout: unknown repository: https://github.com/rhobs/observability-operator support: Cluster Observability (https://issues.redhat.com/projects/COO/) creationTimestamp: "2025-12-04T00:56:39Z" generation: 1 labels: olm.copiedFrom: openshift-operators olm.managed: "true" operatorframework.io/arch.amd64: supported operatorframework.io/arch.arm64: supported operatorframework.io/arch.ppc64le: supported operatorframework.io/arch.s390x: supported name: cluster-observability-operator.v1.3.0 namespace: openshift-machine-api resourceVersion: "22857" uid: e1c24d49-24d7-43b9-ace7-9960827d681a spec: apiservicedefinitions: {} cleanup: enabled: false customresourcedefinitions: owned: - description: AlertmanagerConfig configures the Prometheus Alertmanager, specifying how alerts should be grouped, inhibited and notified to external systems displayName: AlertmanagerConfig kind: AlertmanagerConfig name: alertmanagerconfigs.monitoring.rhobs version: v1alpha1 - description: Alertmanager describes an Alertmanager cluster displayName: Alertmanager kind: Alertmanager name: alertmanagers.monitoring.rhobs version: v1 - description: MonitoringStack is the Schema for the monitoringstacks API displayName: MonitoringStack kind: MonitoringStack name: monitoringstacks.monitoring.rhobs version: v1alpha1 - kind: ObservabilityInstaller name: observabilityinstallers.observability.openshift.io version: v1alpha1 - description: Perses is the Schema for the perses API displayName: Perses kind: Perses name: perses.perses.dev version: v1alpha1 - description: A Perses Dashboard displayName: Perses Dashboard kind: PersesDashboard name: persesdashboards.perses.dev version: v1alpha1 - description: A Perses Datasource displayName: Perses Datasource kind: PersesDatasource name: persesdatasources.perses.dev version: v1alpha1 - description: PodMonitor defines monitoring for a set of pods displayName: PodMonitor kind: PodMonitor name: podmonitors.monitoring.rhobs version: v1 - description: Probe defines monitoring for a set of static targets or ingresses displayName: Probe kind: Probe name: probes.monitoring.rhobs version: v1 - description: PrometheusAgent defines a Prometheus agent deployment displayName: PrometheusAgent kind: PrometheusAgent name: prometheusagents.monitoring.rhobs version: v1alpha1 - description: Prometheus defines a Prometheus deployment displayName: Prometheus kind: Prometheus name: prometheuses.monitoring.rhobs version: v1 - description: PrometheusRule defines recording and alerting rules for a Prometheus instance displayName: PrometheusRule kind: PrometheusRule name: prometheusrules.monitoring.rhobs version: v1 - description: ScrapeConfig defines a namespaced Prometheus scrape_config to be aggregated across multiple namespaces into the Prometheus configuration displayName: ScrapeConfig kind: ScrapeConfig name: scrapeconfigs.monitoring.rhobs version: v1alpha1 - description: ServiceMonitor defines monitoring for a set of services displayName: ServiceMonitor kind: ServiceMonitor name: servicemonitors.monitoring.rhobs version: v1 - description: ThanosQuerier outlines the Thanos querier components, managed by this stack displayName: ThanosQuerier kind: ThanosQuerier name: thanosqueriers.monitoring.rhobs version: v1alpha1 - description: ThanosRuler defines a ThanosRuler deployment displayName: ThanosRuler kind: ThanosRuler name: thanosrulers.monitoring.rhobs version: v1 - description: UIPlugin defines a console plugin for observability displayName: UIPlugin kind: UIPlugin name: uiplugins.observability.openshift.io version: v1alpha1 description: |- Cluster Observability Operator is a Go based Kubernetes operator to easily setup and manage various observability tools. ### Supported Features - Setup multiple Highly Available Monitoring stack using Prometheus, Alertmanager and Thanos Querier - Customizable configuration for managing Prometheus deployments - Customizable configuration for managing Alertmanager deployments - Customizable configuration for managing Thanos Querier deployments - Setup console plugins - Setup korrel8r - Setup Perses - Setup Cluster Health Analyzer ### Documentation - **[Documentation](https://docs.redhat.com/en/documentation/openshift_container_platform/latest/html/cluster_observability_operator/index)** ### License Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) displayName: Cluster Observability Operator icon: - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0idXVpZC1kMWI4NDIzOC0wYzgxLTQ5MjctOGQ4Mi03OTcyN2Y5OGZjYWMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM4IDM4Ij4KPHRpdGxlPkNsdXN0ZXIgb2JzZXJ2YWJpbGl0eTwvdGl0bGU+CjxkZXNjPmNsb3VkPC9kZXNjPgo8bWV0YWRhdGE+PD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOC4wLWMwMDEgMS4wMDAwMDAsIDAwMDAvMDAvMDAtMDA6MDA6MDAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8IS0tIG1ldGFkYXRhIGZpZWxkcyAtLT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InciPz48L21ldGFkYXRhPgo8ZGVmcz48c3R5bGU+LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhe2ZpbGw6I2UwZTBlMDt9LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhLC51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCwudXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgsLnV1aWQtNGJlZjgyMGItNTZjOS00N2U3LTgyYTMtMmRiOGQ4YzdiMTEye3N0cm9rZS13aWR0aDowcHg7fS51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMHtmaWxsOiMwMDA7fS51dWlkLWYwMzIxNzhlLWJkNTAtNGRlNy1iNzczLTY2NWJmZDVjNWJiOHtmaWxsOiNlMDA7fS51dWlkLTRiZWY4MjBiLTU2YzktNDdlNy04MmEzLTJkYjhkOGM3YjExMntmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPgo8cmVjdCBjbGFzcz0idXVpZC00YmVmODIwYi01NmM5LTQ3ZTctODJhMy0yZGI4ZDhjN2IxMTIiIHg9IjEiIHk9IjEiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjkiIHJ5PSI5Ii8+CjxwYXRoIGNsYXNzPSJ1dWlkLTI0YjBkOTdiLTY4MWUtNGRhNi1hMWM3LTc2NzFhZTU3NTMyYSIgZD0iTTI4LDIuMjVjNC4yNzM0LDAsNy43NSwzLjQ3NjYsNy43NSw3Ljc1djE4YzAsNC4yNzM0LTMuNDc2Niw3Ljc1LTcuNzUsNy43NUgxMGMtNC4yNzM0LDAtNy43NS0zLjQ3NjYtNy43NS03Ljc1VjEwYzAtNC4yNzM0LDMuNDc2Ni03Ljc1LDcuNzUtNy43NWgxOE0yOCwxSDEwQzUuMDI5NCwxLDEsNS4wMjk0LDEsMTB2MThjMCw0Ljk3MDYsNC4wMjk0LDksOSw5aDE4YzQuOTcwNiwwLDktNC4wMjk0LDktOVYxMGMwLTQuOTcwNi00LjAyOTQtOS05LTloMFoiLz4KPHBhdGggY2xhc3M9InV1aWQtZjAzMjE3OGUtYmQ1MC00ZGU3LWI3NzMtNjY1YmZkNWM1YmI4IiBkPSJNMjEuMzc1LDE5YzAsLjM0NTIuMjgwMy42MjUuNjI1LjYyNXMuNjI1LS4yNzk4LjYyNS0uNjI1YzAtMS45OTktMS42MjYtMy42MjUtMy42MjUtMy42MjUtLjM0NDcsMC0uNjI1LjI3OTgtLjYyNS42MjVzLjI4MDMuNjI1LjYyNS42MjVjMS4zMDk2LDAsMi4zNzUsMS4wNjU0LDIuMzc1LDIuMzc1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgiIGQ9Ik0xOSwxMy4zNzVjLS43ODIyLDAtMS41MzkxLjE1NzctMi4yNS40NjgzLS4zMTY0LjEzODItLjQ2MDkuNTA2OC0uMzIyMy44MjMyLjEzNzcuMzE2NC41MDc4LjQ1ODUuODIyMy4zMjIzLjU1MjctLjI0MTIsMS4xNDE2LS4zNjM4LDEuNzUtLjM2MzgsMi40MTIxLDAsNC4zNzUsMS45NjI0LDQuMzc1LDQuMzc1cy0xLjk2MjksNC4zNzUtNC4zNzUsNC4zNzUtNC4zNzUtMS45NjI0LTQuMzc1LTQuMzc1YzAtLjYwODkuMTIyMS0xLjE5NzMuMzYzMy0xLjc0OTUuMTM4Ny0uMzE2NC0uMDA1OS0uNjg1MS0uMzIyMy0uODIzMi0uMzE0NS0uMTM5Mi0uNjgzNi4wMDU0LS44MjIzLjMyMjMtLjMxMTUuNzExNC0uNDY4OCwxLjQ2ODMtLjQ2ODgsMi4yNTA1LDAsMy4xMDE2LDIuNTIzNCw1LjYyNSw1LjYyNSw1LjYyNXM1LjYyNS0yLjUyMzQsNS42MjUtNS42MjUtMi41MjM0LTUuNjI1LTUuNjI1LTUuNjI1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC05N2MxZWM4NC05YjgxLTQ1NmUtOTlhYS03MTM3NTBlYjY5ZTAiIGQ9Ik0zMC40NjY4LDE4LjczODhjLTIuMDU2Ni00LjQ3MzEtNi41NTc2LTcuMzYzOC0xMS40NjY4LTcuMzYzOHMtOS40MTAyLDIuODkwNi0xMS40NjY4LDcuMzYzOGMtLjA3NTIuMTY2LS4wNzUyLjM1NjQsMCwuNTIyNSwyLjA1NjYsNC40NzMxLDYuNTU3Niw3LjM2MzgsMTEuNDY2OCw3LjM2MzhzOS40MTAyLTIuODkwNiwxMS40NjY4LTcuMzYzOGMuMDc1Mi0uMTY2LjA3NTItLjM1NjQsMC0uNTIyNVpNMTksMjUuMzc1Yy00LjMyNjIsMC04LjMwMDgtMi40OTI3LTEwLjIwNjEtNi4zNzUsMS45MDUzLTMuODgyMyw1Ljg3OTktNi4zNzUsMTAuMjA2MS02LjM3NXM4LjMwMDgsMi40OTI3LDEwLjIwNjEsNi4zNzVjLTEuOTA1MywzLjg4MjMtNS44Nzk5LDYuMzc1LTEwLjIwNjEsNi4zNzVaIi8+CjxwYXRoIGNsYXNzPSJ1dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCIgZD0iTTE1LjQ0MjQsMTQuNTU4MWMtLjI0NDEtLjI0NDEtLjY0MDYtLjI0NDEtLjg4NDgsMC0uMjQzMi4yNDQxLS4yNDMyLjYzOTYsMCwuODgzOGw0LDRjLjEyMjEuMTIyMS4yODIyLjE4MzEuNDQyNC4xODMxcy4zMjAzLS4wNjEuNDQyNC0uMTgzMWMuMjQzMi0uMjQ0MS4yNDMyLS42Mzk2LDAtLjg4MzhsLTQtNFoiLz4KPC9zdmc+Cg== mediatype: image/svg+xml install: spec: clusterPermissions: - rules: - apiGroups: - monitoring.rhobs resources: - alertmanagers - alertmanagers/finalizers - alertmanagers/status - alertmanagerconfigs - prometheuses - prometheuses/finalizers - prometheuses/status - prometheusagents - prometheusagents/finalizers - prometheusagents/status - thanosrulers - thanosrulers/finalizers - thanosrulers/status - scrapeconfigs - scrapeconfigs/status - servicemonitors - servicemonitors/status - podmonitors - podmonitors/status - probes - probes/status - prometheusrules verbs: - '*' - apiGroups: - apps resources: - statefulsets verbs: - '*' - apiGroups: - "" resources: - configmaps - secrets verbs: - '*' - apiGroups: - "" resources: - pods verbs: - list - delete - apiGroups: - "" resources: - services - services/finalizers verbs: - get - create - update - delete - apiGroups: - "" resources: - nodes verbs: - list - watch - apiGroups: - "" resources: - namespaces verbs: - get - list - watch - apiGroups: - "" resources: - events verbs: - patch - create - apiGroups: - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - storage.k8s.io resources: - storageclasses verbs: - get - apiGroups: - "" resources: - endpoints verbs: - get - create - update - delete - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator - rules: - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator-admission-webhook - rules: - apiGroups: - "" resources: - configmaps - secrets - serviceaccounts - services verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - endpoints - events - namespaces - nodes - persistentvolumeclaims - persistentvolumes - pods - replicationcontrollers verbs: - get - list - watch - apiGroups: - "" resources: - services/finalizers verbs: - patch - update - apiGroups: - apps resources: - daemonsets - replicasets - statefulsets verbs: - get - list - watch - apiGroups: - apps resources: - deployments verbs: - create - delete - get - list - patch - update - watch - apiGroups: - authentication.k8s.io resources: - tokenreviews verbs: - create - apiGroups: - authorization.k8s.io resources: - subjectaccessreviews verbs: - create - apiGroups: - autoscaling resources: - horizontalpodautoscalers verbs: - get - list - watch - apiGroups: - batch resources: - cronjobs - jobs verbs: - get - list - watch - apiGroups: - config.openshift.io resources: - clusterversions verbs: - get - list - watch - apiGroups: - console.openshift.io resources: - consoleplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - extensions - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - loki.grafana.com resources: - application - audit - infrastructure - network verbs: - get - apiGroups: - loki.grafana.com resources: - lokistacks verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - main resources: - alertmanagers/api verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - k8s resources: - prometheuses/api verbs: - create - get - update - apiGroups: - monitoring.coreos.com resources: - servicemonitors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - alertmanagers - prometheuses - servicemonitors - thanosqueriers verbs: - create - delete - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks verbs: - create - get - list - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks/finalizers - monitoringstacks/status verbs: - get - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/finalizers verbs: - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/status verbs: - get - patch - update - apiGroups: - networking.k8s.io resources: - ingresses - networkpolicies verbs: - get - list - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers - uiplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers/finalizers - observabilityinstallers/status verbs: - delete - get - patch - update - apiGroups: - observability.openshift.io resources: - uiplugins/finalizers - uiplugins/status verbs: - get - update - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors/status verbs: - get - list - watch - apiGroups: - operator.openshift.io resources: - consoles verbs: - get - list - patch - watch - apiGroups: - operators.coreos.com resources: - clusterserviceversions - subscriptions verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses - persesdashboards - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers - persesdashboards/finalizers - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status - persesdashboards/status - persesdatasources/status verbs: - get - patch - update - apiGroups: - policy resources: - poddisruptionbudgets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - rbac.authorization.k8s.io resources: - clusterrolebindings - clusterroles - rolebindings - roles verbs: - create - delete - get - list - patch - update - watch - apiGroups: - security.openshift.io resourceNames: - nonroot - nonroot-v2 resources: - securitycontextconstraints verbs: - use - apiGroups: - storage.k8s.io resources: - storageclasses - volumeattachments verbs: - get - list - watch - apiGroups: - tempo.grafana.com resourceNames: - traces resources: - application verbs: - create - apiGroups: - tempo.grafana.com resources: - tempomonolithics verbs: - list - apiGroups: - tempo.grafana.com resources: - tempostacks verbs: - create - delete - get - list - patch - update - watch - apiGroups: - tempo.grafana.com resources: - tempostacks/status verbs: - get - list - watch serviceAccountName: observability-operator-sa - rules: - apiGroups: - apps resources: - deployments - statefulsets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - events verbs: - create - patch - apiGroups: - "" resources: - services - configmaps - secrets verbs: - get - patch - update - create - delete - list - watch - apiGroups: - perses.dev resources: - perses verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdashboards verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdashboards/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdashboards/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdatasources/status verbs: - get - patch - update serviceAccountName: perses-operator deployments: - label: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 automountServiceAccountToken: true containers: - args: - --prometheus-config-reloader=$(RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER) - --prometheus-instance-selector=app.kubernetes.io/managed-by=observability-operator - --alertmanager-instance-selector=app.kubernetes.io/managed-by=observability-operator - --thanos-ruler-instance-selector=app.kubernetes.io/managed-by=observability-operator env: - name: GOGC value: "30" - name: RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER value: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator ports: - containerPort: 8080 name: http protocol: TCP resources: limits: cpu: 100m memory: 500Mi requests: cpu: 5m memory: 150Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator-admission-webhook spec: replicas: 2 selector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator strategy: rollingUpdate: maxUnavailable: 1 template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator-admission-webhook creationTimestamp: null labels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator namespaces: - default topologyKey: kubernetes.io/hostname automountServiceAccountToken: false containers: - args: - --web.enable-tls=true - --web.cert-file=/tmp/k8s-webhook-server/serving-certs/tls.crt - --web.key-file=/tmp/k8s-webhook-server/serving-certs/tls.key image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook ports: - containerPort: 8443 name: https protocol: TCP resources: limits: cpu: 200m memory: 200Mi requests: cpu: 50m memory: 50Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator-admission-webhook tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 name: observability-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator strategy: {} template: metadata: creationTimestamp: null labels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - args: - --namespace=$(NAMESPACE) - --images=perses=$(RELATED_IMAGE_PERSES) - --images=alertmanager=$(RELATED_IMAGE_ALERTMANAGER) - --images=prometheus=$(RELATED_IMAGE_PROMETHEUS) - --images=thanos=$(RELATED_IMAGE_THANOS) - --images=ui-dashboards=$(RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN) - --images=ui-distributed-tracing=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN) - --images=ui-distributed-tracing-pf5=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5) - --images=ui-distributed-tracing-pf4=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4) - --images=ui-logging=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN) - --images=ui-logging-pf4=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4) - --images=ui-troubleshooting-panel=$(RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN) - --images=ui-monitoring=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN) - --images=ui-monitoring-pf5=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5) - --images=korrel8r=$(RELATED_IMAGE_KORREL8R) - --images=health-analyzer=$(RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER) - --openshift.enabled=true env: - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: RELATED_IMAGE_ALERTMANAGER value: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 - name: RELATED_IMAGE_PROMETHEUS value: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b - name: RELATED_IMAGE_THANOS value: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 - name: RELATED_IMAGE_PERSES value: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade - name: RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN value: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 - name: RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN value: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c - name: RELATED_IMAGE_KORREL8R value: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 - name: RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER value: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb imagePullPolicy: Always livenessProbe: httpGet: path: /healthz port: 8081 name: operator readinessProbe: httpGet: path: /healthz port: 8081 resources: limits: cpu: 400m memory: 512Mi requests: cpu: 100m memory: 256Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /etc/tls/private name: observability-operator-tls readOnly: true securityContext: runAsNonRoot: true serviceAccountName: observability-operator-sa terminationGracePeriodSeconds: 30 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - name: observability-operator-tls secret: optional: true secretName: observability-operator-tls - label: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator name: perses-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: perses-operator creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 15 periodSeconds: 20 name: perses-operator readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 resources: limits: cpu: 500m memory: 512Mi requests: cpu: 100m memory: 128Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /ca name: openshift-service-ca readOnly: true serviceAccountName: perses-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt optional: true name: openshift-service-ca strategy: deployment installModes: - supported: false type: OwnNamespace - supported: false type: SingleNamespace - supported: false type: MultiNamespace - supported: true type: AllNamespaces keywords: - observability - monitoring - prometheus - thanos links: - name: GitHub url: https://github.com/rhobs/observability-operator maintainers: - email: jfajersk@redhat.com name: Jan Fajerski - email: spasquie@redhat.com name: Simon Pasquier maturity: alpha provider: name: Red Hat relatedImages: - image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb name: cluster-observability-operator - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 name: prometheus-config-reloader - image: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 name: alertmanager - image: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b name: prometheus - image: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 name: thanos - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator - image: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb name: ui-dashboards - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f name: ui-tracing - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 name: ui-tracing-pf5 - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 name: ui-tracing-pf4 - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b name: ui-logging - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 name: ui-logging-pf4 - image: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 name: ui-troubleshooting - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 name: ui-monitoring - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c name: ui-monitoring-pf5 - image: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 name: korrel8r - image: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 name: cluster-health-analyzer - image: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade name: perses - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 name: perses-operator replaces: cluster-observability-operator.v1.2.2 version: 1.3.0 webhookdefinitions: - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: alertmanagerconfigs.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - alertmanagerconfigs scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-alertmanagerconfigs/validate - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: prometheusrules.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - prometheusrules scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-prometheusrules/validate status: certsLastUpdated: "2025-12-04T00:56:42Z" certsRotateAt: "2027-12-03T00:56:41Z" cleanup: {} conditions: - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: requirements not yet checked phase: Pending reason: RequirementsUnknown - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: one or more requirements couldn't be found phase: Pending reason: RequirementsNotMet - lastTransitionTime: "2025-12-04T00:56:39Z" lastUpdateTime: "2025-12-04T00:56:39Z" message: all requirements found, attempting install phase: InstallReady reason: AllRequirementsMet - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:41Z" message: waiting for install components to report healthy phase: Installing reason: InstallSucceeded - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:43Z" message: 'installing: waiting for deployment obo-prometheus-operator to become ready: deployment "obo-prometheus-operator" not available: Deployment does not have minimum availability.' phase: Installing reason: InstallWaiting - lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: install strategy completed with no errors phase: Succeeded reason: InstallSucceeded lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: The operator is running in openshift-operators but is managing this namespace phase: Succeeded reason: Copied requirementStatus: - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagerconfigs.monitoring.rhobs status: Present uuid: fdb5fb0c-6e9f-4adf-9365-e3e7eb7c0067 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagers.monitoring.rhobs status: Present uuid: e7cc9eeb-3d09-427c-a19e-e9c6b7eb2898 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: monitoringstacks.monitoring.rhobs status: Present uuid: 9ccaadbf-0dca-48b2-a78f-500c1872cfff version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: observabilityinstallers.observability.openshift.io status: Present uuid: 77fac378-1af3-4ceb-ab13-4dcbdcd7273c version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: perses.perses.dev status: Present uuid: e03c0eb7-4876-4e69-897d-262406875f61 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdashboards.perses.dev status: Present uuid: e3e03868-fb11-4678-832d-b4347b218d2f version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdatasources.perses.dev status: Present uuid: 842a1904-aa52-4dfe-8f68-445677c5832d version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: podmonitors.monitoring.rhobs status: Present uuid: 7f0fbafb-4530-4794-ba46-036a95ce4ed1 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: probes.monitoring.rhobs status: Present uuid: 5e9f4268-128e-484a-81b8-826995506fc0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusagents.monitoring.rhobs status: Present uuid: 7e7569e0-7f4e-474f-b8a3-82aa6d1491af version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheuses.monitoring.rhobs status: Present uuid: b4317bbb-7c2d-4663-a47f-df8459ad11a5 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusrules.monitoring.rhobs status: Present uuid: 7155f6cf-1c79-416e-8c3b-4f151e5024b0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: scrapeconfigs.monitoring.rhobs status: Present uuid: 3c0d5d32-16b5-49b2-b6ea-290b52c13784 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: servicemonitors.monitoring.rhobs status: Present uuid: 35381462-6751-4a3e-8efe-2348be176098 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosqueriers.monitoring.rhobs status: Present uuid: bd3cda66-d433-40ce-9892-bc4ac8eb9b7e version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosrulers.monitoring.rhobs status: Present uuid: 567d004f-dd11-4527-a2ee-c97b395d08cf version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: uiplugins.observability.openshift.io status: Present uuid: b14324f9-a93e-4a3c-975e-02bdf570d177 version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","alertmanagers/finalizers","alertmanagers/status","alertmanagerconfigs","prometheuses","prometheuses/finalizers","prometheuses/status","prometheusagents","prometheusagents/finalizers","prometheusagents/status","thanosrulers","thanosrulers/finalizers","thanosrulers/status","scrapeconfigs","scrapeconfigs/status","servicemonitors","servicemonitors/status","podmonitors","podmonitors/status","probes","probes/status","prometheusrules"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["apps"],"resources":["statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":[""],"resources":["configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","delete"],"apiGroups":[""],"resources":["pods"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["services","services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","watch"],"apiGroups":[""],"resources":["nodes"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["namespaces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","create"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["endpoints"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator-admission-webhook status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["configmaps","secrets","serviceaccounts","services"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["endpoints","events","namespaces","nodes","persistentvolumeclaims","persistentvolumes","pods","replicationcontrollers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","update"],"apiGroups":[""],"resources":["services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["apps"],"resources":["daemonsets","replicasets","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authentication.k8s.io"],"resources":["tokenreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authorization.k8s.io"],"resources":["subjectaccessreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["autoscaling"],"resources":["horizontalpodautoscalers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["batch"],"resources":["cronjobs","jobs"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["config.openshift.io"],"resources":["clusterversions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["console.openshift.io"],"resources":["consoleplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["extensions","networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["loki.grafana.com"],"resources":["application","audit","infrastructure","network"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["loki.grafana.com"],"resources":["lokistacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["monitoring.coreos.com"],"resources":["alertmanagers/api"],"resourceNames":["main"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","update"],"apiGroups":["monitoring.coreos.com"],"resources":["prometheuses/api"],"resourceNames":["k8s"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["monitoring.coreos.com"],"resources":["servicemonitors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","list","patch","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","prometheuses","servicemonitors","thanosqueriers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","list","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks/finalizers","monitoringstacks/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses","networkpolicies"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers","uiplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["delete","get","patch","update"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers/finalizers","observabilityinstallers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["observability.openshift.io"],"resources":["uiplugins/finalizers","uiplugins/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","patch","watch"],"apiGroups":["operator.openshift.io"],"resources":["consoles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["operators.coreos.com"],"resources":["clusterserviceversions","subscriptions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses","persesdashboards","persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers","persesdashboards/finalizers","persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status","persesdashboards/status","persesdatasources/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["policy"],"resources":["poddisruptionbudgets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["clusterrolebindings","clusterroles","rolebindings","roles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot","nonroot-v2"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses","volumeattachments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["tempo.grafana.com"],"resources":["application"],"resourceNames":["traces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list"],"apiGroups":["tempo.grafana.com"],"resources":["tempomonolithics"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: observability-operator-sa status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","patch"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update","create","delete","list","watch"],"apiGroups":[""],"resources":["services","configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdashboards"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: perses-operator status: Present version: v1 apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: alm-examples: |- [ { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "MonitoringStack", "metadata": { "labels": { "mso": "example" }, "name": "sample-monitoring-stack" }, "spec": { "logLevel": "debug", "resourceSelector": { "matchLabels": { "app": "demo" } }, "retention": "1d" } }, { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "ThanosQuerier", "metadata": { "name": "example-thanos" }, "spec": { "selector": { "matchLabels": { "mso": "example" } } } } ] capabilities: Basic Install categories: Monitoring certified: "false" containerImage: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb createdAt: "2025-11-03T09:23:49Z" description: A Go based Kubernetes operator to setup and manage highly available Monitoring Stack using Prometheus, Alertmanager and Thanos Querier. features.operators.openshift.io/cnf: "false" features.operators.openshift.io/cni: "false" features.operators.openshift.io/csi: "false" features.operators.openshift.io/disconnected: "true" features.operators.openshift.io/fips-compliant: "false" features.operators.openshift.io/proxy-aware: "false" features.operators.openshift.io/tls-profiles: "false" features.operators.openshift.io/token-auth-aws: "false" features.operators.openshift.io/token-auth-azure: "false" features.operators.openshift.io/token-auth-gcp: "false" olm.operatorGroup: global-operators olm.operatorNamespace: openshift-operators olm.skipRange: '>=..0 <1.3.0' operatorframework.io/cluster-monitoring: "true" operatorframework.io/properties: '{"properties":[{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Alertmanager","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"AlertmanagerConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"MonitoringStack","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PodMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Probe","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Prometheus","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusAgent","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusRule","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ScrapeConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ServiceMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosQuerier","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosRuler","version":"v1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"ObservabilityInstaller","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"UIPlugin","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"Perses","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDashboard","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDatasource","version":"v1alpha1"}},{"type":"olm.package","value":{"packageName":"cluster-observability-operator","version":"1.3.0"}}]}' operatorframework.io/suggested-namespace: openshift-cluster-observability-operator operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", "OpenShift Container Platform", "OpenShift Platform Plus"]' operators.operatorframework.io/builder: operator-sdk-v1.41.1 operators.operatorframework.io/internal-objects: |- [ "prometheuses.monitoring.rhobs", "alertmanagers.monitoring.rhobs", "thanosrulers.monitoring.rhobs", "prometheusagents.monitoring.rhobs", "perses.perses.dev" ] operators.operatorframework.io/project_layout: unknown repository: https://github.com/rhobs/observability-operator support: Cluster Observability (https://issues.redhat.com/projects/COO/) creationTimestamp: "2025-12-04T00:56:41Z" generation: 1 labels: olm.copiedFrom: openshift-operators olm.managed: "true" operatorframework.io/arch.amd64: supported operatorframework.io/arch.arm64: supported operatorframework.io/arch.ppc64le: supported operatorframework.io/arch.s390x: supported name: cluster-observability-operator.v1.3.0 namespace: cert-manager resourceVersion: "22874" uid: 3c3041f9-95c3-435a-ac0c-870a88c9ee96 spec: apiservicedefinitions: {} cleanup: enabled: false customresourcedefinitions: owned: - description: AlertmanagerConfig configures the Prometheus Alertmanager, specifying how alerts should be grouped, inhibited and notified to external systems displayName: AlertmanagerConfig kind: AlertmanagerConfig name: alertmanagerconfigs.monitoring.rhobs version: v1alpha1 - description: Alertmanager describes an Alertmanager cluster displayName: Alertmanager kind: Alertmanager name: alertmanagers.monitoring.rhobs version: v1 - description: MonitoringStack is the Schema for the monitoringstacks API displayName: MonitoringStack kind: MonitoringStack name: monitoringstacks.monitoring.rhobs version: v1alpha1 - kind: ObservabilityInstaller name: observabilityinstallers.observability.openshift.io version: v1alpha1 - description: Perses is the Schema for the perses API displayName: Perses kind: Perses name: perses.perses.dev version: v1alpha1 - description: A Perses Dashboard displayName: Perses Dashboard kind: PersesDashboard name: persesdashboards.perses.dev version: v1alpha1 - description: A Perses Datasource displayName: Perses Datasource kind: PersesDatasource name: persesdatasources.perses.dev version: v1alpha1 - description: PodMonitor defines monitoring for a set of pods displayName: PodMonitor kind: PodMonitor name: podmonitors.monitoring.rhobs version: v1 - description: Probe defines monitoring for a set of static targets or ingresses displayName: Probe kind: Probe name: probes.monitoring.rhobs version: v1 - description: PrometheusAgent defines a Prometheus agent deployment displayName: PrometheusAgent kind: PrometheusAgent name: prometheusagents.monitoring.rhobs version: v1alpha1 - description: Prometheus defines a Prometheus deployment displayName: Prometheus kind: Prometheus name: prometheuses.monitoring.rhobs version: v1 - description: PrometheusRule defines recording and alerting rules for a Prometheus instance displayName: PrometheusRule kind: PrometheusRule name: prometheusrules.monitoring.rhobs version: v1 - description: ScrapeConfig defines a namespaced Prometheus scrape_config to be aggregated across multiple namespaces into the Prometheus configuration displayName: ScrapeConfig kind: ScrapeConfig name: scrapeconfigs.monitoring.rhobs version: v1alpha1 - description: ServiceMonitor defines monitoring for a set of services displayName: ServiceMonitor kind: ServiceMonitor name: servicemonitors.monitoring.rhobs version: v1 - description: ThanosQuerier outlines the Thanos querier components, managed by this stack displayName: ThanosQuerier kind: ThanosQuerier name: thanosqueriers.monitoring.rhobs version: v1alpha1 - description: ThanosRuler defines a ThanosRuler deployment displayName: ThanosRuler kind: ThanosRuler name: thanosrulers.monitoring.rhobs version: v1 - description: UIPlugin defines a console plugin for observability displayName: UIPlugin kind: UIPlugin name: uiplugins.observability.openshift.io version: v1alpha1 description: |- Cluster Observability Operator is a Go based Kubernetes operator to easily setup and manage various observability tools. ### Supported Features - Setup multiple Highly Available Monitoring stack using Prometheus, Alertmanager and Thanos Querier - Customizable configuration for managing Prometheus deployments - Customizable configuration for managing Alertmanager deployments - Customizable configuration for managing Thanos Querier deployments - Setup console plugins - Setup korrel8r - Setup Perses - Setup Cluster Health Analyzer ### Documentation - **[Documentation](https://docs.redhat.com/en/documentation/openshift_container_platform/latest/html/cluster_observability_operator/index)** ### License Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) displayName: Cluster Observability Operator icon: - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0idXVpZC1kMWI4NDIzOC0wYzgxLTQ5MjctOGQ4Mi03OTcyN2Y5OGZjYWMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM4IDM4Ij4KPHRpdGxlPkNsdXN0ZXIgb2JzZXJ2YWJpbGl0eTwvdGl0bGU+CjxkZXNjPmNsb3VkPC9kZXNjPgo8bWV0YWRhdGE+PD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOC4wLWMwMDEgMS4wMDAwMDAsIDAwMDAvMDAvMDAtMDA6MDA6MDAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8IS0tIG1ldGFkYXRhIGZpZWxkcyAtLT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InciPz48L21ldGFkYXRhPgo8ZGVmcz48c3R5bGU+LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhe2ZpbGw6I2UwZTBlMDt9LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhLC51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCwudXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgsLnV1aWQtNGJlZjgyMGItNTZjOS00N2U3LTgyYTMtMmRiOGQ4YzdiMTEye3N0cm9rZS13aWR0aDowcHg7fS51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMHtmaWxsOiMwMDA7fS51dWlkLWYwMzIxNzhlLWJkNTAtNGRlNy1iNzczLTY2NWJmZDVjNWJiOHtmaWxsOiNlMDA7fS51dWlkLTRiZWY4MjBiLTU2YzktNDdlNy04MmEzLTJkYjhkOGM3YjExMntmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPgo8cmVjdCBjbGFzcz0idXVpZC00YmVmODIwYi01NmM5LTQ3ZTctODJhMy0yZGI4ZDhjN2IxMTIiIHg9IjEiIHk9IjEiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjkiIHJ5PSI5Ii8+CjxwYXRoIGNsYXNzPSJ1dWlkLTI0YjBkOTdiLTY4MWUtNGRhNi1hMWM3LTc2NzFhZTU3NTMyYSIgZD0iTTI4LDIuMjVjNC4yNzM0LDAsNy43NSwzLjQ3NjYsNy43NSw3Ljc1djE4YzAsNC4yNzM0LTMuNDc2Niw3Ljc1LTcuNzUsNy43NUgxMGMtNC4yNzM0LDAtNy43NS0zLjQ3NjYtNy43NS03Ljc1VjEwYzAtNC4yNzM0LDMuNDc2Ni03Ljc1LDcuNzUtNy43NWgxOE0yOCwxSDEwQzUuMDI5NCwxLDEsNS4wMjk0LDEsMTB2MThjMCw0Ljk3MDYsNC4wMjk0LDksOSw5aDE4YzQuOTcwNiwwLDktNC4wMjk0LDktOVYxMGMwLTQuOTcwNi00LjAyOTQtOS05LTloMFoiLz4KPHBhdGggY2xhc3M9InV1aWQtZjAzMjE3OGUtYmQ1MC00ZGU3LWI3NzMtNjY1YmZkNWM1YmI4IiBkPSJNMjEuMzc1LDE5YzAsLjM0NTIuMjgwMy42MjUuNjI1LjYyNXMuNjI1LS4yNzk4LjYyNS0uNjI1YzAtMS45OTktMS42MjYtMy42MjUtMy42MjUtMy42MjUtLjM0NDcsMC0uNjI1LjI3OTgtLjYyNS42MjVzLjI4MDMuNjI1LjYyNS42MjVjMS4zMDk2LDAsMi4zNzUsMS4wNjU0LDIuMzc1LDIuMzc1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgiIGQ9Ik0xOSwxMy4zNzVjLS43ODIyLDAtMS41MzkxLjE1NzctMi4yNS40NjgzLS4zMTY0LjEzODItLjQ2MDkuNTA2OC0uMzIyMy44MjMyLjEzNzcuMzE2NC41MDc4LjQ1ODUuODIyMy4zMjIzLjU1MjctLjI0MTIsMS4xNDE2LS4zNjM4LDEuNzUtLjM2MzgsMi40MTIxLDAsNC4zNzUsMS45NjI0LDQuMzc1LDQuMzc1cy0xLjk2MjksNC4zNzUtNC4zNzUsNC4zNzUtNC4zNzUtMS45NjI0LTQuMzc1LTQuMzc1YzAtLjYwODkuMTIyMS0xLjE5NzMuMzYzMy0xLjc0OTUuMTM4Ny0uMzE2NC0uMDA1OS0uNjg1MS0uMzIyMy0uODIzMi0uMzE0NS0uMTM5Mi0uNjgzNi4wMDU0LS44MjIzLjMyMjMtLjMxMTUuNzExNC0uNDY4OCwxLjQ2ODMtLjQ2ODgsMi4yNTA1LDAsMy4xMDE2LDIuNTIzNCw1LjYyNSw1LjYyNSw1LjYyNXM1LjYyNS0yLjUyMzQsNS42MjUtNS42MjUtMi41MjM0LTUuNjI1LTUuNjI1LTUuNjI1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC05N2MxZWM4NC05YjgxLTQ1NmUtOTlhYS03MTM3NTBlYjY5ZTAiIGQ9Ik0zMC40NjY4LDE4LjczODhjLTIuMDU2Ni00LjQ3MzEtNi41NTc2LTcuMzYzOC0xMS40NjY4LTcuMzYzOHMtOS40MTAyLDIuODkwNi0xMS40NjY4LDcuMzYzOGMtLjA3NTIuMTY2LS4wNzUyLjM1NjQsMCwuNTIyNSwyLjA1NjYsNC40NzMxLDYuNTU3Niw3LjM2MzgsMTEuNDY2OCw3LjM2MzhzOS40MTAyLTIuODkwNiwxMS40NjY4LTcuMzYzOGMuMDc1Mi0uMTY2LjA3NTItLjM1NjQsMC0uNTIyNVpNMTksMjUuMzc1Yy00LjMyNjIsMC04LjMwMDgtMi40OTI3LTEwLjIwNjEtNi4zNzUsMS45MDUzLTMuODgyMyw1Ljg3OTktNi4zNzUsMTAuMjA2MS02LjM3NXM4LjMwMDgsMi40OTI3LDEwLjIwNjEsNi4zNzVjLTEuOTA1MywzLjg4MjMtNS44Nzk5LDYuMzc1LTEwLjIwNjEsNi4zNzVaIi8+CjxwYXRoIGNsYXNzPSJ1dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCIgZD0iTTE1LjQ0MjQsMTQuNTU4MWMtLjI0NDEtLjI0NDEtLjY0MDYtLjI0NDEtLjg4NDgsMC0uMjQzMi4yNDQxLS4yNDMyLjYzOTYsMCwuODgzOGw0LDRjLjEyMjEuMTIyMS4yODIyLjE4MzEuNDQyNC4xODMxcy4zMjAzLS4wNjEuNDQyNC0uMTgzMWMuMjQzMi0uMjQ0MS4yNDMyLS42Mzk2LDAtLjg4MzhsLTQtNFoiLz4KPC9zdmc+Cg== mediatype: image/svg+xml install: spec: clusterPermissions: - rules: - apiGroups: - monitoring.rhobs resources: - alertmanagers - alertmanagers/finalizers - alertmanagers/status - alertmanagerconfigs - prometheuses - prometheuses/finalizers - prometheuses/status - prometheusagents - prometheusagents/finalizers - prometheusagents/status - thanosrulers - thanosrulers/finalizers - thanosrulers/status - scrapeconfigs - scrapeconfigs/status - servicemonitors - servicemonitors/status - podmonitors - podmonitors/status - probes - probes/status - prometheusrules verbs: - '*' - apiGroups: - apps resources: - statefulsets verbs: - '*' - apiGroups: - "" resources: - configmaps - secrets verbs: - '*' - apiGroups: - "" resources: - pods verbs: - list - delete - apiGroups: - "" resources: - services - services/finalizers verbs: - get - create - update - delete - apiGroups: - "" resources: - nodes verbs: - list - watch - apiGroups: - "" resources: - namespaces verbs: - get - list - watch - apiGroups: - "" resources: - events verbs: - patch - create - apiGroups: - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - storage.k8s.io resources: - storageclasses verbs: - get - apiGroups: - "" resources: - endpoints verbs: - get - create - update - delete - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator - rules: - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator-admission-webhook - rules: - apiGroups: - "" resources: - configmaps - secrets - serviceaccounts - services verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - endpoints - events - namespaces - nodes - persistentvolumeclaims - persistentvolumes - pods - replicationcontrollers verbs: - get - list - watch - apiGroups: - "" resources: - services/finalizers verbs: - patch - update - apiGroups: - apps resources: - daemonsets - replicasets - statefulsets verbs: - get - list - watch - apiGroups: - apps resources: - deployments verbs: - create - delete - get - list - patch - update - watch - apiGroups: - authentication.k8s.io resources: - tokenreviews verbs: - create - apiGroups: - authorization.k8s.io resources: - subjectaccessreviews verbs: - create - apiGroups: - autoscaling resources: - horizontalpodautoscalers verbs: - get - list - watch - apiGroups: - batch resources: - cronjobs - jobs verbs: - get - list - watch - apiGroups: - config.openshift.io resources: - clusterversions verbs: - get - list - watch - apiGroups: - console.openshift.io resources: - consoleplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - extensions - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - loki.grafana.com resources: - application - audit - infrastructure - network verbs: - get - apiGroups: - loki.grafana.com resources: - lokistacks verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - main resources: - alertmanagers/api verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - k8s resources: - prometheuses/api verbs: - create - get - update - apiGroups: - monitoring.coreos.com resources: - servicemonitors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - alertmanagers - prometheuses - servicemonitors - thanosqueriers verbs: - create - delete - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks verbs: - create - get - list - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks/finalizers - monitoringstacks/status verbs: - get - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/finalizers verbs: - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/status verbs: - get - patch - update - apiGroups: - networking.k8s.io resources: - ingresses - networkpolicies verbs: - get - list - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers - uiplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers/finalizers - observabilityinstallers/status verbs: - delete - get - patch - update - apiGroups: - observability.openshift.io resources: - uiplugins/finalizers - uiplugins/status verbs: - get - update - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors/status verbs: - get - list - watch - apiGroups: - operator.openshift.io resources: - consoles verbs: - get - list - patch - watch - apiGroups: - operators.coreos.com resources: - clusterserviceversions - subscriptions verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses - persesdashboards - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers - persesdashboards/finalizers - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status - persesdashboards/status - persesdatasources/status verbs: - get - patch - update - apiGroups: - policy resources: - poddisruptionbudgets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - rbac.authorization.k8s.io resources: - clusterrolebindings - clusterroles - rolebindings - roles verbs: - create - delete - get - list - patch - update - watch - apiGroups: - security.openshift.io resourceNames: - nonroot - nonroot-v2 resources: - securitycontextconstraints verbs: - use - apiGroups: - storage.k8s.io resources: - storageclasses - volumeattachments verbs: - get - list - watch - apiGroups: - tempo.grafana.com resourceNames: - traces resources: - application verbs: - create - apiGroups: - tempo.grafana.com resources: - tempomonolithics verbs: - list - apiGroups: - tempo.grafana.com resources: - tempostacks verbs: - create - delete - get - list - patch - update - watch - apiGroups: - tempo.grafana.com resources: - tempostacks/status verbs: - get - list - watch serviceAccountName: observability-operator-sa - rules: - apiGroups: - apps resources: - deployments - statefulsets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - events verbs: - create - patch - apiGroups: - "" resources: - services - configmaps - secrets verbs: - get - patch - update - create - delete - list - watch - apiGroups: - perses.dev resources: - perses verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdashboards verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdashboards/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdashboards/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdatasources/status verbs: - get - patch - update serviceAccountName: perses-operator deployments: - label: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 automountServiceAccountToken: true containers: - args: - --prometheus-config-reloader=$(RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER) - --prometheus-instance-selector=app.kubernetes.io/managed-by=observability-operator - --alertmanager-instance-selector=app.kubernetes.io/managed-by=observability-operator - --thanos-ruler-instance-selector=app.kubernetes.io/managed-by=observability-operator env: - name: GOGC value: "30" - name: RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER value: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator ports: - containerPort: 8080 name: http protocol: TCP resources: limits: cpu: 100m memory: 500Mi requests: cpu: 5m memory: 150Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator-admission-webhook spec: replicas: 2 selector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator strategy: rollingUpdate: maxUnavailable: 1 template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator-admission-webhook creationTimestamp: null labels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator namespaces: - default topologyKey: kubernetes.io/hostname automountServiceAccountToken: false containers: - args: - --web.enable-tls=true - --web.cert-file=/tmp/k8s-webhook-server/serving-certs/tls.crt - --web.key-file=/tmp/k8s-webhook-server/serving-certs/tls.key image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook ports: - containerPort: 8443 name: https protocol: TCP resources: limits: cpu: 200m memory: 200Mi requests: cpu: 50m memory: 50Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator-admission-webhook tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 name: observability-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator strategy: {} template: metadata: creationTimestamp: null labels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - args: - --namespace=$(NAMESPACE) - --images=perses=$(RELATED_IMAGE_PERSES) - --images=alertmanager=$(RELATED_IMAGE_ALERTMANAGER) - --images=prometheus=$(RELATED_IMAGE_PROMETHEUS) - --images=thanos=$(RELATED_IMAGE_THANOS) - --images=ui-dashboards=$(RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN) - --images=ui-distributed-tracing=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN) - --images=ui-distributed-tracing-pf5=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5) - --images=ui-distributed-tracing-pf4=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4) - --images=ui-logging=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN) - --images=ui-logging-pf4=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4) - --images=ui-troubleshooting-panel=$(RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN) - --images=ui-monitoring=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN) - --images=ui-monitoring-pf5=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5) - --images=korrel8r=$(RELATED_IMAGE_KORREL8R) - --images=health-analyzer=$(RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER) - --openshift.enabled=true env: - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: RELATED_IMAGE_ALERTMANAGER value: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 - name: RELATED_IMAGE_PROMETHEUS value: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b - name: RELATED_IMAGE_THANOS value: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 - name: RELATED_IMAGE_PERSES value: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade - name: RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN value: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 - name: RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN value: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c - name: RELATED_IMAGE_KORREL8R value: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 - name: RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER value: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb imagePullPolicy: Always livenessProbe: httpGet: path: /healthz port: 8081 name: operator readinessProbe: httpGet: path: /healthz port: 8081 resources: limits: cpu: 400m memory: 512Mi requests: cpu: 100m memory: 256Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /etc/tls/private name: observability-operator-tls readOnly: true securityContext: runAsNonRoot: true serviceAccountName: observability-operator-sa terminationGracePeriodSeconds: 30 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - name: observability-operator-tls secret: optional: true secretName: observability-operator-tls - label: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator name: perses-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: perses-operator creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 15 periodSeconds: 20 name: perses-operator readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 resources: limits: cpu: 500m memory: 512Mi requests: cpu: 100m memory: 128Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /ca name: openshift-service-ca readOnly: true serviceAccountName: perses-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt optional: true name: openshift-service-ca strategy: deployment installModes: - supported: false type: OwnNamespace - supported: false type: SingleNamespace - supported: false type: MultiNamespace - supported: true type: AllNamespaces keywords: - observability - monitoring - prometheus - thanos links: - name: GitHub url: https://github.com/rhobs/observability-operator maintainers: - email: jfajersk@redhat.com name: Jan Fajerski - email: spasquie@redhat.com name: Simon Pasquier maturity: alpha provider: name: Red Hat relatedImages: - image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb name: cluster-observability-operator - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 name: prometheus-config-reloader - image: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 name: alertmanager - image: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b name: prometheus - image: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 name: thanos - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator - image: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb name: ui-dashboards - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f name: ui-tracing - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 name: ui-tracing-pf5 - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 name: ui-tracing-pf4 - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b name: ui-logging - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 name: ui-logging-pf4 - image: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 name: ui-troubleshooting - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 name: ui-monitoring - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c name: ui-monitoring-pf5 - image: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 name: korrel8r - image: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 name: cluster-health-analyzer - image: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade name: perses - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 name: perses-operator replaces: cluster-observability-operator.v1.2.2 version: 1.3.0 webhookdefinitions: - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: alertmanagerconfigs.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - alertmanagerconfigs scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-alertmanagerconfigs/validate - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: prometheusrules.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - prometheusrules scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-prometheusrules/validate status: certsLastUpdated: "2025-12-04T00:56:42Z" certsRotateAt: "2027-12-03T00:56:41Z" cleanup: {} conditions: - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: requirements not yet checked phase: Pending reason: RequirementsUnknown - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: one or more requirements couldn't be found phase: Pending reason: RequirementsNotMet - lastTransitionTime: "2025-12-04T00:56:39Z" lastUpdateTime: "2025-12-04T00:56:39Z" message: all requirements found, attempting install phase: InstallReady reason: AllRequirementsMet - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:41Z" message: waiting for install components to report healthy phase: Installing reason: InstallSucceeded - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:43Z" message: 'installing: waiting for deployment obo-prometheus-operator to become ready: deployment "obo-prometheus-operator" not available: Deployment does not have minimum availability.' phase: Installing reason: InstallWaiting - lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: install strategy completed with no errors phase: Succeeded reason: InstallSucceeded lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: The operator is running in openshift-operators but is managing this namespace phase: Succeeded reason: Copied requirementStatus: - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagerconfigs.monitoring.rhobs status: Present uuid: fdb5fb0c-6e9f-4adf-9365-e3e7eb7c0067 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagers.monitoring.rhobs status: Present uuid: e7cc9eeb-3d09-427c-a19e-e9c6b7eb2898 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: monitoringstacks.monitoring.rhobs status: Present uuid: 9ccaadbf-0dca-48b2-a78f-500c1872cfff version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: observabilityinstallers.observability.openshift.io status: Present uuid: 77fac378-1af3-4ceb-ab13-4dcbdcd7273c version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: perses.perses.dev status: Present uuid: e03c0eb7-4876-4e69-897d-262406875f61 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdashboards.perses.dev status: Present uuid: e3e03868-fb11-4678-832d-b4347b218d2f version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdatasources.perses.dev status: Present uuid: 842a1904-aa52-4dfe-8f68-445677c5832d version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: podmonitors.monitoring.rhobs status: Present uuid: 7f0fbafb-4530-4794-ba46-036a95ce4ed1 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: probes.monitoring.rhobs status: Present uuid: 5e9f4268-128e-484a-81b8-826995506fc0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusagents.monitoring.rhobs status: Present uuid: 7e7569e0-7f4e-474f-b8a3-82aa6d1491af version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheuses.monitoring.rhobs status: Present uuid: b4317bbb-7c2d-4663-a47f-df8459ad11a5 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusrules.monitoring.rhobs status: Present uuid: 7155f6cf-1c79-416e-8c3b-4f151e5024b0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: scrapeconfigs.monitoring.rhobs status: Present uuid: 3c0d5d32-16b5-49b2-b6ea-290b52c13784 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: servicemonitors.monitoring.rhobs status: Present uuid: 35381462-6751-4a3e-8efe-2348be176098 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosqueriers.monitoring.rhobs status: Present uuid: bd3cda66-d433-40ce-9892-bc4ac8eb9b7e version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosrulers.monitoring.rhobs status: Present uuid: 567d004f-dd11-4527-a2ee-c97b395d08cf version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: uiplugins.observability.openshift.io status: Present uuid: b14324f9-a93e-4a3c-975e-02bdf570d177 version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","alertmanagers/finalizers","alertmanagers/status","alertmanagerconfigs","prometheuses","prometheuses/finalizers","prometheuses/status","prometheusagents","prometheusagents/finalizers","prometheusagents/status","thanosrulers","thanosrulers/finalizers","thanosrulers/status","scrapeconfigs","scrapeconfigs/status","servicemonitors","servicemonitors/status","podmonitors","podmonitors/status","probes","probes/status","prometheusrules"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["apps"],"resources":["statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":[""],"resources":["configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","delete"],"apiGroups":[""],"resources":["pods"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["services","services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","watch"],"apiGroups":[""],"resources":["nodes"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["namespaces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","create"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["endpoints"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator-admission-webhook status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["configmaps","secrets","serviceaccounts","services"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["endpoints","events","namespaces","nodes","persistentvolumeclaims","persistentvolumes","pods","replicationcontrollers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","update"],"apiGroups":[""],"resources":["services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["apps"],"resources":["daemonsets","replicasets","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authentication.k8s.io"],"resources":["tokenreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authorization.k8s.io"],"resources":["subjectaccessreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["autoscaling"],"resources":["horizontalpodautoscalers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["batch"],"resources":["cronjobs","jobs"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["config.openshift.io"],"resources":["clusterversions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["console.openshift.io"],"resources":["consoleplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["extensions","networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["loki.grafana.com"],"resources":["application","audit","infrastructure","network"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["loki.grafana.com"],"resources":["lokistacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["monitoring.coreos.com"],"resources":["alertmanagers/api"],"resourceNames":["main"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","update"],"apiGroups":["monitoring.coreos.com"],"resources":["prometheuses/api"],"resourceNames":["k8s"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["monitoring.coreos.com"],"resources":["servicemonitors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","list","patch","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","prometheuses","servicemonitors","thanosqueriers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","list","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks/finalizers","monitoringstacks/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses","networkpolicies"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers","uiplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["delete","get","patch","update"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers/finalizers","observabilityinstallers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["observability.openshift.io"],"resources":["uiplugins/finalizers","uiplugins/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","patch","watch"],"apiGroups":["operator.openshift.io"],"resources":["consoles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["operators.coreos.com"],"resources":["clusterserviceversions","subscriptions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses","persesdashboards","persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers","persesdashboards/finalizers","persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status","persesdashboards/status","persesdatasources/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["policy"],"resources":["poddisruptionbudgets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["clusterrolebindings","clusterroles","rolebindings","roles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot","nonroot-v2"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses","volumeattachments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["tempo.grafana.com"],"resources":["application"],"resourceNames":["traces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list"],"apiGroups":["tempo.grafana.com"],"resources":["tempomonolithics"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: observability-operator-sa status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","patch"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update","create","delete","list","watch"],"apiGroups":[""],"resources":["services","configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdashboards"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: perses-operator status: Present version: v1 apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: alm-examples: |- [ { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "MonitoringStack", "metadata": { "labels": { "mso": "example" }, "name": "sample-monitoring-stack" }, "spec": { "logLevel": "debug", "resourceSelector": { "matchLabels": { "app": "demo" } }, "retention": "1d" } }, { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "ThanosQuerier", "metadata": { "name": "example-thanos" }, "spec": { "selector": { "matchLabels": { "mso": "example" } } } } ] capabilities: Basic Install categories: Monitoring certified: "false" containerImage: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb createdAt: "2025-11-03T09:23:49Z" description: A Go based Kubernetes operator to setup and manage highly available Monitoring Stack using Prometheus, Alertmanager and Thanos Querier. features.operators.openshift.io/cnf: "false" features.operators.openshift.io/cni: "false" features.operators.openshift.io/csi: "false" features.operators.openshift.io/disconnected: "true" features.operators.openshift.io/fips-compliant: "false" features.operators.openshift.io/proxy-aware: "false" features.operators.openshift.io/tls-profiles: "false" features.operators.openshift.io/token-auth-aws: "false" features.operators.openshift.io/token-auth-azure: "false" features.operators.openshift.io/token-auth-gcp: "false" olm.operatorGroup: global-operators olm.operatorNamespace: openshift-operators olm.skipRange: '>=..0 <1.3.0' operatorframework.io/cluster-monitoring: "true" operatorframework.io/properties: '{"properties":[{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Alertmanager","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"AlertmanagerConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"MonitoringStack","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PodMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Probe","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Prometheus","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusAgent","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusRule","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ScrapeConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ServiceMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosQuerier","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosRuler","version":"v1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"ObservabilityInstaller","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"UIPlugin","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"Perses","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDashboard","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDatasource","version":"v1alpha1"}},{"type":"olm.package","value":{"packageName":"cluster-observability-operator","version":"1.3.0"}}]}' operatorframework.io/suggested-namespace: openshift-cluster-observability-operator operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", "OpenShift Container Platform", "OpenShift Platform Plus"]' operators.operatorframework.io/builder: operator-sdk-v1.41.1 operators.operatorframework.io/internal-objects: |- [ "prometheuses.monitoring.rhobs", "alertmanagers.monitoring.rhobs", "thanosrulers.monitoring.rhobs", "prometheusagents.monitoring.rhobs", "perses.perses.dev" ] operators.operatorframework.io/project_layout: unknown repository: https://github.com/rhobs/observability-operator support: Cluster Observability (https://issues.redhat.com/projects/COO/) creationTimestamp: "2025-12-04T00:56:37Z" generation: 1 labels: olm.copiedFrom: openshift-operators olm.managed: "true" operatorframework.io/arch.amd64: supported operatorframework.io/arch.arm64: supported operatorframework.io/arch.ppc64le: supported operatorframework.io/arch.s390x: supported name: cluster-observability-operator.v1.3.0 namespace: openshift-nmstate resourceVersion: "22784" uid: e9583704-8dad-4834-b36b-2f20d808591f spec: apiservicedefinitions: {} cleanup: enabled: false customresourcedefinitions: owned: - description: AlertmanagerConfig configures the Prometheus Alertmanager, specifying how alerts should be grouped, inhibited and notified to external systems displayName: AlertmanagerConfig kind: AlertmanagerConfig name: alertmanagerconfigs.monitoring.rhobs version: v1alpha1 - description: Alertmanager describes an Alertmanager cluster displayName: Alertmanager kind: Alertmanager name: alertmanagers.monitoring.rhobs version: v1 - description: MonitoringStack is the Schema for the monitoringstacks API displayName: MonitoringStack kind: MonitoringStack name: monitoringstacks.monitoring.rhobs version: v1alpha1 - kind: ObservabilityInstaller name: observabilityinstallers.observability.openshift.io version: v1alpha1 - description: Perses is the Schema for the perses API displayName: Perses kind: Perses name: perses.perses.dev version: v1alpha1 - description: A Perses Dashboard displayName: Perses Dashboard kind: PersesDashboard name: persesdashboards.perses.dev version: v1alpha1 - description: A Perses Datasource displayName: Perses Datasource kind: PersesDatasource name: persesdatasources.perses.dev version: v1alpha1 - description: PodMonitor defines monitoring for a set of pods displayName: PodMonitor kind: PodMonitor name: podmonitors.monitoring.rhobs version: v1 - description: Probe defines monitoring for a set of static targets or ingresses displayName: Probe kind: Probe name: probes.monitoring.rhobs version: v1 - description: PrometheusAgent defines a Prometheus agent deployment displayName: PrometheusAgent kind: PrometheusAgent name: prometheusagents.monitoring.rhobs version: v1alpha1 - description: Prometheus defines a Prometheus deployment displayName: Prometheus kind: Prometheus name: prometheuses.monitoring.rhobs version: v1 - description: PrometheusRule defines recording and alerting rules for a Prometheus instance displayName: PrometheusRule kind: PrometheusRule name: prometheusrules.monitoring.rhobs version: v1 - description: ScrapeConfig defines a namespaced Prometheus scrape_config to be aggregated across multiple namespaces into the Prometheus configuration displayName: ScrapeConfig kind: ScrapeConfig name: scrapeconfigs.monitoring.rhobs version: v1alpha1 - description: ServiceMonitor defines monitoring for a set of services displayName: ServiceMonitor kind: ServiceMonitor name: servicemonitors.monitoring.rhobs version: v1 - description: ThanosQuerier outlines the Thanos querier components, managed by this stack displayName: ThanosQuerier kind: ThanosQuerier name: thanosqueriers.monitoring.rhobs version: v1alpha1 - description: ThanosRuler defines a ThanosRuler deployment displayName: ThanosRuler kind: ThanosRuler name: thanosrulers.monitoring.rhobs version: v1 - description: UIPlugin defines a console plugin for observability displayName: UIPlugin kind: UIPlugin name: uiplugins.observability.openshift.io version: v1alpha1 description: |- Cluster Observability Operator is a Go based Kubernetes operator to easily setup and manage various observability tools. ### Supported Features - Setup multiple Highly Available Monitoring stack using Prometheus, Alertmanager and Thanos Querier - Customizable configuration for managing Prometheus deployments - Customizable configuration for managing Alertmanager deployments - Customizable configuration for managing Thanos Querier deployments - Setup console plugins - Setup korrel8r - Setup Perses - Setup Cluster Health Analyzer ### Documentation - **[Documentation](https://docs.redhat.com/en/documentation/openshift_container_platform/latest/html/cluster_observability_operator/index)** ### License Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) displayName: Cluster Observability Operator icon: - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0idXVpZC1kMWI4NDIzOC0wYzgxLTQ5MjctOGQ4Mi03OTcyN2Y5OGZjYWMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM4IDM4Ij4KPHRpdGxlPkNsdXN0ZXIgb2JzZXJ2YWJpbGl0eTwvdGl0bGU+CjxkZXNjPmNsb3VkPC9kZXNjPgo8bWV0YWRhdGE+PD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOC4wLWMwMDEgMS4wMDAwMDAsIDAwMDAvMDAvMDAtMDA6MDA6MDAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8IS0tIG1ldGFkYXRhIGZpZWxkcyAtLT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InciPz48L21ldGFkYXRhPgo8ZGVmcz48c3R5bGU+LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhe2ZpbGw6I2UwZTBlMDt9LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhLC51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCwudXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgsLnV1aWQtNGJlZjgyMGItNTZjOS00N2U3LTgyYTMtMmRiOGQ4YzdiMTEye3N0cm9rZS13aWR0aDowcHg7fS51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMHtmaWxsOiMwMDA7fS51dWlkLWYwMzIxNzhlLWJkNTAtNGRlNy1iNzczLTY2NWJmZDVjNWJiOHtmaWxsOiNlMDA7fS51dWlkLTRiZWY4MjBiLTU2YzktNDdlNy04MmEzLTJkYjhkOGM3YjExMntmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPgo8cmVjdCBjbGFzcz0idXVpZC00YmVmODIwYi01NmM5LTQ3ZTctODJhMy0yZGI4ZDhjN2IxMTIiIHg9IjEiIHk9IjEiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjkiIHJ5PSI5Ii8+CjxwYXRoIGNsYXNzPSJ1dWlkLTI0YjBkOTdiLTY4MWUtNGRhNi1hMWM3LTc2NzFhZTU3NTMyYSIgZD0iTTI4LDIuMjVjNC4yNzM0LDAsNy43NSwzLjQ3NjYsNy43NSw3Ljc1djE4YzAsNC4yNzM0LTMuNDc2Niw3Ljc1LTcuNzUsNy43NUgxMGMtNC4yNzM0LDAtNy43NS0zLjQ3NjYtNy43NS03Ljc1VjEwYzAtNC4yNzM0LDMuNDc2Ni03Ljc1LDcuNzUtNy43NWgxOE0yOCwxSDEwQzUuMDI5NCwxLDEsNS4wMjk0LDEsMTB2MThjMCw0Ljk3MDYsNC4wMjk0LDksOSw5aDE4YzQuOTcwNiwwLDktNC4wMjk0LDktOVYxMGMwLTQuOTcwNi00LjAyOTQtOS05LTloMFoiLz4KPHBhdGggY2xhc3M9InV1aWQtZjAzMjE3OGUtYmQ1MC00ZGU3LWI3NzMtNjY1YmZkNWM1YmI4IiBkPSJNMjEuMzc1LDE5YzAsLjM0NTIuMjgwMy42MjUuNjI1LjYyNXMuNjI1LS4yNzk4LjYyNS0uNjI1YzAtMS45OTktMS42MjYtMy42MjUtMy42MjUtMy42MjUtLjM0NDcsMC0uNjI1LjI3OTgtLjYyNS42MjVzLjI4MDMuNjI1LjYyNS42MjVjMS4zMDk2LDAsMi4zNzUsMS4wNjU0LDIuMzc1LDIuMzc1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgiIGQ9Ik0xOSwxMy4zNzVjLS43ODIyLDAtMS41MzkxLjE1NzctMi4yNS40NjgzLS4zMTY0LjEzODItLjQ2MDkuNTA2OC0uMzIyMy44MjMyLjEzNzcuMzE2NC41MDc4LjQ1ODUuODIyMy4zMjIzLjU1MjctLjI0MTIsMS4xNDE2LS4zNjM4LDEuNzUtLjM2MzgsMi40MTIxLDAsNC4zNzUsMS45NjI0LDQuMzc1LDQuMzc1cy0xLjk2MjksNC4zNzUtNC4zNzUsNC4zNzUtNC4zNzUtMS45NjI0LTQuMzc1LTQuMzc1YzAtLjYwODkuMTIyMS0xLjE5NzMuMzYzMy0xLjc0OTUuMTM4Ny0uMzE2NC0uMDA1OS0uNjg1MS0uMzIyMy0uODIzMi0uMzE0NS0uMTM5Mi0uNjgzNi4wMDU0LS44MjIzLjMyMjMtLjMxMTUuNzExNC0uNDY4OCwxLjQ2ODMtLjQ2ODgsMi4yNTA1LDAsMy4xMDE2LDIuNTIzNCw1LjYyNSw1LjYyNSw1LjYyNXM1LjYyNS0yLjUyMzQsNS42MjUtNS42MjUtMi41MjM0LTUuNjI1LTUuNjI1LTUuNjI1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC05N2MxZWM4NC05YjgxLTQ1NmUtOTlhYS03MTM3NTBlYjY5ZTAiIGQ9Ik0zMC40NjY4LDE4LjczODhjLTIuMDU2Ni00LjQ3MzEtNi41NTc2LTcuMzYzOC0xMS40NjY4LTcuMzYzOHMtOS40MTAyLDIuODkwNi0xMS40NjY4LDcuMzYzOGMtLjA3NTIuMTY2LS4wNzUyLjM1NjQsMCwuNTIyNSwyLjA1NjYsNC40NzMxLDYuNTU3Niw3LjM2MzgsMTEuNDY2OCw3LjM2MzhzOS40MTAyLTIuODkwNiwxMS40NjY4LTcuMzYzOGMuMDc1Mi0uMTY2LjA3NTItLjM1NjQsMC0uNTIyNVpNMTksMjUuMzc1Yy00LjMyNjIsMC04LjMwMDgtMi40OTI3LTEwLjIwNjEtNi4zNzUsMS45MDUzLTMuODgyMyw1Ljg3OTktNi4zNzUsMTAuMjA2MS02LjM3NXM4LjMwMDgsMi40OTI3LDEwLjIwNjEsNi4zNzVjLTEuOTA1MywzLjg4MjMtNS44Nzk5LDYuMzc1LTEwLjIwNjEsNi4zNzVaIi8+CjxwYXRoIGNsYXNzPSJ1dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCIgZD0iTTE1LjQ0MjQsMTQuNTU4MWMtLjI0NDEtLjI0NDEtLjY0MDYtLjI0NDEtLjg4NDgsMC0uMjQzMi4yNDQxLS4yNDMyLjYzOTYsMCwuODgzOGw0LDRjLjEyMjEuMTIyMS4yODIyLjE4MzEuNDQyNC4xODMxcy4zMjAzLS4wNjEuNDQyNC0uMTgzMWMuMjQzMi0uMjQ0MS4yNDMyLS42Mzk2LDAtLjg4MzhsLTQtNFoiLz4KPC9zdmc+Cg== mediatype: image/svg+xml install: spec: clusterPermissions: - rules: - apiGroups: - monitoring.rhobs resources: - alertmanagers - alertmanagers/finalizers - alertmanagers/status - alertmanagerconfigs - prometheuses - prometheuses/finalizers - prometheuses/status - prometheusagents - prometheusagents/finalizers - prometheusagents/status - thanosrulers - thanosrulers/finalizers - thanosrulers/status - scrapeconfigs - scrapeconfigs/status - servicemonitors - servicemonitors/status - podmonitors - podmonitors/status - probes - probes/status - prometheusrules verbs: - '*' - apiGroups: - apps resources: - statefulsets verbs: - '*' - apiGroups: - "" resources: - configmaps - secrets verbs: - '*' - apiGroups: - "" resources: - pods verbs: - list - delete - apiGroups: - "" resources: - services - services/finalizers verbs: - get - create - update - delete - apiGroups: - "" resources: - nodes verbs: - list - watch - apiGroups: - "" resources: - namespaces verbs: - get - list - watch - apiGroups: - "" resources: - events verbs: - patch - create - apiGroups: - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - storage.k8s.io resources: - storageclasses verbs: - get - apiGroups: - "" resources: - endpoints verbs: - get - create - update - delete - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator - rules: - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator-admission-webhook - rules: - apiGroups: - "" resources: - configmaps - secrets - serviceaccounts - services verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - endpoints - events - namespaces - nodes - persistentvolumeclaims - persistentvolumes - pods - replicationcontrollers verbs: - get - list - watch - apiGroups: - "" resources: - services/finalizers verbs: - patch - update - apiGroups: - apps resources: - daemonsets - replicasets - statefulsets verbs: - get - list - watch - apiGroups: - apps resources: - deployments verbs: - create - delete - get - list - patch - update - watch - apiGroups: - authentication.k8s.io resources: - tokenreviews verbs: - create - apiGroups: - authorization.k8s.io resources: - subjectaccessreviews verbs: - create - apiGroups: - autoscaling resources: - horizontalpodautoscalers verbs: - get - list - watch - apiGroups: - batch resources: - cronjobs - jobs verbs: - get - list - watch - apiGroups: - config.openshift.io resources: - clusterversions verbs: - get - list - watch - apiGroups: - console.openshift.io resources: - consoleplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - extensions - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - loki.grafana.com resources: - application - audit - infrastructure - network verbs: - get - apiGroups: - loki.grafana.com resources: - lokistacks verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - main resources: - alertmanagers/api verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - k8s resources: - prometheuses/api verbs: - create - get - update - apiGroups: - monitoring.coreos.com resources: - servicemonitors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - alertmanagers - prometheuses - servicemonitors - thanosqueriers verbs: - create - delete - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks verbs: - create - get - list - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks/finalizers - monitoringstacks/status verbs: - get - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/finalizers verbs: - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/status verbs: - get - patch - update - apiGroups: - networking.k8s.io resources: - ingresses - networkpolicies verbs: - get - list - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers - uiplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers/finalizers - observabilityinstallers/status verbs: - delete - get - patch - update - apiGroups: - observability.openshift.io resources: - uiplugins/finalizers - uiplugins/status verbs: - get - update - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors/status verbs: - get - list - watch - apiGroups: - operator.openshift.io resources: - consoles verbs: - get - list - patch - watch - apiGroups: - operators.coreos.com resources: - clusterserviceversions - subscriptions verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses - persesdashboards - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers - persesdashboards/finalizers - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status - persesdashboards/status - persesdatasources/status verbs: - get - patch - update - apiGroups: - policy resources: - poddisruptionbudgets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - rbac.authorization.k8s.io resources: - clusterrolebindings - clusterroles - rolebindings - roles verbs: - create - delete - get - list - patch - update - watch - apiGroups: - security.openshift.io resourceNames: - nonroot - nonroot-v2 resources: - securitycontextconstraints verbs: - use - apiGroups: - storage.k8s.io resources: - storageclasses - volumeattachments verbs: - get - list - watch - apiGroups: - tempo.grafana.com resourceNames: - traces resources: - application verbs: - create - apiGroups: - tempo.grafana.com resources: - tempomonolithics verbs: - list - apiGroups: - tempo.grafana.com resources: - tempostacks verbs: - create - delete - get - list - patch - update - watch - apiGroups: - tempo.grafana.com resources: - tempostacks/status verbs: - get - list - watch serviceAccountName: observability-operator-sa - rules: - apiGroups: - apps resources: - deployments - statefulsets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - events verbs: - create - patch - apiGroups: - "" resources: - services - configmaps - secrets verbs: - get - patch - update - create - delete - list - watch - apiGroups: - perses.dev resources: - perses verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdashboards verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdashboards/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdashboards/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdatasources/status verbs: - get - patch - update serviceAccountName: perses-operator deployments: - label: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 automountServiceAccountToken: true containers: - args: - --prometheus-config-reloader=$(RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER) - --prometheus-instance-selector=app.kubernetes.io/managed-by=observability-operator - --alertmanager-instance-selector=app.kubernetes.io/managed-by=observability-operator - --thanos-ruler-instance-selector=app.kubernetes.io/managed-by=observability-operator env: - name: GOGC value: "30" - name: RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER value: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator ports: - containerPort: 8080 name: http protocol: TCP resources: limits: cpu: 100m memory: 500Mi requests: cpu: 5m memory: 150Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator-admission-webhook spec: replicas: 2 selector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator strategy: rollingUpdate: maxUnavailable: 1 template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator-admission-webhook creationTimestamp: null labels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator namespaces: - default topologyKey: kubernetes.io/hostname automountServiceAccountToken: false containers: - args: - --web.enable-tls=true - --web.cert-file=/tmp/k8s-webhook-server/serving-certs/tls.crt - --web.key-file=/tmp/k8s-webhook-server/serving-certs/tls.key image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook ports: - containerPort: 8443 name: https protocol: TCP resources: limits: cpu: 200m memory: 200Mi requests: cpu: 50m memory: 50Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator-admission-webhook tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 name: observability-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator strategy: {} template: metadata: creationTimestamp: null labels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - args: - --namespace=$(NAMESPACE) - --images=perses=$(RELATED_IMAGE_PERSES) - --images=alertmanager=$(RELATED_IMAGE_ALERTMANAGER) - --images=prometheus=$(RELATED_IMAGE_PROMETHEUS) - --images=thanos=$(RELATED_IMAGE_THANOS) - --images=ui-dashboards=$(RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN) - --images=ui-distributed-tracing=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN) - --images=ui-distributed-tracing-pf5=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5) - --images=ui-distributed-tracing-pf4=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4) - --images=ui-logging=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN) - --images=ui-logging-pf4=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4) - --images=ui-troubleshooting-panel=$(RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN) - --images=ui-monitoring=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN) - --images=ui-monitoring-pf5=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5) - --images=korrel8r=$(RELATED_IMAGE_KORREL8R) - --images=health-analyzer=$(RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER) - --openshift.enabled=true env: - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: RELATED_IMAGE_ALERTMANAGER value: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 - name: RELATED_IMAGE_PROMETHEUS value: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b - name: RELATED_IMAGE_THANOS value: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 - name: RELATED_IMAGE_PERSES value: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade - name: RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN value: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 - name: RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN value: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c - name: RELATED_IMAGE_KORREL8R value: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 - name: RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER value: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb imagePullPolicy: Always livenessProbe: httpGet: path: /healthz port: 8081 name: operator readinessProbe: httpGet: path: /healthz port: 8081 resources: limits: cpu: 400m memory: 512Mi requests: cpu: 100m memory: 256Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /etc/tls/private name: observability-operator-tls readOnly: true securityContext: runAsNonRoot: true serviceAccountName: observability-operator-sa terminationGracePeriodSeconds: 30 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - name: observability-operator-tls secret: optional: true secretName: observability-operator-tls - label: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator name: perses-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: perses-operator creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 15 periodSeconds: 20 name: perses-operator readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 resources: limits: cpu: 500m memory: 512Mi requests: cpu: 100m memory: 128Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /ca name: openshift-service-ca readOnly: true serviceAccountName: perses-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt optional: true name: openshift-service-ca strategy: deployment installModes: - supported: false type: OwnNamespace - supported: false type: SingleNamespace - supported: false type: MultiNamespace - supported: true type: AllNamespaces keywords: - observability - monitoring - prometheus - thanos links: - name: GitHub url: https://github.com/rhobs/observability-operator maintainers: - email: jfajersk@redhat.com name: Jan Fajerski - email: spasquie@redhat.com name: Simon Pasquier maturity: alpha provider: name: Red Hat relatedImages: - image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb name: cluster-observability-operator - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 name: prometheus-config-reloader - image: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 name: alertmanager - image: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b name: prometheus - image: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 name: thanos - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator - image: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb name: ui-dashboards - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f name: ui-tracing - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 name: ui-tracing-pf5 - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 name: ui-tracing-pf4 - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b name: ui-logging - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 name: ui-logging-pf4 - image: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 name: ui-troubleshooting - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 name: ui-monitoring - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c name: ui-monitoring-pf5 - image: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 name: korrel8r - image: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 name: cluster-health-analyzer - image: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade name: perses - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 name: perses-operator replaces: cluster-observability-operator.v1.2.2 version: 1.3.0 webhookdefinitions: - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: alertmanagerconfigs.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - alertmanagerconfigs scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-alertmanagerconfigs/validate - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: prometheusrules.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - prometheusrules scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-prometheusrules/validate status: certsLastUpdated: "2025-12-04T00:56:42Z" certsRotateAt: "2027-12-03T00:56:41Z" cleanup: {} conditions: - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: requirements not yet checked phase: Pending reason: RequirementsUnknown - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: one or more requirements couldn't be found phase: Pending reason: RequirementsNotMet - lastTransitionTime: "2025-12-04T00:56:39Z" lastUpdateTime: "2025-12-04T00:56:39Z" message: all requirements found, attempting install phase: InstallReady reason: AllRequirementsMet - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:41Z" message: waiting for install components to report healthy phase: Installing reason: InstallSucceeded - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:43Z" message: 'installing: waiting for deployment obo-prometheus-operator to become ready: deployment "obo-prometheus-operator" not available: Deployment does not have minimum availability.' phase: Installing reason: InstallWaiting - lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: install strategy completed with no errors phase: Succeeded reason: InstallSucceeded lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: The operator is running in openshift-operators but is managing this namespace phase: Succeeded reason: Copied requirementStatus: - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagerconfigs.monitoring.rhobs status: Present uuid: fdb5fb0c-6e9f-4adf-9365-e3e7eb7c0067 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagers.monitoring.rhobs status: Present uuid: e7cc9eeb-3d09-427c-a19e-e9c6b7eb2898 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: monitoringstacks.monitoring.rhobs status: Present uuid: 9ccaadbf-0dca-48b2-a78f-500c1872cfff version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: observabilityinstallers.observability.openshift.io status: Present uuid: 77fac378-1af3-4ceb-ab13-4dcbdcd7273c version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: perses.perses.dev status: Present uuid: e03c0eb7-4876-4e69-897d-262406875f61 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdashboards.perses.dev status: Present uuid: e3e03868-fb11-4678-832d-b4347b218d2f version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdatasources.perses.dev status: Present uuid: 842a1904-aa52-4dfe-8f68-445677c5832d version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: podmonitors.monitoring.rhobs status: Present uuid: 7f0fbafb-4530-4794-ba46-036a95ce4ed1 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: probes.monitoring.rhobs status: Present uuid: 5e9f4268-128e-484a-81b8-826995506fc0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusagents.monitoring.rhobs status: Present uuid: 7e7569e0-7f4e-474f-b8a3-82aa6d1491af version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheuses.monitoring.rhobs status: Present uuid: b4317bbb-7c2d-4663-a47f-df8459ad11a5 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusrules.monitoring.rhobs status: Present uuid: 7155f6cf-1c79-416e-8c3b-4f151e5024b0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: scrapeconfigs.monitoring.rhobs status: Present uuid: 3c0d5d32-16b5-49b2-b6ea-290b52c13784 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: servicemonitors.monitoring.rhobs status: Present uuid: 35381462-6751-4a3e-8efe-2348be176098 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosqueriers.monitoring.rhobs status: Present uuid: bd3cda66-d433-40ce-9892-bc4ac8eb9b7e version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosrulers.monitoring.rhobs status: Present uuid: 567d004f-dd11-4527-a2ee-c97b395d08cf version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: uiplugins.observability.openshift.io status: Present uuid: b14324f9-a93e-4a3c-975e-02bdf570d177 version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","alertmanagers/finalizers","alertmanagers/status","alertmanagerconfigs","prometheuses","prometheuses/finalizers","prometheuses/status","prometheusagents","prometheusagents/finalizers","prometheusagents/status","thanosrulers","thanosrulers/finalizers","thanosrulers/status","scrapeconfigs","scrapeconfigs/status","servicemonitors","servicemonitors/status","podmonitors","podmonitors/status","probes","probes/status","prometheusrules"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["apps"],"resources":["statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":[""],"resources":["configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","delete"],"apiGroups":[""],"resources":["pods"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["services","services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","watch"],"apiGroups":[""],"resources":["nodes"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["namespaces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","create"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["endpoints"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator-admission-webhook status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["configmaps","secrets","serviceaccounts","services"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["endpoints","events","namespaces","nodes","persistentvolumeclaims","persistentvolumes","pods","replicationcontrollers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","update"],"apiGroups":[""],"resources":["services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["apps"],"resources":["daemonsets","replicasets","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authentication.k8s.io"],"resources":["tokenreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authorization.k8s.io"],"resources":["subjectaccessreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["autoscaling"],"resources":["horizontalpodautoscalers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["batch"],"resources":["cronjobs","jobs"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["config.openshift.io"],"resources":["clusterversions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["console.openshift.io"],"resources":["consoleplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["extensions","networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["loki.grafana.com"],"resources":["application","audit","infrastructure","network"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["loki.grafana.com"],"resources":["lokistacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["monitoring.coreos.com"],"resources":["alertmanagers/api"],"resourceNames":["main"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","update"],"apiGroups":["monitoring.coreos.com"],"resources":["prometheuses/api"],"resourceNames":["k8s"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["monitoring.coreos.com"],"resources":["servicemonitors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","list","patch","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","prometheuses","servicemonitors","thanosqueriers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","list","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks/finalizers","monitoringstacks/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses","networkpolicies"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers","uiplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["delete","get","patch","update"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers/finalizers","observabilityinstallers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["observability.openshift.io"],"resources":["uiplugins/finalizers","uiplugins/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","patch","watch"],"apiGroups":["operator.openshift.io"],"resources":["consoles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["operators.coreos.com"],"resources":["clusterserviceversions","subscriptions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses","persesdashboards","persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers","persesdashboards/finalizers","persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status","persesdashboards/status","persesdatasources/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["policy"],"resources":["poddisruptionbudgets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["clusterrolebindings","clusterroles","rolebindings","roles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot","nonroot-v2"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses","volumeattachments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["tempo.grafana.com"],"resources":["application"],"resourceNames":["traces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list"],"apiGroups":["tempo.grafana.com"],"resources":["tempomonolithics"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: observability-operator-sa status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","patch"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update","create","delete","list","watch"],"apiGroups":[""],"resources":["services","configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdashboards"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: perses-operator status: Present version: v1 apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: alm-examples: |- [ { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "MonitoringStack", "metadata": { "labels": { "mso": "example" }, "name": "sample-monitoring-stack" }, "spec": { "logLevel": "debug", "resourceSelector": { "matchLabels": { "app": "demo" } }, "retention": "1d" } }, { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "ThanosQuerier", "metadata": { "name": "example-thanos" }, "spec": { "selector": { "matchLabels": { "mso": "example" } } } } ] capabilities: Basic Install categories: Monitoring certified: "false" containerImage: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb createdAt: "2025-11-03T09:23:49Z" description: A Go based Kubernetes operator to setup and manage highly available Monitoring Stack using Prometheus, Alertmanager and Thanos Querier. features.operators.openshift.io/cnf: "false" features.operators.openshift.io/cni: "false" features.operators.openshift.io/csi: "false" features.operators.openshift.io/disconnected: "true" features.operators.openshift.io/fips-compliant: "false" features.operators.openshift.io/proxy-aware: "false" features.operators.openshift.io/tls-profiles: "false" features.operators.openshift.io/token-auth-aws: "false" features.operators.openshift.io/token-auth-azure: "false" features.operators.openshift.io/token-auth-gcp: "false" olm.operatorGroup: global-operators olm.operatorNamespace: openshift-operators olm.skipRange: '>=..0 <1.3.0' operatorframework.io/cluster-monitoring: "true" operatorframework.io/properties: '{"properties":[{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Alertmanager","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"AlertmanagerConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"MonitoringStack","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PodMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Probe","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Prometheus","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusAgent","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusRule","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ScrapeConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ServiceMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosQuerier","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosRuler","version":"v1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"ObservabilityInstaller","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"UIPlugin","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"Perses","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDashboard","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDatasource","version":"v1alpha1"}},{"type":"olm.package","value":{"packageName":"cluster-observability-operator","version":"1.3.0"}}]}' operatorframework.io/suggested-namespace: openshift-cluster-observability-operator operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", "OpenShift Container Platform", "OpenShift Platform Plus"]' operators.operatorframework.io/builder: operator-sdk-v1.41.1 operators.operatorframework.io/internal-objects: |- [ "prometheuses.monitoring.rhobs", "alertmanagers.monitoring.rhobs", "thanosrulers.monitoring.rhobs", "prometheusagents.monitoring.rhobs", "perses.perses.dev" ] operators.operatorframework.io/project_layout: unknown repository: https://github.com/rhobs/observability-operator support: Cluster Observability (https://issues.redhat.com/projects/COO/) creationTimestamp: "2025-12-04T00:56:38Z" generation: 1 labels: olm.copiedFrom: openshift-operators olm.managed: "true" operatorframework.io/arch.amd64: supported operatorframework.io/arch.arm64: supported operatorframework.io/arch.ppc64le: supported operatorframework.io/arch.s390x: supported name: cluster-observability-operator.v1.3.0 namespace: metallb-system resourceVersion: "22833" uid: 9a3c367e-38e1-4dc0-8ba7-8227124f5cf3 spec: apiservicedefinitions: {} cleanup: enabled: false customresourcedefinitions: owned: - description: AlertmanagerConfig configures the Prometheus Alertmanager, specifying how alerts should be grouped, inhibited and notified to external systems displayName: AlertmanagerConfig kind: AlertmanagerConfig name: alertmanagerconfigs.monitoring.rhobs version: v1alpha1 - description: Alertmanager describes an Alertmanager cluster displayName: Alertmanager kind: Alertmanager name: alertmanagers.monitoring.rhobs version: v1 - description: MonitoringStack is the Schema for the monitoringstacks API displayName: MonitoringStack kind: MonitoringStack name: monitoringstacks.monitoring.rhobs version: v1alpha1 - kind: ObservabilityInstaller name: observabilityinstallers.observability.openshift.io version: v1alpha1 - description: Perses is the Schema for the perses API displayName: Perses kind: Perses name: perses.perses.dev version: v1alpha1 - description: A Perses Dashboard displayName: Perses Dashboard kind: PersesDashboard name: persesdashboards.perses.dev version: v1alpha1 - description: A Perses Datasource displayName: Perses Datasource kind: PersesDatasource name: persesdatasources.perses.dev version: v1alpha1 - description: PodMonitor defines monitoring for a set of pods displayName: PodMonitor kind: PodMonitor name: podmonitors.monitoring.rhobs version: v1 - description: Probe defines monitoring for a set of static targets or ingresses displayName: Probe kind: Probe name: probes.monitoring.rhobs version: v1 - description: PrometheusAgent defines a Prometheus agent deployment displayName: PrometheusAgent kind: PrometheusAgent name: prometheusagents.monitoring.rhobs version: v1alpha1 - description: Prometheus defines a Prometheus deployment displayName: Prometheus kind: Prometheus name: prometheuses.monitoring.rhobs version: v1 - description: PrometheusRule defines recording and alerting rules for a Prometheus instance displayName: PrometheusRule kind: PrometheusRule name: prometheusrules.monitoring.rhobs version: v1 - description: ScrapeConfig defines a namespaced Prometheus scrape_config to be aggregated across multiple namespaces into the Prometheus configuration displayName: ScrapeConfig kind: ScrapeConfig name: scrapeconfigs.monitoring.rhobs version: v1alpha1 - description: ServiceMonitor defines monitoring for a set of services displayName: ServiceMonitor kind: ServiceMonitor name: servicemonitors.monitoring.rhobs version: v1 - description: ThanosQuerier outlines the Thanos querier components, managed by this stack displayName: ThanosQuerier kind: ThanosQuerier name: thanosqueriers.monitoring.rhobs version: v1alpha1 - description: ThanosRuler defines a ThanosRuler deployment displayName: ThanosRuler kind: ThanosRuler name: thanosrulers.monitoring.rhobs version: v1 - description: UIPlugin defines a console plugin for observability displayName: UIPlugin kind: UIPlugin name: uiplugins.observability.openshift.io version: v1alpha1 description: |- Cluster Observability Operator is a Go based Kubernetes operator to easily setup and manage various observability tools. ### Supported Features - Setup multiple Highly Available Monitoring stack using Prometheus, Alertmanager and Thanos Querier - Customizable configuration for managing Prometheus deployments - Customizable configuration for managing Alertmanager deployments - Customizable configuration for managing Thanos Querier deployments - Setup console plugins - Setup korrel8r - Setup Perses - Setup Cluster Health Analyzer ### Documentation - **[Documentation](https://docs.redhat.com/en/documentation/openshift_container_platform/latest/html/cluster_observability_operator/index)** ### License Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) displayName: Cluster Observability Operator icon: - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0idXVpZC1kMWI4NDIzOC0wYzgxLTQ5MjctOGQ4Mi03OTcyN2Y5OGZjYWMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM4IDM4Ij4KPHRpdGxlPkNsdXN0ZXIgb2JzZXJ2YWJpbGl0eTwvdGl0bGU+CjxkZXNjPmNsb3VkPC9kZXNjPgo8bWV0YWRhdGE+PD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOC4wLWMwMDEgMS4wMDAwMDAsIDAwMDAvMDAvMDAtMDA6MDA6MDAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8IS0tIG1ldGFkYXRhIGZpZWxkcyAtLT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InciPz48L21ldGFkYXRhPgo8ZGVmcz48c3R5bGU+LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhe2ZpbGw6I2UwZTBlMDt9LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhLC51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCwudXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgsLnV1aWQtNGJlZjgyMGItNTZjOS00N2U3LTgyYTMtMmRiOGQ4YzdiMTEye3N0cm9rZS13aWR0aDowcHg7fS51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMHtmaWxsOiMwMDA7fS51dWlkLWYwMzIxNzhlLWJkNTAtNGRlNy1iNzczLTY2NWJmZDVjNWJiOHtmaWxsOiNlMDA7fS51dWlkLTRiZWY4MjBiLTU2YzktNDdlNy04MmEzLTJkYjhkOGM3YjExMntmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPgo8cmVjdCBjbGFzcz0idXVpZC00YmVmODIwYi01NmM5LTQ3ZTctODJhMy0yZGI4ZDhjN2IxMTIiIHg9IjEiIHk9IjEiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjkiIHJ5PSI5Ii8+CjxwYXRoIGNsYXNzPSJ1dWlkLTI0YjBkOTdiLTY4MWUtNGRhNi1hMWM3LTc2NzFhZTU3NTMyYSIgZD0iTTI4LDIuMjVjNC4yNzM0LDAsNy43NSwzLjQ3NjYsNy43NSw3Ljc1djE4YzAsNC4yNzM0LTMuNDc2Niw3Ljc1LTcuNzUsNy43NUgxMGMtNC4yNzM0LDAtNy43NS0zLjQ3NjYtNy43NS03Ljc1VjEwYzAtNC4yNzM0LDMuNDc2Ni03Ljc1LDcuNzUtNy43NWgxOE0yOCwxSDEwQzUuMDI5NCwxLDEsNS4wMjk0LDEsMTB2MThjMCw0Ljk3MDYsNC4wMjk0LDksOSw5aDE4YzQuOTcwNiwwLDktNC4wMjk0LDktOVYxMGMwLTQuOTcwNi00LjAyOTQtOS05LTloMFoiLz4KPHBhdGggY2xhc3M9InV1aWQtZjAzMjE3OGUtYmQ1MC00ZGU3LWI3NzMtNjY1YmZkNWM1YmI4IiBkPSJNMjEuMzc1LDE5YzAsLjM0NTIuMjgwMy42MjUuNjI1LjYyNXMuNjI1LS4yNzk4LjYyNS0uNjI1YzAtMS45OTktMS42MjYtMy42MjUtMy42MjUtMy42MjUtLjM0NDcsMC0uNjI1LjI3OTgtLjYyNS42MjVzLjI4MDMuNjI1LjYyNS42MjVjMS4zMDk2LDAsMi4zNzUsMS4wNjU0LDIuMzc1LDIuMzc1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgiIGQ9Ik0xOSwxMy4zNzVjLS43ODIyLDAtMS41MzkxLjE1NzctMi4yNS40NjgzLS4zMTY0LjEzODItLjQ2MDkuNTA2OC0uMzIyMy44MjMyLjEzNzcuMzE2NC41MDc4LjQ1ODUuODIyMy4zMjIzLjU1MjctLjI0MTIsMS4xNDE2LS4zNjM4LDEuNzUtLjM2MzgsMi40MTIxLDAsNC4zNzUsMS45NjI0LDQuMzc1LDQuMzc1cy0xLjk2MjksNC4zNzUtNC4zNzUsNC4zNzUtNC4zNzUtMS45NjI0LTQuMzc1LTQuMzc1YzAtLjYwODkuMTIyMS0xLjE5NzMuMzYzMy0xLjc0OTUuMTM4Ny0uMzE2NC0uMDA1OS0uNjg1MS0uMzIyMy0uODIzMi0uMzE0NS0uMTM5Mi0uNjgzNi4wMDU0LS44MjIzLjMyMjMtLjMxMTUuNzExNC0uNDY4OCwxLjQ2ODMtLjQ2ODgsMi4yNTA1LDAsMy4xMDE2LDIuNTIzNCw1LjYyNSw1LjYyNSw1LjYyNXM1LjYyNS0yLjUyMzQsNS42MjUtNS42MjUtMi41MjM0LTUuNjI1LTUuNjI1LTUuNjI1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC05N2MxZWM4NC05YjgxLTQ1NmUtOTlhYS03MTM3NTBlYjY5ZTAiIGQ9Ik0zMC40NjY4LDE4LjczODhjLTIuMDU2Ni00LjQ3MzEtNi41NTc2LTcuMzYzOC0xMS40NjY4LTcuMzYzOHMtOS40MTAyLDIuODkwNi0xMS40NjY4LDcuMzYzOGMtLjA3NTIuMTY2LS4wNzUyLjM1NjQsMCwuNTIyNSwyLjA1NjYsNC40NzMxLDYuNTU3Niw3LjM2MzgsMTEuNDY2OCw3LjM2MzhzOS40MTAyLTIuODkwNiwxMS40NjY4LTcuMzYzOGMuMDc1Mi0uMTY2LjA3NTItLjM1NjQsMC0uNTIyNVpNMTksMjUuMzc1Yy00LjMyNjIsMC04LjMwMDgtMi40OTI3LTEwLjIwNjEtNi4zNzUsMS45MDUzLTMuODgyMyw1Ljg3OTktNi4zNzUsMTAuMjA2MS02LjM3NXM4LjMwMDgsMi40OTI3LDEwLjIwNjEsNi4zNzVjLTEuOTA1MywzLjg4MjMtNS44Nzk5LDYuMzc1LTEwLjIwNjEsNi4zNzVaIi8+CjxwYXRoIGNsYXNzPSJ1dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCIgZD0iTTE1LjQ0MjQsMTQuNTU4MWMtLjI0NDEtLjI0NDEtLjY0MDYtLjI0NDEtLjg4NDgsMC0uMjQzMi4yNDQxLS4yNDMyLjYzOTYsMCwuODgzOGw0LDRjLjEyMjEuMTIyMS4yODIyLjE4MzEuNDQyNC4xODMxcy4zMjAzLS4wNjEuNDQyNC0uMTgzMWMuMjQzMi0uMjQ0MS4yNDMyLS42Mzk2LDAtLjg4MzhsLTQtNFoiLz4KPC9zdmc+Cg== mediatype: image/svg+xml install: spec: clusterPermissions: - rules: - apiGroups: - monitoring.rhobs resources: - alertmanagers - alertmanagers/finalizers - alertmanagers/status - alertmanagerconfigs - prometheuses - prometheuses/finalizers - prometheuses/status - prometheusagents - prometheusagents/finalizers - prometheusagents/status - thanosrulers - thanosrulers/finalizers - thanosrulers/status - scrapeconfigs - scrapeconfigs/status - servicemonitors - servicemonitors/status - podmonitors - podmonitors/status - probes - probes/status - prometheusrules verbs: - '*' - apiGroups: - apps resources: - statefulsets verbs: - '*' - apiGroups: - "" resources: - configmaps - secrets verbs: - '*' - apiGroups: - "" resources: - pods verbs: - list - delete - apiGroups: - "" resources: - services - services/finalizers verbs: - get - create - update - delete - apiGroups: - "" resources: - nodes verbs: - list - watch - apiGroups: - "" resources: - namespaces verbs: - get - list - watch - apiGroups: - "" resources: - events verbs: - patch - create - apiGroups: - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - storage.k8s.io resources: - storageclasses verbs: - get - apiGroups: - "" resources: - endpoints verbs: - get - create - update - delete - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator - rules: - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator-admission-webhook - rules: - apiGroups: - "" resources: - configmaps - secrets - serviceaccounts - services verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - endpoints - events - namespaces - nodes - persistentvolumeclaims - persistentvolumes - pods - replicationcontrollers verbs: - get - list - watch - apiGroups: - "" resources: - services/finalizers verbs: - patch - update - apiGroups: - apps resources: - daemonsets - replicasets - statefulsets verbs: - get - list - watch - apiGroups: - apps resources: - deployments verbs: - create - delete - get - list - patch - update - watch - apiGroups: - authentication.k8s.io resources: - tokenreviews verbs: - create - apiGroups: - authorization.k8s.io resources: - subjectaccessreviews verbs: - create - apiGroups: - autoscaling resources: - horizontalpodautoscalers verbs: - get - list - watch - apiGroups: - batch resources: - cronjobs - jobs verbs: - get - list - watch - apiGroups: - config.openshift.io resources: - clusterversions verbs: - get - list - watch - apiGroups: - console.openshift.io resources: - consoleplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - extensions - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - loki.grafana.com resources: - application - audit - infrastructure - network verbs: - get - apiGroups: - loki.grafana.com resources: - lokistacks verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - main resources: - alertmanagers/api verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - k8s resources: - prometheuses/api verbs: - create - get - update - apiGroups: - monitoring.coreos.com resources: - servicemonitors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - alertmanagers - prometheuses - servicemonitors - thanosqueriers verbs: - create - delete - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks verbs: - create - get - list - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks/finalizers - monitoringstacks/status verbs: - get - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/finalizers verbs: - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/status verbs: - get - patch - update - apiGroups: - networking.k8s.io resources: - ingresses - networkpolicies verbs: - get - list - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers - uiplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers/finalizers - observabilityinstallers/status verbs: - delete - get - patch - update - apiGroups: - observability.openshift.io resources: - uiplugins/finalizers - uiplugins/status verbs: - get - update - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors/status verbs: - get - list - watch - apiGroups: - operator.openshift.io resources: - consoles verbs: - get - list - patch - watch - apiGroups: - operators.coreos.com resources: - clusterserviceversions - subscriptions verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses - persesdashboards - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers - persesdashboards/finalizers - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status - persesdashboards/status - persesdatasources/status verbs: - get - patch - update - apiGroups: - policy resources: - poddisruptionbudgets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - rbac.authorization.k8s.io resources: - clusterrolebindings - clusterroles - rolebindings - roles verbs: - create - delete - get - list - patch - update - watch - apiGroups: - security.openshift.io resourceNames: - nonroot - nonroot-v2 resources: - securitycontextconstraints verbs: - use - apiGroups: - storage.k8s.io resources: - storageclasses - volumeattachments verbs: - get - list - watch - apiGroups: - tempo.grafana.com resourceNames: - traces resources: - application verbs: - create - apiGroups: - tempo.grafana.com resources: - tempomonolithics verbs: - list - apiGroups: - tempo.grafana.com resources: - tempostacks verbs: - create - delete - get - list - patch - update - watch - apiGroups: - tempo.grafana.com resources: - tempostacks/status verbs: - get - list - watch serviceAccountName: observability-operator-sa - rules: - apiGroups: - apps resources: - deployments - statefulsets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - events verbs: - create - patch - apiGroups: - "" resources: - services - configmaps - secrets verbs: - get - patch - update - create - delete - list - watch - apiGroups: - perses.dev resources: - perses verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdashboards verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdashboards/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdashboards/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdatasources/status verbs: - get - patch - update serviceAccountName: perses-operator deployments: - label: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 automountServiceAccountToken: true containers: - args: - --prometheus-config-reloader=$(RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER) - --prometheus-instance-selector=app.kubernetes.io/managed-by=observability-operator - --alertmanager-instance-selector=app.kubernetes.io/managed-by=observability-operator - --thanos-ruler-instance-selector=app.kubernetes.io/managed-by=observability-operator env: - name: GOGC value: "30" - name: RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER value: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator ports: - containerPort: 8080 name: http protocol: TCP resources: limits: cpu: 100m memory: 500Mi requests: cpu: 5m memory: 150Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator-admission-webhook spec: replicas: 2 selector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator strategy: rollingUpdate: maxUnavailable: 1 template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator-admission-webhook creationTimestamp: null labels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator namespaces: - default topologyKey: kubernetes.io/hostname automountServiceAccountToken: false containers: - args: - --web.enable-tls=true - --web.cert-file=/tmp/k8s-webhook-server/serving-certs/tls.crt - --web.key-file=/tmp/k8s-webhook-server/serving-certs/tls.key image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook ports: - containerPort: 8443 name: https protocol: TCP resources: limits: cpu: 200m memory: 200Mi requests: cpu: 50m memory: 50Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator-admission-webhook tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 name: observability-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator strategy: {} template: metadata: creationTimestamp: null labels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - args: - --namespace=$(NAMESPACE) - --images=perses=$(RELATED_IMAGE_PERSES) - --images=alertmanager=$(RELATED_IMAGE_ALERTMANAGER) - --images=prometheus=$(RELATED_IMAGE_PROMETHEUS) - --images=thanos=$(RELATED_IMAGE_THANOS) - --images=ui-dashboards=$(RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN) - --images=ui-distributed-tracing=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN) - --images=ui-distributed-tracing-pf5=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5) - --images=ui-distributed-tracing-pf4=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4) - --images=ui-logging=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN) - --images=ui-logging-pf4=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4) - --images=ui-troubleshooting-panel=$(RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN) - --images=ui-monitoring=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN) - --images=ui-monitoring-pf5=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5) - --images=korrel8r=$(RELATED_IMAGE_KORREL8R) - --images=health-analyzer=$(RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER) - --openshift.enabled=true env: - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: RELATED_IMAGE_ALERTMANAGER value: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 - name: RELATED_IMAGE_PROMETHEUS value: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b - name: RELATED_IMAGE_THANOS value: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 - name: RELATED_IMAGE_PERSES value: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade - name: RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN value: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 - name: RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN value: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c - name: RELATED_IMAGE_KORREL8R value: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 - name: RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER value: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb imagePullPolicy: Always livenessProbe: httpGet: path: /healthz port: 8081 name: operator readinessProbe: httpGet: path: /healthz port: 8081 resources: limits: cpu: 400m memory: 512Mi requests: cpu: 100m memory: 256Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /etc/tls/private name: observability-operator-tls readOnly: true securityContext: runAsNonRoot: true serviceAccountName: observability-operator-sa terminationGracePeriodSeconds: 30 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - name: observability-operator-tls secret: optional: true secretName: observability-operator-tls - label: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator name: perses-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: perses-operator creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 15 periodSeconds: 20 name: perses-operator readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 resources: limits: cpu: 500m memory: 512Mi requests: cpu: 100m memory: 128Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /ca name: openshift-service-ca readOnly: true serviceAccountName: perses-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt optional: true name: openshift-service-ca strategy: deployment installModes: - supported: false type: OwnNamespace - supported: false type: SingleNamespace - supported: false type: MultiNamespace - supported: true type: AllNamespaces keywords: - observability - monitoring - prometheus - thanos links: - name: GitHub url: https://github.com/rhobs/observability-operator maintainers: - email: jfajersk@redhat.com name: Jan Fajerski - email: spasquie@redhat.com name: Simon Pasquier maturity: alpha provider: name: Red Hat relatedImages: - image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb name: cluster-observability-operator - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 name: prometheus-config-reloader - image: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 name: alertmanager - image: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b name: prometheus - image: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 name: thanos - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator - image: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb name: ui-dashboards - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f name: ui-tracing - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 name: ui-tracing-pf5 - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 name: ui-tracing-pf4 - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b name: ui-logging - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 name: ui-logging-pf4 - image: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 name: ui-troubleshooting - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 name: ui-monitoring - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c name: ui-monitoring-pf5 - image: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 name: korrel8r - image: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 name: cluster-health-analyzer - image: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade name: perses - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 name: perses-operator replaces: cluster-observability-operator.v1.2.2 version: 1.3.0 webhookdefinitions: - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: alertmanagerconfigs.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - alertmanagerconfigs scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-alertmanagerconfigs/validate - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: prometheusrules.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - prometheusrules scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-prometheusrules/validate status: certsLastUpdated: "2025-12-04T00:56:42Z" certsRotateAt: "2027-12-03T00:56:41Z" cleanup: {} conditions: - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: requirements not yet checked phase: Pending reason: RequirementsUnknown - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: one or more requirements couldn't be found phase: Pending reason: RequirementsNotMet - lastTransitionTime: "2025-12-04T00:56:39Z" lastUpdateTime: "2025-12-04T00:56:39Z" message: all requirements found, attempting install phase: InstallReady reason: AllRequirementsMet - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:41Z" message: waiting for install components to report healthy phase: Installing reason: InstallSucceeded - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:43Z" message: 'installing: waiting for deployment obo-prometheus-operator to become ready: deployment "obo-prometheus-operator" not available: Deployment does not have minimum availability.' phase: Installing reason: InstallWaiting - lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: install strategy completed with no errors phase: Succeeded reason: InstallSucceeded lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: The operator is running in openshift-operators but is managing this namespace phase: Succeeded reason: Copied requirementStatus: - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagerconfigs.monitoring.rhobs status: Present uuid: fdb5fb0c-6e9f-4adf-9365-e3e7eb7c0067 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagers.monitoring.rhobs status: Present uuid: e7cc9eeb-3d09-427c-a19e-e9c6b7eb2898 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: monitoringstacks.monitoring.rhobs status: Present uuid: 9ccaadbf-0dca-48b2-a78f-500c1872cfff version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: observabilityinstallers.observability.openshift.io status: Present uuid: 77fac378-1af3-4ceb-ab13-4dcbdcd7273c version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: perses.perses.dev status: Present uuid: e03c0eb7-4876-4e69-897d-262406875f61 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdashboards.perses.dev status: Present uuid: e3e03868-fb11-4678-832d-b4347b218d2f version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdatasources.perses.dev status: Present uuid: 842a1904-aa52-4dfe-8f68-445677c5832d version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: podmonitors.monitoring.rhobs status: Present uuid: 7f0fbafb-4530-4794-ba46-036a95ce4ed1 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: probes.monitoring.rhobs status: Present uuid: 5e9f4268-128e-484a-81b8-826995506fc0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusagents.monitoring.rhobs status: Present uuid: 7e7569e0-7f4e-474f-b8a3-82aa6d1491af version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheuses.monitoring.rhobs status: Present uuid: b4317bbb-7c2d-4663-a47f-df8459ad11a5 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusrules.monitoring.rhobs status: Present uuid: 7155f6cf-1c79-416e-8c3b-4f151e5024b0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: scrapeconfigs.monitoring.rhobs status: Present uuid: 3c0d5d32-16b5-49b2-b6ea-290b52c13784 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: servicemonitors.monitoring.rhobs status: Present uuid: 35381462-6751-4a3e-8efe-2348be176098 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosqueriers.monitoring.rhobs status: Present uuid: bd3cda66-d433-40ce-9892-bc4ac8eb9b7e version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosrulers.monitoring.rhobs status: Present uuid: 567d004f-dd11-4527-a2ee-c97b395d08cf version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: uiplugins.observability.openshift.io status: Present uuid: b14324f9-a93e-4a3c-975e-02bdf570d177 version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","alertmanagers/finalizers","alertmanagers/status","alertmanagerconfigs","prometheuses","prometheuses/finalizers","prometheuses/status","prometheusagents","prometheusagents/finalizers","prometheusagents/status","thanosrulers","thanosrulers/finalizers","thanosrulers/status","scrapeconfigs","scrapeconfigs/status","servicemonitors","servicemonitors/status","podmonitors","podmonitors/status","probes","probes/status","prometheusrules"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["apps"],"resources":["statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":[""],"resources":["configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","delete"],"apiGroups":[""],"resources":["pods"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["services","services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","watch"],"apiGroups":[""],"resources":["nodes"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["namespaces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","create"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["endpoints"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator-admission-webhook status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["configmaps","secrets","serviceaccounts","services"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["endpoints","events","namespaces","nodes","persistentvolumeclaims","persistentvolumes","pods","replicationcontrollers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","update"],"apiGroups":[""],"resources":["services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["apps"],"resources":["daemonsets","replicasets","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authentication.k8s.io"],"resources":["tokenreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authorization.k8s.io"],"resources":["subjectaccessreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["autoscaling"],"resources":["horizontalpodautoscalers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["batch"],"resources":["cronjobs","jobs"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["config.openshift.io"],"resources":["clusterversions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["console.openshift.io"],"resources":["consoleplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["extensions","networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["loki.grafana.com"],"resources":["application","audit","infrastructure","network"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["loki.grafana.com"],"resources":["lokistacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["monitoring.coreos.com"],"resources":["alertmanagers/api"],"resourceNames":["main"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","update"],"apiGroups":["monitoring.coreos.com"],"resources":["prometheuses/api"],"resourceNames":["k8s"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["monitoring.coreos.com"],"resources":["servicemonitors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","list","patch","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","prometheuses","servicemonitors","thanosqueriers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","list","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks/finalizers","monitoringstacks/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses","networkpolicies"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers","uiplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["delete","get","patch","update"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers/finalizers","observabilityinstallers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["observability.openshift.io"],"resources":["uiplugins/finalizers","uiplugins/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","patch","watch"],"apiGroups":["operator.openshift.io"],"resources":["consoles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["operators.coreos.com"],"resources":["clusterserviceversions","subscriptions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses","persesdashboards","persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers","persesdashboards/finalizers","persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status","persesdashboards/status","persesdatasources/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["policy"],"resources":["poddisruptionbudgets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["clusterrolebindings","clusterroles","rolebindings","roles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot","nonroot-v2"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses","volumeattachments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["tempo.grafana.com"],"resources":["application"],"resourceNames":["traces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list"],"apiGroups":["tempo.grafana.com"],"resources":["tempomonolithics"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: observability-operator-sa status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","patch"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update","create","delete","list","watch"],"apiGroups":[""],"resources":["services","configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdashboards"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: perses-operator status: Present version: v1 apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: alm-examples: |- [ { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "MonitoringStack", "metadata": { "labels": { "mso": "example" }, "name": "sample-monitoring-stack" }, "spec": { "logLevel": "debug", "resourceSelector": { "matchLabels": { "app": "demo" } }, "retention": "1d" } }, { "apiVersion": "monitoring.rhobs/v1alpha1", "kind": "ThanosQuerier", "metadata": { "name": "example-thanos" }, "spec": { "selector": { "matchLabels": { "mso": "example" } } } } ] capabilities: Basic Install categories: Monitoring certified: "false" containerImage: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb createdAt: "2025-11-03T09:23:49Z" description: A Go based Kubernetes operator to setup and manage highly available Monitoring Stack using Prometheus, Alertmanager and Thanos Querier. features.operators.openshift.io/cnf: "false" features.operators.openshift.io/cni: "false" features.operators.openshift.io/csi: "false" features.operators.openshift.io/disconnected: "true" features.operators.openshift.io/fips-compliant: "false" features.operators.openshift.io/proxy-aware: "false" features.operators.openshift.io/tls-profiles: "false" features.operators.openshift.io/token-auth-aws: "false" features.operators.openshift.io/token-auth-azure: "false" features.operators.openshift.io/token-auth-gcp: "false" olm.operatorGroup: global-operators olm.operatorNamespace: openshift-operators olm.skipRange: '>=..0 <1.3.0' operatorframework.io/cluster-monitoring: "true" operatorframework.io/properties: '{"properties":[{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Alertmanager","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"AlertmanagerConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"MonitoringStack","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PodMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Probe","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"Prometheus","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusAgent","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"PrometheusRule","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ScrapeConfig","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ServiceMonitor","version":"v1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosQuerier","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"monitoring.rhobs","kind":"ThanosRuler","version":"v1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"ObservabilityInstaller","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"observability.openshift.io","kind":"UIPlugin","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"Perses","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDashboard","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDatasource","version":"v1alpha1"}},{"type":"olm.package","value":{"packageName":"cluster-observability-operator","version":"1.3.0"}}]}' operatorframework.io/suggested-namespace: openshift-cluster-observability-operator operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", "OpenShift Container Platform", "OpenShift Platform Plus"]' operators.operatorframework.io/builder: operator-sdk-v1.41.1 operators.operatorframework.io/internal-objects: |- [ "prometheuses.monitoring.rhobs", "alertmanagers.monitoring.rhobs", "thanosrulers.monitoring.rhobs", "prometheusagents.monitoring.rhobs", "perses.perses.dev" ] operators.operatorframework.io/project_layout: unknown repository: https://github.com/rhobs/observability-operator support: Cluster Observability (https://issues.redhat.com/projects/COO/) creationTimestamp: "2025-12-04T00:56:49Z" generation: 1 labels: olm.copiedFrom: openshift-operators olm.managed: "true" operatorframework.io/arch.amd64: supported operatorframework.io/arch.arm64: supported operatorframework.io/arch.ppc64le: supported operatorframework.io/arch.s390x: supported name: cluster-observability-operator.v1.3.0 namespace: sushy-emulator resourceVersion: "23039" uid: 63563f82-37ba-4b39-ba45-8320341fe5d8 spec: apiservicedefinitions: {} cleanup: enabled: false customresourcedefinitions: owned: - description: AlertmanagerConfig configures the Prometheus Alertmanager, specifying how alerts should be grouped, inhibited and notified to external systems displayName: AlertmanagerConfig kind: AlertmanagerConfig name: alertmanagerconfigs.monitoring.rhobs version: v1alpha1 - description: Alertmanager describes an Alertmanager cluster displayName: Alertmanager kind: Alertmanager name: alertmanagers.monitoring.rhobs version: v1 - description: MonitoringStack is the Schema for the monitoringstacks API displayName: MonitoringStack kind: MonitoringStack name: monitoringstacks.monitoring.rhobs version: v1alpha1 - kind: ObservabilityInstaller name: observabilityinstallers.observability.openshift.io version: v1alpha1 - description: Perses is the Schema for the perses API displayName: Perses kind: Perses name: perses.perses.dev version: v1alpha1 - description: A Perses Dashboard displayName: Perses Dashboard kind: PersesDashboard name: persesdashboards.perses.dev version: v1alpha1 - description: A Perses Datasource displayName: Perses Datasource kind: PersesDatasource name: persesdatasources.perses.dev version: v1alpha1 - description: PodMonitor defines monitoring for a set of pods displayName: PodMonitor kind: PodMonitor name: podmonitors.monitoring.rhobs version: v1 - description: Probe defines monitoring for a set of static targets or ingresses displayName: Probe kind: Probe name: probes.monitoring.rhobs version: v1 - description: PrometheusAgent defines a Prometheus agent deployment displayName: PrometheusAgent kind: PrometheusAgent name: prometheusagents.monitoring.rhobs version: v1alpha1 - description: Prometheus defines a Prometheus deployment displayName: Prometheus kind: Prometheus name: prometheuses.monitoring.rhobs version: v1 - description: PrometheusRule defines recording and alerting rules for a Prometheus instance displayName: PrometheusRule kind: PrometheusRule name: prometheusrules.monitoring.rhobs version: v1 - description: ScrapeConfig defines a namespaced Prometheus scrape_config to be aggregated across multiple namespaces into the Prometheus configuration displayName: ScrapeConfig kind: ScrapeConfig name: scrapeconfigs.monitoring.rhobs version: v1alpha1 - description: ServiceMonitor defines monitoring for a set of services displayName: ServiceMonitor kind: ServiceMonitor name: servicemonitors.monitoring.rhobs version: v1 - description: ThanosQuerier outlines the Thanos querier components, managed by this stack displayName: ThanosQuerier kind: ThanosQuerier name: thanosqueriers.monitoring.rhobs version: v1alpha1 - description: ThanosRuler defines a ThanosRuler deployment displayName: ThanosRuler kind: ThanosRuler name: thanosrulers.monitoring.rhobs version: v1 - description: UIPlugin defines a console plugin for observability displayName: UIPlugin kind: UIPlugin name: uiplugins.observability.openshift.io version: v1alpha1 description: |- Cluster Observability Operator is a Go based Kubernetes operator to easily setup and manage various observability tools. ### Supported Features - Setup multiple Highly Available Monitoring stack using Prometheus, Alertmanager and Thanos Querier - Customizable configuration for managing Prometheus deployments - Customizable configuration for managing Alertmanager deployments - Customizable configuration for managing Thanos Querier deployments - Setup console plugins - Setup korrel8r - Setup Perses - Setup Cluster Health Analyzer ### Documentation - **[Documentation](https://docs.redhat.com/en/documentation/openshift_container_platform/latest/html/cluster_observability_operator/index)** ### License Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) displayName: Cluster Observability Operator icon: - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0idXVpZC1kMWI4NDIzOC0wYzgxLTQ5MjctOGQ4Mi03OTcyN2Y5OGZjYWMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM4IDM4Ij4KPHRpdGxlPkNsdXN0ZXIgb2JzZXJ2YWJpbGl0eTwvdGl0bGU+CjxkZXNjPmNsb3VkPC9kZXNjPgo8bWV0YWRhdGE+PD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOC4wLWMwMDEgMS4wMDAwMDAsIDAwMDAvMDAvMDAtMDA6MDA6MDAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8IS0tIG1ldGFkYXRhIGZpZWxkcyAtLT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InciPz48L21ldGFkYXRhPgo8ZGVmcz48c3R5bGU+LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhe2ZpbGw6I2UwZTBlMDt9LnV1aWQtMjRiMGQ5N2ItNjgxZS00ZGE2LWExYzctNzY3MWFlNTc1MzJhLC51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCwudXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgsLnV1aWQtNGJlZjgyMGItNTZjOS00N2U3LTgyYTMtMmRiOGQ4YzdiMTEye3N0cm9rZS13aWR0aDowcHg7fS51dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMHtmaWxsOiMwMDA7fS51dWlkLWYwMzIxNzhlLWJkNTAtNGRlNy1iNzczLTY2NWJmZDVjNWJiOHtmaWxsOiNlMDA7fS51dWlkLTRiZWY4MjBiLTU2YzktNDdlNy04MmEzLTJkYjhkOGM3YjExMntmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPgo8cmVjdCBjbGFzcz0idXVpZC00YmVmODIwYi01NmM5LTQ3ZTctODJhMy0yZGI4ZDhjN2IxMTIiIHg9IjEiIHk9IjEiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjkiIHJ5PSI5Ii8+CjxwYXRoIGNsYXNzPSJ1dWlkLTI0YjBkOTdiLTY4MWUtNGRhNi1hMWM3LTc2NzFhZTU3NTMyYSIgZD0iTTI4LDIuMjVjNC4yNzM0LDAsNy43NSwzLjQ3NjYsNy43NSw3Ljc1djE4YzAsNC4yNzM0LTMuNDc2Niw3Ljc1LTcuNzUsNy43NUgxMGMtNC4yNzM0LDAtNy43NS0zLjQ3NjYtNy43NS03Ljc1VjEwYzAtNC4yNzM0LDMuNDc2Ni03Ljc1LDcuNzUtNy43NWgxOE0yOCwxSDEwQzUuMDI5NCwxLDEsNS4wMjk0LDEsMTB2MThjMCw0Ljk3MDYsNC4wMjk0LDksOSw5aDE4YzQuOTcwNiwwLDktNC4wMjk0LDktOVYxMGMwLTQuOTcwNi00LjAyOTQtOS05LTloMFoiLz4KPHBhdGggY2xhc3M9InV1aWQtZjAzMjE3OGUtYmQ1MC00ZGU3LWI3NzMtNjY1YmZkNWM1YmI4IiBkPSJNMjEuMzc1LDE5YzAsLjM0NTIuMjgwMy42MjUuNjI1LjYyNXMuNjI1LS4yNzk4LjYyNS0uNjI1YzAtMS45OTktMS42MjYtMy42MjUtMy42MjUtMy42MjUtLjM0NDcsMC0uNjI1LjI3OTgtLjYyNS42MjVzLjI4MDMuNjI1LjYyNS42MjVjMS4zMDk2LDAsMi4zNzUsMS4wNjU0LDIuMzc1LDIuMzc1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC1mMDMyMTc4ZS1iZDUwLTRkZTctYjc3My02NjViZmQ1YzViYjgiIGQ9Ik0xOSwxMy4zNzVjLS43ODIyLDAtMS41MzkxLjE1NzctMi4yNS40NjgzLS4zMTY0LjEzODItLjQ2MDkuNTA2OC0uMzIyMy44MjMyLjEzNzcuMzE2NC41MDc4LjQ1ODUuODIyMy4zMjIzLjU1MjctLjI0MTIsMS4xNDE2LS4zNjM4LDEuNzUtLjM2MzgsMi40MTIxLDAsNC4zNzUsMS45NjI0LDQuMzc1LDQuMzc1cy0xLjk2MjksNC4zNzUtNC4zNzUsNC4zNzUtNC4zNzUtMS45NjI0LTQuMzc1LTQuMzc1YzAtLjYwODkuMTIyMS0xLjE5NzMuMzYzMy0xLjc0OTUuMTM4Ny0uMzE2NC0uMDA1OS0uNjg1MS0uMzIyMy0uODIzMi0uMzE0NS0uMTM5Mi0uNjgzNi4wMDU0LS44MjIzLjMyMjMtLjMxMTUuNzExNC0uNDY4OCwxLjQ2ODMtLjQ2ODgsMi4yNTA1LDAsMy4xMDE2LDIuNTIzNCw1LjYyNSw1LjYyNSw1LjYyNXM1LjYyNS0yLjUyMzQsNS42MjUtNS42MjUtMi41MjM0LTUuNjI1LTUuNjI1LTUuNjI1WiIvPgo8cGF0aCBjbGFzcz0idXVpZC05N2MxZWM4NC05YjgxLTQ1NmUtOTlhYS03MTM3NTBlYjY5ZTAiIGQ9Ik0zMC40NjY4LDE4LjczODhjLTIuMDU2Ni00LjQ3MzEtNi41NTc2LTcuMzYzOC0xMS40NjY4LTcuMzYzOHMtOS40MTAyLDIuODkwNi0xMS40NjY4LDcuMzYzOGMtLjA3NTIuMTY2LS4wNzUyLjM1NjQsMCwuNTIyNSwyLjA1NjYsNC40NzMxLDYuNTU3Niw3LjM2MzgsMTEuNDY2OCw3LjM2MzhzOS40MTAyLTIuODkwNiwxMS40NjY4LTcuMzYzOGMuMDc1Mi0uMTY2LjA3NTItLjM1NjQsMC0uNTIyNVpNMTksMjUuMzc1Yy00LjMyNjIsMC04LjMwMDgtMi40OTI3LTEwLjIwNjEtNi4zNzUsMS45MDUzLTMuODgyMyw1Ljg3OTktNi4zNzUsMTAuMjA2MS02LjM3NXM4LjMwMDgsMi40OTI3LDEwLjIwNjEsNi4zNzVjLTEuOTA1MywzLjg4MjMtNS44Nzk5LDYuMzc1LTEwLjIwNjEsNi4zNzVaIi8+CjxwYXRoIGNsYXNzPSJ1dWlkLTk3YzFlYzg0LTliODEtNDU2ZS05OWFhLTcxMzc1MGViNjllMCIgZD0iTTE1LjQ0MjQsMTQuNTU4MWMtLjI0NDEtLjI0NDEtLjY0MDYtLjI0NDEtLjg4NDgsMC0uMjQzMi4yNDQxLS4yNDMyLjYzOTYsMCwuODgzOGw0LDRjLjEyMjEuMTIyMS4yODIyLjE4MzEuNDQyNC4xODMxcy4zMjAzLS4wNjEuNDQyNC0uMTgzMWMuMjQzMi0uMjQ0MS4yNDMyLS42Mzk2LDAtLjg4MzhsLTQtNFoiLz4KPC9zdmc+Cg== mediatype: image/svg+xml install: spec: clusterPermissions: - rules: - apiGroups: - monitoring.rhobs resources: - alertmanagers - alertmanagers/finalizers - alertmanagers/status - alertmanagerconfigs - prometheuses - prometheuses/finalizers - prometheuses/status - prometheusagents - prometheusagents/finalizers - prometheusagents/status - thanosrulers - thanosrulers/finalizers - thanosrulers/status - scrapeconfigs - scrapeconfigs/status - servicemonitors - servicemonitors/status - podmonitors - podmonitors/status - probes - probes/status - prometheusrules verbs: - '*' - apiGroups: - apps resources: - statefulsets verbs: - '*' - apiGroups: - "" resources: - configmaps - secrets verbs: - '*' - apiGroups: - "" resources: - pods verbs: - list - delete - apiGroups: - "" resources: - services - services/finalizers verbs: - get - create - update - delete - apiGroups: - "" resources: - nodes verbs: - list - watch - apiGroups: - "" resources: - namespaces verbs: - get - list - watch - apiGroups: - "" resources: - events verbs: - patch - create - apiGroups: - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - storage.k8s.io resources: - storageclasses verbs: - get - apiGroups: - "" resources: - endpoints verbs: - get - create - update - delete - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator - rules: - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 - nonroot resources: - securitycontextconstraints verbs: - use serviceAccountName: obo-prometheus-operator-admission-webhook - rules: - apiGroups: - "" resources: - configmaps - secrets - serviceaccounts - services verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - endpoints - events - namespaces - nodes - persistentvolumeclaims - persistentvolumes - pods - replicationcontrollers verbs: - get - list - watch - apiGroups: - "" resources: - services/finalizers verbs: - patch - update - apiGroups: - apps resources: - daemonsets - replicasets - statefulsets verbs: - get - list - watch - apiGroups: - apps resources: - deployments verbs: - create - delete - get - list - patch - update - watch - apiGroups: - authentication.k8s.io resources: - tokenreviews verbs: - create - apiGroups: - authorization.k8s.io resources: - subjectaccessreviews verbs: - create - apiGroups: - autoscaling resources: - horizontalpodautoscalers verbs: - get - list - watch - apiGroups: - batch resources: - cronjobs - jobs verbs: - get - list - watch - apiGroups: - config.openshift.io resources: - clusterversions verbs: - get - list - watch - apiGroups: - console.openshift.io resources: - consoleplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - extensions - networking.k8s.io resources: - ingresses verbs: - get - list - watch - apiGroups: - loki.grafana.com resources: - application - audit - infrastructure - network verbs: - get - apiGroups: - loki.grafana.com resources: - lokistacks verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - main resources: - alertmanagers/api verbs: - get - list - apiGroups: - monitoring.coreos.com resourceNames: - k8s resources: - prometheuses/api verbs: - create - get - update - apiGroups: - monitoring.coreos.com resources: - servicemonitors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - alertmanagers - prometheuses - servicemonitors - thanosqueriers verbs: - create - delete - list - patch - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks verbs: - create - get - list - update - watch - apiGroups: - monitoring.rhobs resources: - monitoringstacks/finalizers - monitoringstacks/status verbs: - get - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/finalizers verbs: - update - apiGroups: - monitoring.rhobs resources: - thanosqueriers/status verbs: - get - patch - update - apiGroups: - networking.k8s.io resources: - ingresses - networkpolicies verbs: - get - list - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers - uiplugins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - observability.openshift.io resources: - observabilityinstallers/finalizers - observabilityinstallers/status verbs: - delete - get - patch - update - apiGroups: - observability.openshift.io resources: - uiplugins/finalizers - uiplugins/status verbs: - get - update - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors verbs: - create - delete - get - list - patch - update - watch - apiGroups: - opentelemetry.io resources: - opentelemetrycollectors/status verbs: - get - list - watch - apiGroups: - operator.openshift.io resources: - consoles verbs: - get - list - patch - watch - apiGroups: - operators.coreos.com resources: - clusterserviceversions - subscriptions verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses - persesdashboards - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers - persesdashboards/finalizers - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status - persesdashboards/status - persesdatasources/status verbs: - get - patch - update - apiGroups: - policy resources: - poddisruptionbudgets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - rbac.authorization.k8s.io resources: - clusterrolebindings - clusterroles - rolebindings - roles verbs: - create - delete - get - list - patch - update - watch - apiGroups: - security.openshift.io resourceNames: - nonroot - nonroot-v2 resources: - securitycontextconstraints verbs: - use - apiGroups: - storage.k8s.io resources: - storageclasses - volumeattachments verbs: - get - list - watch - apiGroups: - tempo.grafana.com resourceNames: - traces resources: - application verbs: - create - apiGroups: - tempo.grafana.com resources: - tempomonolithics verbs: - list - apiGroups: - tempo.grafana.com resources: - tempostacks verbs: - create - delete - get - list - patch - update - watch - apiGroups: - tempo.grafana.com resources: - tempostacks/status verbs: - get - list - watch serviceAccountName: observability-operator-sa - rules: - apiGroups: - apps resources: - deployments - statefulsets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - events verbs: - create - patch - apiGroups: - "" resources: - services - configmaps - secrets verbs: - get - patch - update - create - delete - list - watch - apiGroups: - perses.dev resources: - perses verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - perses/finalizers verbs: - update - apiGroups: - perses.dev resources: - perses/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdashboards verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdashboards/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdashboards/status verbs: - get - patch - update - apiGroups: - perses.dev resources: - persesdatasources verbs: - create - delete - get - list - patch - update - watch - apiGroups: - perses.dev resources: - persesdatasources/finalizers verbs: - update - apiGroups: - perses.dev resources: - persesdatasources/status verbs: - get - patch - update serviceAccountName: perses-operator deployments: - label: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: prometheus-operator app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 automountServiceAccountToken: true containers: - args: - --prometheus-config-reloader=$(RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER) - --prometheus-instance-selector=app.kubernetes.io/managed-by=observability-operator - --alertmanager-instance-selector=app.kubernetes.io/managed-by=observability-operator - --thanos-ruler-instance-selector=app.kubernetes.io/managed-by=observability-operator env: - name: GOGC value: "30" - name: RELATED_IMAGE_PROMETHEUS_CONFIG_RELOADER value: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator ports: - containerPort: 8080 name: http protocol: TCP resources: limits: cpu: 100m memory: 500Mi requests: cpu: 5m memory: 150Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 name: obo-prometheus-operator-admission-webhook spec: replicas: 2 selector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator strategy: rollingUpdate: maxUnavailable: 1 template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus-operator-admission-webhook creationTimestamp: null labels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator app.kubernetes.io/version: 0.86.1-rhobs1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/name: prometheus-operator-admission-webhook app.kubernetes.io/part-of: observability-operator namespaces: - default topologyKey: kubernetes.io/hostname automountServiceAccountToken: false containers: - args: - --web.enable-tls=true - --web.cert-file=/tmp/k8s-webhook-server/serving-certs/tls.crt - --web.key-file=/tmp/k8s-webhook-server/serving-certs/tls.key image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook ports: - containerPort: 8443 name: https protocol: TCP resources: limits: cpu: 200m memory: 200Mi requests: cpu: 50m memory: 50Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePolicy: FallbackToLogsOnError securityContext: runAsNonRoot: true runAsUser: 65534 serviceAccountName: obo-prometheus-operator-admission-webhook tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - label: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 name: observability-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator strategy: {} template: metadata: creationTimestamp: null labels: app.kubernetes.io/component: operator app.kubernetes.io/name: observability-operator app.kubernetes.io/version: 1.3.0 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - args: - --namespace=$(NAMESPACE) - --images=perses=$(RELATED_IMAGE_PERSES) - --images=alertmanager=$(RELATED_IMAGE_ALERTMANAGER) - --images=prometheus=$(RELATED_IMAGE_PROMETHEUS) - --images=thanos=$(RELATED_IMAGE_THANOS) - --images=ui-dashboards=$(RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN) - --images=ui-distributed-tracing=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN) - --images=ui-distributed-tracing-pf5=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5) - --images=ui-distributed-tracing-pf4=$(RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4) - --images=ui-logging=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN) - --images=ui-logging-pf4=$(RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4) - --images=ui-troubleshooting-panel=$(RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN) - --images=ui-monitoring=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN) - --images=ui-monitoring-pf5=$(RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5) - --images=korrel8r=$(RELATED_IMAGE_KORREL8R) - --images=health-analyzer=$(RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER) - --openshift.enabled=true env: - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: RELATED_IMAGE_ALERTMANAGER value: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 - name: RELATED_IMAGE_PROMETHEUS value: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b - name: RELATED_IMAGE_THANOS value: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 - name: RELATED_IMAGE_PERSES value: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade - name: RELATED_IMAGE_CONSOLE_DASHBOARDS_PLUGIN value: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 - name: RELATED_IMAGE_CONSOLE_DISTRIBUTED_TRACING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b - name: RELATED_IMAGE_CONSOLE_LOGGING_PLUGIN_PF4 value: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 - name: RELATED_IMAGE_CONSOLE_TROUBLESHOOTING_PANEL_PLUGIN value: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 - name: RELATED_IMAGE_CONSOLE_MONITORING_PLUGIN_PF5 value: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c - name: RELATED_IMAGE_KORREL8R value: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 - name: RELATED_IMAGE_CLUSTER_HEALTH_ANALYZER value: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb imagePullPolicy: Always livenessProbe: httpGet: path: /healthz port: 8081 name: operator readinessProbe: httpGet: path: /healthz port: 8081 resources: limits: cpu: 400m memory: 512Mi requests: cpu: 100m memory: 256Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /etc/tls/private name: observability-operator-tls readOnly: true securityContext: runAsNonRoot: true serviceAccountName: observability-operator-sa terminationGracePeriodSeconds: 30 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - name: observability-operator-tls secret: optional: true secretName: observability-operator-tls - label: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator name: perses-operator spec: replicas: 1 selector: matchLabels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator strategy: {} template: metadata: annotations: kubectl.kubernetes.io/default-container: perses-operator creationTimestamp: null labels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 15 periodSeconds: 20 name: perses-operator readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 resources: limits: cpu: 500m memory: 512Mi requests: cpu: 100m memory: 128Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /ca name: openshift-service-ca readOnly: true serviceAccountName: perses-operator tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists volumes: - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt optional: true name: openshift-service-ca strategy: deployment installModes: - supported: false type: OwnNamespace - supported: false type: SingleNamespace - supported: false type: MultiNamespace - supported: true type: AllNamespaces keywords: - observability - monitoring - prometheus - thanos links: - name: GitHub url: https://github.com/rhobs/observability-operator maintainers: - email: jfajersk@redhat.com name: Jan Fajerski - email: spasquie@redhat.com name: Simon Pasquier maturity: alpha provider: name: Red Hat relatedImages: - image: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:ce7d2904f7b238aa37dfe74a0b76bf73629e7a14fa52bf54b0ecf030ca36f1bb name: cluster-observability-operator - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:1133c973c7472c665f910a722e19c8e2e27accb34b90fab67f14548627ce9c62 name: prometheus-config-reloader - image: registry.redhat.io/cluster-observability-operator/alertmanager-rhel9@sha256:e718854a7d6ca8accf0fa72db0eb902e46c44d747ad51dc3f06bba0cefaa3c01 name: alertmanager - image: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:17ea20be390a94ab39f5cdd7f0cbc2498046eebcf77fe3dec9aa288d5c2cf46b name: prometheus - image: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:d972f4faa5e9c121402d23ed85002f26af48ec36b1b71a7489d677b3913d08b4 name: thanos - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-admission-webhook-rhel9@sha256:43d33f0125e6b990f4a972ac4e952a065d7e72dc1690c6c836963b7341734aec name: prometheus-operator-admission-webhook - image: registry.redhat.io/cluster-observability-operator/obo-prometheus-rhel9-operator@sha256:203cf5b9dc1460f09e75f58d8b5cf7df5e57c18c8c6a41c14b5e8977d83263f3 name: prometheus-operator - image: registry.redhat.io/cluster-observability-operator/dashboards-console-plugin-rhel9@sha256:a69da8bbca8a28dd2925f864d51cc31cf761b10532c553095ba40b242ef701cb name: ui-dashboards - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-rhel9@sha256:897e1bfad1187062725b54d87107bd0155972257a50d8335dd29e1999b828a4f name: ui-tracing - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf5-rhel9@sha256:95fe5b5746ca8c07ac9217ce2d8ac8e6afad17af210f9d8e0074df1310b209a8 name: ui-tracing-pf5 - image: registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9@sha256:e9d9a89e4d8126a62b1852055482258ee528cac6398dd5d43ebad75ace0f33c9 name: ui-tracing-pf4 - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-rhel9@sha256:ec684a0645ceb917b019af7ddba68c3533416e356ab0d0320a30e75ca7ebb31b name: ui-logging - image: registry.redhat.io/cluster-observability-operator/logging-console-plugin-pf4-rhel9@sha256:3b9693fcde9b3a9494fb04735b1f7cfd0426f10be820fdc3f024175c0d3df1c9 name: ui-logging-pf4 - image: registry.redhat.io/cluster-observability-operator/troubleshooting-panel-console-plugin-rhel9@sha256:580606f194180accc8abba099e17a26dca7522ec6d233fa2fdd40312771703e3 name: ui-troubleshooting - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-rhel9@sha256:e03777be39e71701935059cd877603874a13ac94daa73219d4e5e545599d78a9 name: ui-monitoring - image: registry.redhat.io/cluster-observability-operator/monitoring-console-plugin-pf5-rhel9@sha256:aa47256193cfd2877853878e1ae97d2ab8b8e5deae62b387cbfad02b284d379c name: ui-monitoring-pf5 - image: registry.redhat.io/cluster-observability-operator/korrel8r-rhel9@sha256:c595ff56b2cb85514bf4784db6ddb82e4e657e3e708a7fb695fc4997379a94d4 name: korrel8r - image: registry.redhat.io/cluster-observability-operator/cluster-health-analyzer-rhel9@sha256:45a4ec2a519bcec99e886aa91596d5356a2414a2bd103baaef9fa7838c672eb2 name: cluster-health-analyzer - image: registry.redhat.io/cluster-observability-operator/perses-rhel9@sha256:91531137fc1dcd740e277e0f65e120a0176a16f788c14c27925b61aa0b792ade name: perses - image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:9aec4c328ec43e40481e06ca5808deead74b75c0aacb90e9e72966c3fa14f385 name: perses-operator replaces: cluster-observability-operator.v1.2.2 version: 1.3.0 webhookdefinitions: - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: alertmanagerconfigs.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - alertmanagerconfigs scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-alertmanagerconfigs/validate - admissionReviewVersions: - v1 containerPort: 443 deploymentName: obo-prometheus-operator-admission-webhook failurePolicy: Ignore generateName: prometheusrules.monitoring.rhobs rules: - apiGroups: - monitoring.rhobs apiVersions: - '*' operations: - CREATE - UPDATE resources: - prometheusrules scope: Namespaced sideEffects: None targetPort: https timeoutSeconds: 5 type: ValidatingAdmissionWebhook webhookPath: /admission-prometheusrules/validate status: certsLastUpdated: "2025-12-04T00:56:42Z" certsRotateAt: "2027-12-03T00:56:41Z" cleanup: {} conditions: - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: requirements not yet checked phase: Pending reason: RequirementsUnknown - lastTransitionTime: "2025-12-04T00:56:34Z" lastUpdateTime: "2025-12-04T00:56:34Z" message: one or more requirements couldn't be found phase: Pending reason: RequirementsNotMet - lastTransitionTime: "2025-12-04T00:56:39Z" lastUpdateTime: "2025-12-04T00:56:39Z" message: all requirements found, attempting install phase: InstallReady reason: AllRequirementsMet - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:41Z" message: waiting for install components to report healthy phase: Installing reason: InstallSucceeded - lastTransitionTime: "2025-12-04T00:56:41Z" lastUpdateTime: "2025-12-04T00:56:43Z" message: 'installing: waiting for deployment obo-prometheus-operator to become ready: deployment "obo-prometheus-operator" not available: Deployment does not have minimum availability.' phase: Installing reason: InstallWaiting - lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: install strategy completed with no errors phase: Succeeded reason: InstallSucceeded lastTransitionTime: "2025-12-04T00:57:02Z" lastUpdateTime: "2025-12-04T00:57:02Z" message: The operator is running in openshift-operators but is managing this namespace phase: Succeeded reason: Copied requirementStatus: - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagerconfigs.monitoring.rhobs status: Present uuid: fdb5fb0c-6e9f-4adf-9365-e3e7eb7c0067 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: alertmanagers.monitoring.rhobs status: Present uuid: e7cc9eeb-3d09-427c-a19e-e9c6b7eb2898 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: monitoringstacks.monitoring.rhobs status: Present uuid: 9ccaadbf-0dca-48b2-a78f-500c1872cfff version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: observabilityinstallers.observability.openshift.io status: Present uuid: 77fac378-1af3-4ceb-ab13-4dcbdcd7273c version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: perses.perses.dev status: Present uuid: e03c0eb7-4876-4e69-897d-262406875f61 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdashboards.perses.dev status: Present uuid: e3e03868-fb11-4678-832d-b4347b218d2f version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: persesdatasources.perses.dev status: Present uuid: 842a1904-aa52-4dfe-8f68-445677c5832d version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: podmonitors.monitoring.rhobs status: Present uuid: 7f0fbafb-4530-4794-ba46-036a95ce4ed1 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: probes.monitoring.rhobs status: Present uuid: 5e9f4268-128e-484a-81b8-826995506fc0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusagents.monitoring.rhobs status: Present uuid: 7e7569e0-7f4e-474f-b8a3-82aa6d1491af version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheuses.monitoring.rhobs status: Present uuid: b4317bbb-7c2d-4663-a47f-df8459ad11a5 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: prometheusrules.monitoring.rhobs status: Present uuid: 7155f6cf-1c79-416e-8c3b-4f151e5024b0 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: scrapeconfigs.monitoring.rhobs status: Present uuid: 3c0d5d32-16b5-49b2-b6ea-290b52c13784 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: servicemonitors.monitoring.rhobs status: Present uuid: 35381462-6751-4a3e-8efe-2348be176098 version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosqueriers.monitoring.rhobs status: Present uuid: bd3cda66-d433-40ce-9892-bc4ac8eb9b7e version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: thanosrulers.monitoring.rhobs status: Present uuid: 567d004f-dd11-4527-a2ee-c97b395d08cf version: v1 - group: apiextensions.k8s.io kind: CustomResourceDefinition message: CRD is present and Established condition is true name: uiplugins.observability.openshift.io status: Present uuid: b14324f9-a93e-4a3c-975e-02bdf570d177 version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","alertmanagers/finalizers","alertmanagers/status","alertmanagerconfigs","prometheuses","prometheuses/finalizers","prometheuses/status","prometheusagents","prometheusagents/finalizers","prometheusagents/status","thanosrulers","thanosrulers/finalizers","thanosrulers/status","scrapeconfigs","scrapeconfigs/status","servicemonitors","servicemonitors/status","podmonitors","podmonitors/status","probes","probes/status","prometheusrules"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":["apps"],"resources":["statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["*"],"apiGroups":[""],"resources":["configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","delete"],"apiGroups":[""],"resources":["pods"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["services","services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list","watch"],"apiGroups":[""],"resources":["nodes"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["namespaces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","create"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","create","update","delete"],"apiGroups":[""],"resources":["endpoints"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot-v2","nonroot"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: obo-prometheus-operator-admission-webhook status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["configmaps","secrets","serviceaccounts","services"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":[""],"resources":["endpoints","events","namespaces","nodes","persistentvolumeclaims","persistentvolumes","pods","replicationcontrollers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["patch","update"],"apiGroups":[""],"resources":["services/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["apps"],"resources":["daemonsets","replicasets","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authentication.k8s.io"],"resources":["tokenreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["authorization.k8s.io"],"resources":["subjectaccessreviews"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["autoscaling"],"resources":["horizontalpodautoscalers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["batch"],"resources":["cronjobs","jobs"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["config.openshift.io"],"resources":["clusterversions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["console.openshift.io"],"resources":["consoleplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["extensions","networking.k8s.io"],"resources":["ingresses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get"],"apiGroups":["loki.grafana.com"],"resources":["application","audit","infrastructure","network"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["loki.grafana.com"],"resources":["lokistacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list"],"apiGroups":["monitoring.coreos.com"],"resources":["alertmanagers/api"],"resourceNames":["main"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","update"],"apiGroups":["monitoring.coreos.com"],"resources":["prometheuses/api"],"resourceNames":["k8s"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["monitoring.coreos.com"],"resources":["servicemonitors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","list","patch","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["alertmanagers","prometheuses","servicemonitors","thanosqueriers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","get","list","update","watch"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["monitoring.rhobs"],"resources":["monitoringstacks/finalizers","monitoringstacks/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["monitoring.rhobs"],"resources":["thanosqueriers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses","networkpolicies"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers","uiplugins"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["delete","get","patch","update"],"apiGroups":["observability.openshift.io"],"resources":["observabilityinstallers/finalizers","observabilityinstallers/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","update"],"apiGroups":["observability.openshift.io"],"resources":["uiplugins/finalizers","uiplugins/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["opentelemetry.io"],"resources":["opentelemetrycollectors/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","patch","watch"],"apiGroups":["operator.openshift.io"],"resources":["consoles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["operators.coreos.com"],"resources":["clusterserviceversions","subscriptions"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses","persesdashboards","persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers","persesdashboards/finalizers","persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status","persesdashboards/status","persesdatasources/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["policy"],"resources":["poddisruptionbudgets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["clusterrolebindings","clusterroles","rolebindings","roles"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["nonroot","nonroot-v2"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["storage.k8s.io"],"resources":["storageclasses","volumeattachments"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create"],"apiGroups":["tempo.grafana.com"],"resources":["application"],"resourceNames":["traces"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["list"],"apiGroups":["tempo.grafana.com"],"resources":["tempomonolithics"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","list","watch"],"apiGroups":["tempo.grafana.com"],"resources":["tempostacks/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: observability-operator-sa status: Present version: v1 - dependents: - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments","statefulsets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","patch"],"apiGroups":[""],"resources":["events"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update","create","delete","list","watch"],"apiGroups":[""],"resources":["services","configmaps","secrets"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["perses"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["perses/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["perses/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdashboards"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdashboards/status"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["perses.dev"],"resources":["persesdatasources"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/finalizers"]} status: Satisfied version: v1 - group: rbac.authorization.k8s.io kind: PolicyRule message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["perses.dev"],"resources":["persesdatasources/status"]} status: Satisfied version: v1 group: "" kind: ServiceAccount message: "" name: perses-operator status: Present version: v1