apiVersion: apps/v1 kind: StatefulSet metadata: annotations: prometheus-operator-input-hash: "11578433750412259000" creationTimestamp: "2025-10-11T10:52:57Z" generation: 2 labels: app.kubernetes.io/managed-by: observability-operator app.kubernetes.io/name: metric-storage app.kubernetes.io/part-of: metric-storage managed-by: prometheus-operator operator.prometheus.io/mode: server operator.prometheus.io/name: metric-storage operator.prometheus.io/shard: "0" name: prometheus-metric-storage namespace: openstack ownerReferences: - apiVersion: monitoring.rhobs/v1 blockOwnerDeletion: true controller: true kind: Prometheus name: metric-storage uid: 6b7e510b-3bac-44e7-b1a8-c5f8113f2907 resourceVersion: "39985" uid: 0a88e3c9-acd3-42b0-9c76-0a1b51917404 spec: persistentVolumeClaimRetentionPolicy: whenDeleted: Retain whenScaled: Retain podManagementPolicy: Parallel replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app.kubernetes.io/instance: metric-storage app.kubernetes.io/managed-by: prometheus-operator app.kubernetes.io/name: prometheus operator.prometheus.io/name: metric-storage operator.prometheus.io/shard: "0" prometheus: metric-storage serviceName: prometheus-operated template: metadata: annotations: kubectl.kubernetes.io/default-container: prometheus creationTimestamp: null labels: app.kubernetes.io/component: prometheus app.kubernetes.io/instance: metric-storage app.kubernetes.io/managed-by: prometheus-operator app.kubernetes.io/name: prometheus app.kubernetes.io/part-of: metric-storage app.kubernetes.io/version: 3.1.0 operator.prometheus.io/name: metric-storage operator.prometheus.io/shard: "0" prometheus: metric-storage spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/component: prometheus app.kubernetes.io/part-of: metric-storage topologyKey: kubernetes.io/hostname automountServiceAccountToken: true containers: - args: - --web.console.templates=/etc/prometheus/consoles - --web.console.libraries=/etc/prometheus/console_libraries - --config.file=/etc/prometheus/config_out/prometheus.env.yaml - --web.enable-lifecycle - --web.route-prefix=/ - --storage.tsdb.retention.time=24h - --storage.tsdb.path=/prometheus - --web.config.file=/etc/prometheus/web_config/web-config.yaml image: registry.redhat.io/cluster-observability-operator/prometheus-rhel9@sha256:a0a1d0e39de54c5b2786c2b82d0104f358b479135c069075ddd4f7cd76826c00 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 6 httpGet: path: /-/healthy port: web scheme: HTTPS periodSeconds: 5 successThreshold: 1 timeoutSeconds: 3 name: prometheus ports: - containerPort: 9090 name: web protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /-/ready port: web scheme: HTTPS periodSeconds: 5 successThreshold: 1 timeoutSeconds: 3 resources: {} securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true startupProbe: failureThreshold: 60 httpGet: path: /-/ready port: web scheme: HTTPS periodSeconds: 15 successThreshold: 1 timeoutSeconds: 3 terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/prometheus/config_out name: config-out readOnly: true - mountPath: /etc/prometheus/certs name: tls-assets readOnly: true - mountPath: /prometheus name: prometheus-metric-storage-db subPath: prometheus-db - mountPath: /etc/prometheus/secrets/combined-ca-bundle name: secret-combined-ca-bundle readOnly: true - mountPath: /etc/prometheus/rules/prometheus-metric-storage-rulefiles-0 name: prometheus-metric-storage-rulefiles-0 - mountPath: /etc/prometheus/web_config/web-config.yaml name: web-config readOnly: true subPath: web-config.yaml - mountPath: /etc/prometheus/web_config/secret/cert-metric-storage-prometheus-svc-key name: web-config-tls-secret-key-cert-metric-storage-promethe-dc638c2d readOnly: true - mountPath: /etc/prometheus/web_config/secret/cert-metric-storage-prometheus-svc-cert name: web-config-tls-secret-cert-cert-metric-storage-prometh-dc638c2d readOnly: true - args: - --listen-address=:8080 - --web-config-file=/etc/prometheus/web_config/web-config.yaml - --reload-url=https://localhost:9090/-/reload - --config-file=/etc/prometheus/config/prometheus.yaml.gz - --config-envsubst-file=/etc/prometheus/config_out/prometheus.env.yaml - --watched-dir=/etc/prometheus/rules/prometheus-metric-storage-rulefiles-0 command: - /bin/prometheus-config-reloader env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: SHARD value: "0" image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:8597c48fc71fc6ec8e87dbe40dace4dbb7b817c1039db608af76a0d90f7ac2d0 imagePullPolicy: IfNotPresent name: config-reloader ports: - containerPort: 8080 name: reloader-web protocol: TCP resources: limits: cpu: 10m memory: 50Mi requests: cpu: 10m memory: 50Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/prometheus/config name: config - mountPath: /etc/prometheus/config_out name: config-out - mountPath: /etc/prometheus/web_config/web-config.yaml name: web-config readOnly: true subPath: web-config.yaml - mountPath: /etc/prometheus/web_config/secret/cert-metric-storage-prometheus-svc-key name: web-config-tls-secret-key-cert-metric-storage-promethe-dc638c2d readOnly: true - mountPath: /etc/prometheus/web_config/secret/cert-metric-storage-prometheus-svc-cert name: web-config-tls-secret-cert-cert-metric-storage-prometh-dc638c2d readOnly: true - mountPath: /etc/prometheus/rules/prometheus-metric-storage-rulefiles-0 name: prometheus-metric-storage-rulefiles-0 - args: - sidecar - --prometheus.url=https://localhost:9090/ - --grpc-address=:10901 - --http-address=:10902 - --log.level=info - --prometheus.http-client-file=/etc/thanos/config/prometheus.http-client-file.yaml image: registry.redhat.io/cluster-observability-operator/thanos-rhel9@sha256:f3806c97420ec8ba91895ce7627df7612cccb927c05d7854377f45cdd6c924a8 imagePullPolicy: IfNotPresent name: thanos-sidecar ports: - containerPort: 10902 name: http protocol: TCP - containerPort: 10901 name: grpc protocol: TCP resources: {} securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/thanos/config name: thanos-prometheus-http-client-file dnsPolicy: ClusterFirst initContainers: - args: - --watch-interval=0 - --listen-address=:8081 - --config-file=/etc/prometheus/config/prometheus.yaml.gz - --config-envsubst-file=/etc/prometheus/config_out/prometheus.env.yaml - --watched-dir=/etc/prometheus/rules/prometheus-metric-storage-rulefiles-0 command: - /bin/prometheus-config-reloader env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: SHARD value: "0" image: registry.redhat.io/cluster-observability-operator/obo-prometheus-operator-prometheus-config-reloader-rhel9@sha256:8597c48fc71fc6ec8e87dbe40dace4dbb7b817c1039db608af76a0d90f7ac2d0 imagePullPolicy: IfNotPresent name: init-config-reloader ports: - containerPort: 8081 name: reloader-web protocol: TCP resources: limits: cpu: 10m memory: 50Mi requests: cpu: 10m memory: 50Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/prometheus/config name: config - mountPath: /etc/prometheus/config_out name: config-out - mountPath: /etc/prometheus/web_config/web-config.yaml name: web-config readOnly: true subPath: web-config.yaml - mountPath: /etc/prometheus/web_config/secret/cert-metric-storage-prometheus-svc-key name: web-config-tls-secret-key-cert-metric-storage-promethe-dc638c2d readOnly: true - mountPath: /etc/prometheus/web_config/secret/cert-metric-storage-prometheus-svc-cert name: web-config-tls-secret-cert-cert-metric-storage-prometh-dc638c2d readOnly: true - mountPath: /etc/prometheus/rules/prometheus-metric-storage-rulefiles-0 name: prometheus-metric-storage-rulefiles-0 restartPolicy: Always schedulerName: default-scheduler securityContext: fsGroup: 65534 runAsNonRoot: true runAsUser: 65534 serviceAccount: metric-storage-prometheus serviceAccountName: metric-storage-prometheus shareProcessNamespace: false terminationGracePeriodSeconds: 600 volumes: - name: config secret: defaultMode: 420 secretName: prometheus-metric-storage - name: tls-assets projected: defaultMode: 420 sources: - secret: name: prometheus-metric-storage-tls-assets-0 - emptyDir: medium: Memory name: config-out - name: secret-combined-ca-bundle secret: defaultMode: 420 secretName: combined-ca-bundle - configMap: defaultMode: 420 name: prometheus-metric-storage-rulefiles-0 name: prometheus-metric-storage-rulefiles-0 - name: web-config secret: defaultMode: 420 secretName: prometheus-metric-storage-web-config - name: web-config-tls-secret-key-cert-metric-storage-promethe-dc638c2d secret: defaultMode: 420 secretName: cert-metric-storage-prometheus-svc - name: web-config-tls-secret-cert-cert-metric-storage-prometh-dc638c2d secret: defaultMode: 420 secretName: cert-metric-storage-prometheus-svc - name: thanos-prometheus-http-client-file secret: defaultMode: 420 secretName: prometheus-metric-storage-thanos-prometheus-http-client-file updateStrategy: type: RollingUpdate volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: creationTimestamp: null name: prometheus-metric-storage-db spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: lvms-local-storage volumeMode: Filesystem status: phase: Pending status: availableReplicas: 1 collisionCount: 0 currentReplicas: 1 currentRevision: prometheus-metric-storage-776754b58d observedGeneration: 2 readyReplicas: 1 replicas: 1 updateRevision: prometheus-metric-storage-776754b58d updatedReplicas: 1