--- apiVersion: v1 kind: Pod 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, Observability certified: "false" console.openshift.io/operator-monitoring-default: "true" containerImage: registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator@sha256:6ebf4181b2e390084f524e7e04a7dda92d28ed446c4cdd47af333325f11f4f47 createdAt: "2026-09-29T19:12:36Z" 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" k8s.ovn.org/pod-networks: '{"default":{"ip_addresses":["10.134.0.27/23"],"mac_address":"0a:58:0a:86:00:1b","gateway_ips":["10.134.0.1"],"routes":[{"dest":"10.132.0.0/14","nextHop":"10.134.0.1"},{"dest":"172.31.0.0/16","nextHop":"10.134.0.1"},{"dest":"169.254.0.5/32","nextHop":"10.134.0.1"},{"dest":"100.64.0.0/16","nextHop":"10.134.0.1"}],"ip_address":"10.134.0.27/23","gateway_ip":"10.134.0.1","role":"primary"}}' k8s.v1.cni.cncf.io/network-status: |- [{ "name": "ovn-kubernetes", "interface": "eth0", "ips": [ "10.134.0.27" ], "mac": "0a:58:0a:86:00:1b", "default": true, "dns": {} }] kubectl.kubernetes.io/default-container: perses-operator olm.operatorGroup: cluster-observability-operator olm.operatorNamespace: openshift-cluster-observability-operator olm.skipRange: '>=..0 <1.5.3' olm.targetNamespaces: "" olmcahash: e2bf23bc1192823d5f23be8a116c28d0e09fa7e6ffd60047d159c86be2deaec4 openshift.io/scc: restricted-v2 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":"Perses","version":"v1alpha2"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDashboard","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDashboard","version":"v1alpha2"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDatasource","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesDatasource","version":"v1alpha2"}},{"type":"olm.gvk","value":{"group":"perses.dev","kind":"PersesGlobalDatasource","version":"v1alpha2"}},{"type":"olm.package","value":{"packageName":"cluster-observability-operator","version":"1.5.3"}}]}' 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 seccomp.security.alpha.kubernetes.io/pod: runtime/default security.openshift.io/validated-scc-subject-type: user support: Cluster Observability (https://issues.redhat.com/projects/COO/) creationTimestamp: "2026-10-31T00:04:33Z" generateName: perses-operator-7c856d4d4c- generation: 1 labels: app.kubernetes.io/component: controller app.kubernetes.io/name: perses-operator app.kubernetes.io/part-of: observability-operator pod-template-hash: 7c856d4d4c topology.kubernetes.io/region: us-east-2 topology.kubernetes.io/zone: us-east-2a managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:k8s.ovn.org/pod-networks: {} manager: ip-10-0-129-70 operation: Update subresource: status time: "2026-10-31T00:04:33Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:alm-examples: {} f:capabilities: {} f:categories: {} f:certified: {} f:console.openshift.io/operator-monitoring-default: {} f:containerImage: {} f:createdAt: {} f:description: {} f:features.operators.openshift.io/cnf: {} f:features.operators.openshift.io/cni: {} f:features.operators.openshift.io/csi: {} f:features.operators.openshift.io/disconnected: {} f:features.operators.openshift.io/fips-compliant: {} f:features.operators.openshift.io/proxy-aware: {} f:features.operators.openshift.io/tls-profiles: {} f:features.operators.openshift.io/token-auth-aws: {} f:features.operators.openshift.io/token-auth-azure: {} f:features.operators.openshift.io/token-auth-gcp: {} f:kubectl.kubernetes.io/default-container: {} f:olm.operatorGroup: {} f:olm.operatorNamespace: {} f:olm.skipRange: {} f:olm.targetNamespaces: {} f:olmcahash: {} f:operatorframework.io/cluster-monitoring: {} f:operatorframework.io/properties: {} f:operatorframework.io/suggested-namespace: {} f:operators.openshift.io/valid-subscription: {} f:operators.operatorframework.io/builder: {} f:operators.operatorframework.io/internal-objects: {} f:operators.operatorframework.io/project_layout: {} f:repository: {} f:support: {} f:generateName: {} f:labels: .: {} f:app.kubernetes.io/component: {} f:app.kubernetes.io/name: {} f:app.kubernetes.io/part-of: {} f:pod-template-hash: {} f:ownerReferences: .: {} k:{"uid":"5c1c30a3-60d6-456c-92c7-055b3bf6e4e6"}: {} f:spec: f:affinity: .: {} f:nodeAffinity: .: {} f:preferredDuringSchedulingIgnoredDuringExecution: {} f:containers: k:{"name":"perses-operator"}: .: {} f:args: {} f:env: .: {} k:{"name":"OPERATOR_CONDITION_NAME"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: .: {} f:limits: .: {} f:cpu: {} f:memory: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:allowPrivilegeEscalation: {} f:capabilities: .: {} f:drop: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/apiserver.local.config/certificates"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/ca"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp/k8s-webhook-server/serving-certs"}: .: {} f:mountPath: {} f:name: {} f:dnsPolicy: {} f:enableServiceLinks: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"apiservice-cert"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:items: {} f:secretName: {} k:{"name":"openshift-service-ca"}: .: {} f:configMap: .: {} f:defaultMode: {} f:items: {} f:name: {} f:optional: {} f:name: {} k:{"name":"webhook-cert"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:items: {} f:secretName: {} manager: kube-controller-manager operation: Update time: "2026-10-31T00:04:33Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:k8s.v1.cni.cncf.io/network-status: {} manager: multus-daemon operation: Update subresource: status time: "2026-10-31T00:04:33Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:status: f:conditions: k:{"type":"ContainersReady"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"Initialized"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodReadyToStartContainers"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodScheduled"}: f:observedGeneration: {} k:{"type":"Ready"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} f:containerStatuses: {} f:hostIP: {} f:hostIPs: {} f:observedGeneration: {} f:phase: {} f:podIP: {} f:podIPs: .: {} k:{"ip":"10.134.0.27"}: .: {} f:ip: {} f:startTime: {} manager: kubelet operation: Update subresource: status time: "2026-10-31T00:04:50Z" name: perses-operator-7c856d4d4c-x67rf namespace: openshift-cluster-observability-operator ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: ReplicaSet name: perses-operator-7c856d4d4c uid: 5c1c30a3-60d6-456c-92c7-055b3bf6e4e6 resourceVersion: "13543" uid: 4d969e19-4f85-4e6f-9c5a-e373c53a7bde spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/infra operator: Exists weight: 1 containers: - args: - --tls-cluster-profile - --tls-configure-operands env: - name: OPERATOR_CONDITION_NAME value: cluster-observability-operator.v1.5.3 image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:076c0402447aa8520ba663068b5cbe0f9e02aacda03aa9df095f72f73fce5a25 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 3 httpGet: path: /healthz port: 8081 scheme: HTTP initialDelaySeconds: 15 periodSeconds: 20 successThreshold: 1 timeoutSeconds: 1 name: perses-operator readinessProbe: failureThreshold: 3 httpGet: path: /readyz port: 8081 scheme: HTTP initialDelaySeconds: 5 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: limits: cpu: 500m memory: 512Mi requests: cpu: 100m memory: 128Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL runAsNonRoot: true runAsUser: 1000670000 terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /ca name: openshift-service-ca readOnly: true - mountPath: /apiserver.local.config/certificates name: apiservice-cert - mountPath: /tmp/k8s-webhook-server/serving-certs name: webhook-cert - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-qkttq readOnly: true dnsPolicy: ClusterFirst enableServiceLinks: true imagePullSecrets: - name: perses-operator-dockercfg-26whr nodeName: ip-10-0-129-70.us-east-2.compute.internal preemptionPolicy: PreemptLowerPriority priority: 0 restartPolicy: Always schedulerName: default-scheduler securityContext: fsGroup: 1000670000 seLinuxOptions: level: s0:c26,c10 seccompProfile: type: RuntimeDefault serviceAccount: perses-operator serviceAccountName: perses-operator terminationGracePeriodSeconds: 30 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists - effect: NoExecute key: node.kubernetes.io/not-ready operator: Exists tolerationSeconds: 300 - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 300 - effect: NoSchedule key: node.kubernetes.io/memory-pressure operator: Exists volumes: - configMap: defaultMode: 420 items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt optional: true name: openshift-service-ca - name: apiservice-cert secret: defaultMode: 420 items: - key: tls.crt path: apiserver.crt - key: tls.key path: apiserver.key secretName: perses-operator-service-cert - name: webhook-cert secret: defaultMode: 420 items: - key: tls.crt path: tls.crt - key: tls.key path: tls.key secretName: perses-operator-service-cert - name: kube-api-access-qkttq projected: defaultMode: 420 sources: - serviceAccountToken: expirationSeconds: 3607 path: token - configMap: items: - key: ca.crt path: ca.crt name: kube-root-ca.crt - downwardAPI: items: - fieldRef: apiVersion: v1 fieldPath: metadata.namespace path: namespace - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt status: conditions: - lastProbeTime: null lastTransitionTime: "2026-10-31T00:04:39Z" observedGeneration: 1 status: "True" type: PodReadyToStartContainers - lastProbeTime: null lastTransitionTime: "2026-10-31T00:04:33Z" observedGeneration: 1 status: "True" type: Initialized - lastProbeTime: null lastTransitionTime: "2026-10-31T00:04:50Z" observedGeneration: 1 status: "True" type: Ready - lastProbeTime: null lastTransitionTime: "2026-10-31T00:04:50Z" observedGeneration: 1 status: "True" type: ContainersReady - lastProbeTime: null lastTransitionTime: "2026-10-31T00:04:33Z" observedGeneration: 1 status: "True" type: PodScheduled containerStatuses: - allocatedResources: cpu: 100m memory: 128Mi containerID: cri-o://17433e6bbec2c9e801189c0be17d9c2db5a5f73955c7de78011941c3ec1b71f2 image: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:076c0402447aa8520ba663068b5cbe0f9e02aacda03aa9df095f72f73fce5a25 imageID: registry.redhat.io/cluster-observability-operator/perses-rhel9-operator@sha256:076c0402447aa8520ba663068b5cbe0f9e02aacda03aa9df095f72f73fce5a25 lastState: {} name: perses-operator ready: true resources: limits: cpu: 500m memory: 512Mi requests: cpu: 100m memory: 128Mi restartCount: 0 started: true state: running: startedAt: "2026-10-31T00:04:38Z" user: linux: gid: 0 supplementalGroups: - 0 - 1000670000 uid: 1000670000 volumeMounts: - mountPath: /ca name: openshift-service-ca readOnly: true recursiveReadOnly: Disabled - mountPath: /apiserver.local.config/certificates name: apiservice-cert - mountPath: /tmp/k8s-webhook-server/serving-certs name: webhook-cert - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-qkttq readOnly: true recursiveReadOnly: Disabled hostIP: 10.0.129.70 hostIPs: - ip: 10.0.129.70 observedGeneration: 1 phase: Running podIP: 10.134.0.27 podIPs: - ip: 10.134.0.27 qosClass: Burstable startTime: "2026-10-31T00:04:33Z"