From 2abe6eeaf5cb41b86bb993c98d6b99220f6c23fd Mon Sep 17 00:00:00 2001 From: deimo72 Date: Sat, 5 Sep 2026 21:53:21 -0400 Subject: [PATCH] backup: snapshot of cluster-postgres namespace configuration --- cluster-postgres.yaml | 2254 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2254 insertions(+) create mode 100644 cluster-postgres.yaml diff --git a/cluster-postgres.yaml b/cluster-postgres.yaml new file mode 100644 index 0000000..ec2dc16 --- /dev/null +++ b/cluster-postgres.yaml @@ -0,0 +1,2254 @@ +apiVersion: v1 +items: +- apiVersion: postgresql.cnpg.io/v1 + kind: Cluster + metadata: + annotations: + kubectl.kubernetes.io/last-applied-configuration: | + {"apiVersion":"postgresql.cnpg.io/v1","kind":"Cluster","metadata":{"annotations":{},"name":"cluster-postgres","namespace":"cnpg-iscsi"},"spec":{"backup":{"barmanObjectStore":{"destinationPath":"s3://mi-bucket/","endpointURL":"https://s3.garage.mitac.duckdns.org","s3Credentials":{"accessKeyId":{"key":"ACCESS_KEY_ID","name":"garage-s3-creds"},"secretAccessKey":{"key":"ACCESS_SECRET_KEY","name":"garage-s3-creds"}},"wal":{"compression":"gzip","maxParallel":2}}},"env":[{"name":"AWS_ACCESS_KEY_ID","valueFrom":{"secretKeyRef":{"key":"ACCESS_KEY_ID","name":"garage-s3-creds"}}},{"name":"AWS_SECRET_ACCESS_KEY","valueFrom":{"secretKeyRef":{"key":"ACCESS_SECRET_KEY","name":"garage-s3-creds"}}},{"name":"AWS_S3_ADDRESSING_STYLE","value":"path"},{"name":"AWS_DEFAULT_REGION","value":"garage"}],"instances":3,"monitoring":{"enablePodMonitor":true},"storage":{"size":"3Gi","storageClass":"iscsi"}}} + creationTimestamp: "2025-12-01T20:28:23Z" + generation: 26 + name: cluster-postgres + namespace: cnpg-iscsi + resourceVersion: "62193975" + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + spec: + affinity: + podAntiAffinityType: preferred + backup: + barmanObjectStore: + destinationPath: s3://mi-bucket/ + endpointURL: https://s3.garage.mitac.duckdns.org + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + wal: + compression: gzip + maxParallel: 2 + target: prefer-standby + bootstrap: + initdb: + database: app + encoding: UTF8 + localeCType: C + localeCollate: C + owner: app + enablePDB: true + enableSuperuserAccess: false + env: + - name: AWS_ACCESS_KEY_ID + valueFrom: + secretKeyRef: + key: ACCESS_KEY_ID + name: garage-s3-creds + - name: AWS_SECRET_ACCESS_KEY + valueFrom: + secretKeyRef: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + - name: AWS_S3_ADDRESSING_STYLE + value: path + - name: AWS_DEFAULT_REGION + value: garage + failoverDelay: 0 + imageName: ghcr.io/cloudnative-pg/postgresql:17.5 + instances: 3 + logLevel: info + maxSyncReplicas: 0 + minSyncReplicas: 0 + monitoring: + customQueriesConfigMap: + - key: queries + name: cnpg-default-monitoring + disableDefaultQueries: false + enablePodMonitor: true + nodeMaintenanceWindow: + inProgress: false + reusePVC: false + postgresGID: 26 + postgresUID: 26 + postgresql: + parameters: + archive_mode: "on" + archive_timeout: 5min + dynamic_shared_memory_type: posix + full_page_writes: "on" + log_destination: csvlog + log_directory: /controller/log + log_filename: postgres + log_rotation_age: "0" + log_rotation_size: "0" + log_truncate_on_rotation: "false" + logging_collector: "on" + max_parallel_workers: "32" + max_replication_slots: "32" + max_worker_processes: "32" + shared_memory_type: mmap + shared_preload_libraries: "" + ssl_max_protocol_version: TLSv1.3 + ssl_min_protocol_version: TLSv1.3 + wal_keep_size: 512MB + wal_level: logical + wal_log_hints: "on" + wal_receiver_timeout: 5s + wal_sender_timeout: 5s + syncReplicaElectionConstraint: + enabled: false + primaryUpdateMethod: restart + primaryUpdateStrategy: unsupervised + probes: + liveness: + isolationCheck: + connectionTimeout: 1000 + enabled: true + requestTimeout: 1000 + replicationSlots: + highAvailability: + enabled: true + slotPrefix: _cnpg_ + synchronizeReplicas: + enabled: true + updateInterval: 30 + resources: {} + smartShutdownTimeout: 180 + startDelay: 3600 + stopDelay: 1800 + storage: + resizeInUseVolumes: true + size: 3Gi + storageClass: iscsi + switchoverDelay: 3600 + status: + availableArchitectures: + - goArch: amd64 + hash: 527e2e3b680dfba7f7578b98530f755f36156e7be00acda3318ef36fe4f4418f + - goArch: arm64 + hash: aaa74c6061f3fe30f230a664b4f6076bb886c9a89d4eba3293483525c5cff533 + certificates: + clientCASecret: cluster-postgres-ca + expirations: + cluster-postgres-ca: 2026-11-14 05:03:40 +0000 UTC + cluster-postgres-replication: 2026-11-14 05:03:41 +0000 UTC + cluster-postgres-server: 2026-11-14 05:03:40 +0000 UTC + replicationTLSSecret: cluster-postgres-replication + serverAltDNSNames: + - cluster-postgres-rw + - cluster-postgres-rw.cnpg-iscsi + - cluster-postgres-rw.cnpg-iscsi.svc + - cluster-postgres-rw.cnpg-iscsi.svc.cluster.local + - cluster-postgres-r + - cluster-postgres-r.cnpg-iscsi + - cluster-postgres-r.cnpg-iscsi.svc + - cluster-postgres-r.cnpg-iscsi.svc.cluster.local + - cluster-postgres-ro + - cluster-postgres-ro.cnpg-iscsi + - cluster-postgres-ro.cnpg-iscsi.svc + - cluster-postgres-ro.cnpg-iscsi.svc.cluster.local + serverCASecret: cluster-postgres-ca + serverTLSSecret: cluster-postgres-server + cloudNativePGCommitHash: a9696201f + cloudNativePGOperatorHash: 527e2e3b680dfba7f7578b98530f755f36156e7be00acda3318ef36fe4f4418f + conditions: + - lastTransitionTime: "2026-08-25T01:11:38Z" + message: A single, unique system ID was found across reporting instances. + reason: Unique + status: "True" + type: ConsistentSystemID + - lastTransitionTime: "2026-08-17T01:42:07Z" + message: Cluster is Ready + reason: ClusterIsReady + status: "True" + type: Ready + - lastTransitionTime: "2026-08-16T20:45:15Z" + message: Continuous archiving is working + reason: ContinuousArchivingSuccess + status: "True" + type: ContinuousArchiving + - lastTransitionTime: "2026-08-19T01:57:27Z" + message: Backup was successful + reason: LastBackupSucceeded + status: "True" + type: LastBackupSucceeded + configMapResourceVersion: + metrics: + cnpg-default-monitoring: "34296455" + currentPrimary: cluster-postgres-2 + currentPrimaryTimestamp: "2026-08-16T05:42:53.310392Z" + firstRecoverabilityPoint: "2026-04-09T04:39:01Z" + firstRecoverabilityPointByMethod: + barmanObjectStore: "2026-04-09T04:39:01Z" + healthyPVC: + - cluster-postgres-1 + - cluster-postgres-2 + - cluster-postgres-3 + image: ghcr.io/cloudnative-pg/postgresql:17.5 + instanceNames: + - cluster-postgres-1 + - cluster-postgres-2 + - cluster-postgres-3 + instances: 3 + instancesReportedState: + cluster-postgres-1: + ip: 10.42.0.76 + isPrimary: false + timeLineID: 15 + cluster-postgres-2: + ip: 10.42.0.81 + isPrimary: true + timeLineID: 15 + cluster-postgres-3: + ip: 10.42.0.82 + isPrimary: false + timeLineID: 15 + instancesStatus: + healthy: + - cluster-postgres-1 + - cluster-postgres-2 + - cluster-postgres-3 + lastFailedBackup: "2026-05-19T15:28:29Z" + lastSuccessfulBackup: "2026-08-19T01:57:24Z" + lastSuccessfulBackupByMethod: + barmanObjectStore: "2026-08-19T01:57:24Z" + latestGeneratedNode: 3 + managedRolesStatus: + byStatus: + not-managed: + - app + reconciled: + - user_app + reserved: + - postgres + - streaming_replica + passwordStatus: + user_app: + transactionID: 963 + pgDataImageInfo: + image: ghcr.io/cloudnative-pg/postgresql:17.5 + majorVersion: 17 + phase: Cluster in healthy state + poolerIntegrations: + pgBouncerIntegration: {} + pvcCount: 3 + readService: cluster-postgres-r + readyInstances: 3 + secretsResourceVersion: + applicationSecretVersion: "43327318" + clientCaSecretVersion: "59085042" + replicationSecretVersion: "59085048" + serverCaSecretVersion: "59085042" + serverSecretVersion: "59085045" + switchReplicaClusterStatus: {} + systemID: "7578991023722242070" + targetPrimary: cluster-postgres-2 + targetPrimaryTimestamp: "2026-08-16T08:33:36.281826Z" + timelineID: 15 + topology: + instances: + cluster-postgres-1: {} + cluster-postgres-2: {} + cluster-postgres-3: {} + nodesUsed: 1 + successfullyExtracted: true + writeService: cluster-postgres-rw +- apiVersion: postgresql.cnpg.io/v1 + kind: ScheduledBackup + metadata: + annotations: + kubectl.kubernetes.io/last-applied-configuration: | + {"apiVersion":"postgresql.cnpg.io/v1","kind":"ScheduledBackup","metadata":{"annotations":{},"name":"backup-diario-s3","namespace":"cnpg-iscsi"},"spec":{"backupOwnerReference":"self","cluster":{"name":"cluster-postgres"},"immediate":true,"method":"barmanObjectStore","schedule":"0 0 0,12 * * *"}} + creationTimestamp: "2026-02-04T13:34:24Z" + generation: 2 + name: backup-diario-s3 + namespace: cnpg-iscsi + resourceVersion: "53258321" + uid: dffc1e47-6467-4e31-ae68-73883c988574 + spec: + backupOwnerReference: self + cluster: + name: cluster-postgres + immediate: true + method: barmanObjectStore + schedule: 0 0 0,12 * * * + status: + lastCheckTime: "2026-04-19T12:02:01Z" + lastScheduleTime: "2026-04-19T12:00:00Z" + nextScheduleTime: "2026-04-20T00:00:00Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-09T12:00:00Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260409120000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "51802316" + uid: 41f1276f-2d6c-4eaf-89f6-e4c16fb3fd3a + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260409T120022 + backupName: backup-20260409120010 + beginLSN: 1/18000ED0 + beginWal: 0000000B0000000100000018 + destinationPath: s3://mi-bucket/ + endLSN: 1/1A000000 + endWal: 0000000B000000010000001A + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://97d4a13128473be33ce048c152715b094e73781701d4dd33fd2704a6ac57b7ca + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-09T12:00:22Z" + stoppedAt: "2026-04-09T12:00:26Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-10T00:00:02Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260410000000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "51903262" + uid: 41bd3b7f-ea71-45c2-908d-924d3877866e + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260410T000123 + backupName: backup-20260410000046 + beginLSN: 1/18000ED0 + beginWal: 0000000B0000000100000018 + destinationPath: s3://mi-bucket/ + endLSN: 1/1A000000 + endWal: 0000000B000000010000001A + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://97d4a13128473be33ce048c152715b094e73781701d4dd33fd2704a6ac57b7ca + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-10T00:01:23Z" + stoppedAt: "2026-04-10T00:01:30Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-10T12:00:02Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260410120000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "52005732" + uid: 4bde1ff0-a6a4-43da-a8b7-0705f3820199 + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260410T120102 + backupName: backup-20260410120042 + beginLSN: 1/18000ED0 + beginWal: 0000000B0000000100000018 + destinationPath: s3://mi-bucket/ + endLSN: 1/1A000000 + endWal: 0000000B000000010000001A + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://97d4a13128473be33ce048c152715b094e73781701d4dd33fd2704a6ac57b7ca + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-10T12:01:02Z" + stoppedAt: "2026-04-10T12:01:07Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-11T00:00:23Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260411000000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "52105937" + uid: 3b609b67-404d-410e-a1a2-ef26ec8a46ce + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260411T000255 + backupName: backup-20260411000153 + beginLSN: 1/18000ED0 + beginWal: 0000000B0000000100000018 + destinationPath: s3://mi-bucket/ + endLSN: 1/1A000000 + endWal: 0000000B000000010000001A + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://97d4a13128473be33ce048c152715b094e73781701d4dd33fd2704a6ac57b7ca + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-11T00:02:55Z" + stoppedAt: "2026-04-11T00:03:00Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-11T12:00:03Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260411120000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "52198493" + uid: b813cd4c-5c77-4655-9654-eb782afa0b5f + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260411T120017 + backupName: backup-20260411120006 + beginLSN: 1/1B000FD0 + beginWal: 0000000B000000010000001B + destinationPath: s3://mi-bucket/ + endLSN: 1/1D000000 + endWal: 0000000B000000010000001D + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://97d4a13128473be33ce048c152715b094e73781701d4dd33fd2704a6ac57b7ca + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-11T12:00:17Z" + stoppedAt: "2026-04-11T12:00:21Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-12T00:00:06Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260412000000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "52300082" + uid: 17f60d69-4935-42cd-9d7d-34f6cceb2397 + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260412T000126 + backupName: backup-20260412000034 + beginLSN: 1/1B000FD0 + beginWal: 0000000B000000010000001B + destinationPath: s3://mi-bucket/ + endLSN: 1/1D000000 + endWal: 0000000B000000010000001D + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://97d4a13128473be33ce048c152715b094e73781701d4dd33fd2704a6ac57b7ca + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-12T00:01:26Z" + stoppedAt: "2026-04-12T00:01:35Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-12T12:00:00Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260412120000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "52399607" + uid: 2d38ac2e-ae41-4b3f-8535-57bed3cbfdad + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260412T120019 + backupName: backup-20260412120006 + beginLSN: 1/1B000FD0 + beginWal: 0000000B000000010000001B + destinationPath: s3://mi-bucket/ + endLSN: 1/1D000000 + endWal: 0000000B000000010000001D + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://97d4a13128473be33ce048c152715b094e73781701d4dd33fd2704a6ac57b7ca + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-12T12:00:19Z" + stoppedAt: "2026-04-12T12:00:23Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-13T01:57:13Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260413000000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "52612203" + uid: 9bffb2e0-4f72-479d-a0f1-b2476f013588 + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260414T010834 + backupName: backup-20260414010733 + beginLSN: 1/1F000060 + beginWal: 0000000B000000010000001F + destinationPath: s3://mi-bucket/ + endLSN: 1/1F000158 + endWal: 0000000B000000010000001F + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://aacf4b0f1edd26bb10209bdef061a110d649b793ff0e83327ca10adc3da32051 + podName: cluster-postgres-3 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-14T01:08:35Z" + stoppedAt: "2026-04-14T01:08:38Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-13T12:00:00Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260413120000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "52612767" + uid: fd50fce3-0e3b-4791-af8e-cc5b049ae3c0 + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260414T011025 + backupName: backup-20260414010920 + beginLSN: 1/1F000060 + beginWal: 0000000B000000010000001F + destinationPath: s3://mi-bucket/ + endLSN: 1/200000C8 + endWal: 0000000B0000000100000020 + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://58db94ca6f4cbf2b1e6f6c9e719817cc4d7150082e815e229c6d58c0d7068f40 + podName: cluster-postgres-2 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-14T01:10:25Z" + stoppedAt: "2026-04-14T01:10:29Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-14T01:05:49Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260414000000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "52613399" + uid: 3a95e45f-1974-4c95-9c53-1898251dbce6 + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260414T011455 + backupName: backup-20260414011454 + beginLSN: 1/200000C8 + beginWal: 0000000B0000000100000020 + destinationPath: s3://mi-bucket/ + endLSN: 1/20000198 + endWal: 0000000B0000000100000020 + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://d9a90dc05e96e0c7bf48f2fc5ee198c2d46cad7680069d002ebd411be6c1c16b + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-14T01:14:55Z" + stoppedAt: "2026-04-14T01:14:58Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-14T12:00:00Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260414120000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "52707050" + uid: d13e9e84-220c-4fec-a52b-8145c96a2a50 + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260414T120012 + backupName: backup-20260414120004 + beginLSN: 1/200000C8 + beginWal: 0000000B0000000100000020 + destinationPath: s3://mi-bucket/ + endLSN: 1/21000060 + endWal: 0000000B0000000100000021 + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://d9a90dc05e96e0c7bf48f2fc5ee198c2d46cad7680069d002ebd411be6c1c16b + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-14T12:00:12Z" + stoppedAt: "2026-04-14T12:00:17Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-15T00:00:05Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260415000000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "52808830" + uid: 3f371c96-3048-48c0-a77c-ebe2d81ef91f + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260415T000232 + backupName: backup-20260415000141 + beginLSN: 1/200000C8 + beginWal: 0000000B0000000100000020 + destinationPath: s3://mi-bucket/ + endLSN: 1/21000060 + endWal: 0000000B0000000100000021 + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://d9a90dc05e96e0c7bf48f2fc5ee198c2d46cad7680069d002ebd411be6c1c16b + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-15T00:02:33Z" + stoppedAt: "2026-04-15T00:02:39Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-15T12:00:00Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260415120000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "52903534" + uid: 44aaae8a-efcc-47fe-bbf0-36717b52200c + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260415T120041 + backupName: backup-20260415120007 + beginLSN: 1/200000C8 + beginWal: 0000000B0000000100000020 + destinationPath: s3://mi-bucket/ + endLSN: 1/21000060 + endWal: 0000000B0000000100000021 + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://d9a90dc05e96e0c7bf48f2fc5ee198c2d46cad7680069d002ebd411be6c1c16b + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-15T12:00:41Z" + stoppedAt: "2026-04-15T12:00:45Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-16T00:09:41Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260416000000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "52970967" + uid: 8b0d5ec7-520d-45a2-9fe9-faa81aeeee57 + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260416T001436 + backupName: backup-20260416001214 + beginLSN: 1/26000060 + beginWal: 0000000C0000000100000026 + destinationPath: s3://mi-bucket/ + endLSN: 1/26000158 + endWal: 0000000C0000000100000026 + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://034c0230772bccee8a55c123e72bb7617ad07b68867f206d9b23ba0153e6bd4d + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-04-16T00:14:36Z" + stoppedAt: "2026-04-16T00:14:43Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-17T06:19:32Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260417000000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "54689941" + uid: a33e7170-2500-42c2-b5d8-35082a1431f5 + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260519T151838 + backupName: backup-20260519151819 + beginLSN: 1/4D001F08 + beginWal: 0000000D000000010000004D + destinationPath: s3://mi-bucket/ + endLSN: 1/4F000000 + endWal: 0000000D000000010000004F + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://0ce4f8a1751387ffb54402ab0fdcb69b91b5a67d37320cdb86639c24025b6de3 + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-05-19T15:18:39Z" + stoppedAt: "2026-05-19T15:18:42Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-19T05:16:58Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260417120000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "54690019" + uid: 6fdfa6ef-85a9-4a2c-8b0f-bab5f2a92f41 + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260519T151856 + backupName: backup-20260519151855 + beginLSN: 1/4D001F08 + beginWal: 0000000D000000010000004D + destinationPath: s3://mi-bucket/ + endLSN: 1/4F000000 + endWal: 0000000D000000010000004F + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://0ce4f8a1751387ffb54402ab0fdcb69b91b5a67d37320cdb86639c24025b6de3 + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-05-19T15:18:56Z" + stoppedAt: "2026-05-19T15:18:58Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + creationTimestamp: "2026-04-21T16:16:46Z" + generation: 1 + labels: + cnpg.io/cluster: cluster-postgres + cnpg.io/immediateBackup: "false" + cnpg.io/scheduled-backup: backup-diario-s3 + name: backup-diario-s3-20260420000000 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: ScheduledBackup + name: backup-diario-s3 + uid: dffc1e47-6467-4e31-ae68-73883c988574 + resourceVersion: "54691963" + uid: fd420308-f7a1-420a-b81e-f9ab8c1ca446 + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260519T153652 + backupName: backup-20260519153509 + beginLSN: 1/4D001F08 + beginWal: 0000000D000000010000004D + destinationPath: s3://mi-bucket/ + endLSN: 1/4F000000 + endWal: 0000000D000000010000004F + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://0ce4f8a1751387ffb54402ab0fdcb69b91b5a67d37320cdb86639c24025b6de3 + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-05-19T15:36:53Z" + stoppedAt: "2026-05-19T15:36:56Z" +- apiVersion: postgresql.cnpg.io/v1 + kind: Backup + metadata: + annotations: + kubectl.kubernetes.io/last-applied-configuration: | + {"apiVersion":"postgresql.cnpg.io/v1","kind":"Backup","metadata":{"annotations":{},"name":"backup-prueba-manual","namespace":"cnpg-iscsi"},"spec":{"cluster":{"name":"cluster-postgres"}}} + creationTimestamp: "2026-08-19T01:57:16Z" + generation: 1 + name: backup-prueba-manual + namespace: cnpg-iscsi + resourceVersion: "59515658" + uid: c95a4140-f879-4b56-8f30-a56f251e4245 + spec: + cluster: + name: cluster-postgres + method: barmanObjectStore + status: + backupId: 20260819T015720 + backupName: backup-20260819015717 + beginLSN: 1/B5000DD0 + beginWal: 0000000F00000001000000B5 + destinationPath: s3://mi-bucket/ + endLSN: 1/B7000000 + endWal: 0000000F00000001000000B7 + endpointURL: https://s3.garage.mitac.duckdns.org + instanceID: + ContainerID: containerd://d7461094c001037f72d475d9289631736877c1f20496584cb6374d2a19cffc6b + podName: cluster-postgres-1 + majorVersion: 17 + method: barmanObjectStore + phase: completed + s3Credentials: + accessKeyId: + key: ACCESS_KEY_ID + name: garage-s3-creds + secretAccessKey: + key: ACCESS_SECRET_KEY + name: garage-s3-creds + serverName: cluster-postgres + startedAt: "2026-08-19T01:57:20Z" + stoppedAt: "2026-08-19T01:57:24Z" +- apiVersion: v1 + data: + ACCESS_KEY_ID: QUtJQVRHVVo0VjVMUjVDSUhJRlY= + ACCESS_SECRET_KEY: TG1zTVlUcmFtNW14cHYyNGxXOXBJYVNEcUkzOWJzeExHMENDYnczVg== + kind: Secret + metadata: + creationTimestamp: "2026-02-03T21:48:33Z" + name: aws-s3-creds + namespace: cnpg-iscsi + resourceVersion: "43103267" + uid: bbde20c5-61fb-4fb8-ba6b-ac282bf6482e + type: Opaque +- apiVersion: v1 + data: + dbname: YXBw + fqdn-jdbc-uri: amRiYzpwb3N0Z3Jlc3FsOi8vY2x1c3Rlci1wb3N0Z3Jlcy1ydy5jbnBnLWlzY3NpLnN2Yy5jbHVzdGVyLmxvY2FsOjU0MzIvYXBwP3Bhc3N3b3JkPXhiYndTNkVOWUtFaWJHRm9HUDhCNDR1YjdqRENzQUxmUVY4SWdHaEtVb080V0tWb0QyWkVhcXI3WlpEem02RU0mdXNlcj1hcHA= + fqdn-uri: cG9zdGdyZXNxbDovL2FwcDp4YmJ3UzZFTllLRWliR0ZvR1A4QjQ0dWI3akRDc0FMZlFWOElnR2hLVW9PNFdLVm9EMlpFYXFyN1paRHptNkVNQGNsdXN0ZXItcG9zdGdyZXMtcncuY25wZy1pc2NzaS5zdmMuY2x1c3Rlci5sb2NhbDo1NDMyL2FwcA== + host: Y2x1c3Rlci1wb3N0Z3Jlcy1ydw== + jdbc-uri: amRiYzpwb3N0Z3Jlc3FsOi8vY2x1c3Rlci1wb3N0Z3Jlcy1ydy5jbnBnLWlzY3NpOjU0MzIvYXBwP3Bhc3N3b3JkPXhiYndTNkVOWUtFaWJHRm9HUDhCNDR1YjdqRENzQUxmUVY4SWdHaEtVb080V0tWb0QyWkVhcXI3WlpEem02RU0mdXNlcj1hcHA= + password: eGJid1M2RU5ZS0VpYkdGb0dQOEI0NHViN2pEQ3NBTGZRVjhJZ0doS1VvTzRXS1ZvRDJaRWFxcjdaWkR6bTZFTQ== + pgpass: Y2x1c3Rlci1wb3N0Z3Jlcy1ydzo1NDMyOmFwcDphcHA6eGJid1M2RU5ZS0VpYkdGb0dQOEI0NHViN2pEQ3NBTGZRVjhJZ0doS1VvTzRXS1ZvRDJaRWFxcjdaWkR6bTZFTQo= + port: NTQzMg== + uri: cG9zdGdyZXNxbDovL2FwcDp4YmJ3UzZFTllLRWliR0ZvR1A4QjQ0dWI3akRDc0FMZlFWOElnR2hLVW9PNFdLVm9EMlpFYXFyN1paRHptNkVNQGNsdXN0ZXItcG9zdGdyZXMtcncuY25wZy1pc2NzaTo1NDMyL2FwcA== + user: YXBw + username: YXBw + kind: Secret + metadata: + annotations: + cnpg.io/operatorVersion: 1.28.0 + creationTimestamp: "2025-12-01T20:28:23Z" + labels: + app.kubernetes.io/managed-by: cloudnative-pg + cnpg.io/cluster: cluster-postgres + cnpg.io/reload: "true" + cnpg.io/userType: app + name: cluster-postgres-app + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "43327318" + uid: 6777a61e-5e0c-4fe3-9c04-6f294e55b8c5 + type: kubernetes.io/basic-auth +- apiVersion: v1 + data: + ACCESS_KEY_ID: R0s3MTYxNTNiNWRmZWUyNTg3MGIxNzFiYjE= + ACCESS_SECRET_KEY: ZmRhY2UyYjdhZGUzMGNjZmE3MzBhM2E5ODQ5YjFmMzQyYTcwZmMzMGZkN2Q0NmYyN2UyZjdkOWIwODkyNjY1Yw== + kind: Secret + metadata: + creationTimestamp: "2026-04-09T02:53:05Z" + name: garage-s3-creds + namespace: cnpg-iscsi + resourceVersion: "51722674" + uid: 023f8202-deb9-48a8-9838-5f80d8305d15 + type: Opaque +- apiVersion: v1 + data: + ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJvVENDQVVhZ0F3SUJBZ0lRTVRtcnhkdElFVTA3bFgrL1R6aUJ5VEFLQmdncWhrak9QUVFEQWpBd01STXcKRVFZRFZRUUxFd3BqYm5CbkxXbHpZM05wTVJrd0Z3WURWUVFERXhCamJIVnpkR1Z5TFhCdmMzUm5jbVZ6TUI0WApEVEkyTURneE5qQTFNRE0wTUZvWERUSTJNVEV4TkRBMU1ETTBNRm93TURFVE1CRUdBMVVFQ3hNS1kyNXdaeTFwCmMyTnphVEVaTUJjR0ExVUVBeE1RWTJ4MWMzUmxjaTF3YjNOMFozSmxjekJaTUJNR0J5cUdTTTQ5QWdFR0NDcUcKU000OUF3RUhBMElBQklaZ0E3V0ZxNXRTcTlqUE45b2FmVG85TU8vV0JHS2dWQ3QzbXZFUkE2NHM3TjM1OXhoaQplUGpaV0ppSE5WQ2NBclFNUHdPNWt0bDdZWDRXTjI2SWJYT2pRakJBTUE0R0ExVWREd0VCL3dRRUF3SUNCREFQCkJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJTNHJ5L2Rpb0t2a0ZocDBVV2liNFNpVnc1RjBEQUsKQmdncWhrak9QUVFEQWdOSkFEQkdBaUVBbllScjAwQkhXSTQ5RkdtYnNtVk1COGpjNUhqMC94WEZEd05iYkw1ZApvL0lDSVFDY0pUakIyTytNcy9Hd2pEd2YzUHVKTWM5S0JvaTd6dkZCZ0MxeUluNVBXdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K + ca.key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSU9KWHFmMlA5Z2hXWGI2dHNucHJzOGdLMXFCelM0dkhhK05OTmNqeW1nMUhvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFaG1BRHRZV3JtMUtyMk04MzJocDlPajB3NzlZRVlxQlVLM2VhOFJFRHJpenMzZm4zR0dKNAorTmxZbUljMVVKd0N0QXcvQTdtUzJYdGhmaFkzYm9odGN3PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo= + kind: Secret + metadata: + creationTimestamp: "2025-12-01T20:28:23Z" + name: cluster-postgres-ca + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "59085042" + uid: d4a080f2-eb98-41db-99e0-6eb881c81170 + type: Opaque +- apiVersion: v1 + data: + tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURVekNDQXZxZ0F3SUJBZ0lRU25MYkhaYnEyRFJkMC92c1VtYmRWVEFLQmdncWhrak9QUVFEQWpBd01STXcKRVFZRFZRUUxFd3BqYm5CbkxXbHpZM05wTVJrd0Z3WURWUVFERXhCamJIVnpkR1Z5TFhCdmMzUm5jbVZ6TUI0WApEVEkyTURneE5qQTFNRE0wTUZvWERUSTJNVEV4TkRBMU1ETTBNRm93SGpFY01Cb0dBMVVFQXhNVFkyeDFjM1JsCmNpMXdiM04wWjNKbGN5MXlkekJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCTVpZZ3NRUS85R0sKZjNGMFc2b2gzb1U2bHZ6RTJJWVVBVjhsa3F1OUNFbStvODRWZGprd1pmaVJEemFXTUZZYzVuanBGQnpjUFFKNwpqQ1A2MUVudVpUT2pnZ0lHTUlJQ0FqQU9CZ05WSFE4QkFmOEVCQU1DQTZnd0V3WURWUjBsQkF3d0NnWUlLd1lCCkJRVUhBd0V3REFZRFZSMFRBUUgvQkFJd0FEQWZCZ05WSFNNRUdEQVdnQlM0cnkvZGlvS3ZrRmhwMFVXaWI0U2kKVnc1RjBEQ0NBYW9HQTFVZEVRU0NBYUV3Z2dHZGdoSmpiSFZ6ZEdWeUxYQnZjM1JuY21WekxYS0NIV05zZFhOMApaWEl0Y0c5emRHZHlaWE10Y2k1amJuQm5MV2x6WTNOcGdpRmpiSFZ6ZEdWeUxYQnZjM1JuY21WekxYSXVZMjV3Clp5MXBjMk56YVM1emRtT0NMMk5zZFhOMFpYSXRjRzl6ZEdkeVpYTXRjaTVqYm5CbkxXbHpZM05wTG5OMll5NWoKYkhWemRHVnlMbXh2WTJGc2doTmpiSFZ6ZEdWeUxYQnZjM1JuY21WekxYSnZnaDVqYkhWemRHVnlMWEJ2YzNSbgpjbVZ6TFhKdkxtTnVjR2N0YVhOamMybUNJbU5zZFhOMFpYSXRjRzl6ZEdkeVpYTXRjbTh1WTI1d1p5MXBjMk56CmFTNXpkbU9DTUdOc2RYTjBaWEl0Y0c5emRHZHlaWE10Y204dVkyNXdaeTFwYzJOemFTNXpkbU11WTJ4MWMzUmwKY2k1c2IyTmhiSUlUWTJ4MWMzUmxjaTF3YjNOMFozSmxjeTF5ZDRJZVkyeDFjM1JsY2kxd2IzTjBaM0psY3kxeQpkeTVqYm5CbkxXbHpZM05wZ2lKamJIVnpkR1Z5TFhCdmMzUm5jbVZ6TFhKM0xtTnVjR2N0YVhOamMya3VjM1pqCmdqQmpiSFZ6ZEdWeUxYQnZjM1JuY21WekxYSjNMbU51Y0djdGFYTmpjMmt1YzNaakxtTnNkWE4wWlhJdWJHOWoKWVd3d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ2RFeHNPRlJJWGFNQkJRSDNOQ2VQUjhuTjhrMmJFemxtYnZoNQpabkxoYXZFQ0lIQTBaZzFGejBCcU1PdHgwUHZMcWtXUWpwbmZuWlFoaktzTE1rbmlFNWR2Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K + tls.key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSU5aY1d1cXc0bWZObTFuKzhsQys1N2RLOGpEUDBVSWRoZm0vc0FRMGpNUk9vQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFeGxpQ3hCRC8wWXAvY1hSYnFpSGVoVHFXL01UWWhoUUJYeVdTcTcwSVNiNmp6aFYyT1RCbAorSkVQTnBZd1Zoem1lT2tVSE53OUFudU1JL3JVU2U1bE13PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo= + kind: Secret + metadata: + creationTimestamp: "2025-12-01T20:28:23Z" + name: cluster-postgres-server + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "59085045" + uid: 5449237a-d7cb-4c2d-85a2-2a74a9836ee4 + type: kubernetes.io/tls +- apiVersion: v1 + data: + tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJvVENDQVVhZ0F3SUJBZ0lRZWlCaWFWYng3YnFVMEo2TjVzR1N0VEFLQmdncWhrak9QUVFEQWpBd01STXcKRVFZRFZRUUxFd3BqYm5CbkxXbHpZM05wTVJrd0Z3WURWUVFERXhCamJIVnpkR1Z5TFhCdmMzUm5jbVZ6TUI0WApEVEkyTURneE5qQTFNRE0wTVZvWERUSTJNVEV4TkRBMU1ETTBNVm93SERFYU1CZ0dBMVVFQXd3UmMzUnlaV0Z0CmFXNW5YM0psY0d4cFkyRXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU3ZTSU0wSFh1QzFQenkKMzlzenEvazRpVWpxc3NtRWc0Y1pvdkppcXBFMWN2djBsREhKV05BNHgwaVEzMkZjV2hyOFNIazRjYVNpNVhXTwpaaW5PYnNiUG8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0E0Z3dFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3CkRBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JTNHJ5L2Rpb0t2a0ZocDBVV2liNFNpVnc1RjBEQUsKQmdncWhrak9QUVFEQWdOSkFEQkdBaUVBOUhJbTZtT1VmaXQwNG1oY09DWS9BbjhTSkNXTXRjK3dtRDhyUDA1cQpGOWdDSVFDaG1ZSENuekxaNWxFVXlicndiaS9GZ0xadno0WFBZOWwrUlNodlV1WVJiUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K + tls.key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUp3Y1NjTkhOM0JHRVdNazdMejBiWmdUdS9zeW83bVZIVXVDaG1nWVRUWFJvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFcjBpRE5CMTdndFQ4OHQvYk02djVPSWxJNnJMSmhJT0hHYUx5WXFxUk5YTDc5SlF4eVZqUQpPTWRJa045aFhGb2EvRWg1T0hHa291VjFqbVlwem03R3p3PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo= + kind: Secret + metadata: + creationTimestamp: "2025-12-01T20:28:23Z" + name: cluster-postgres-replication + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "59085048" + uid: 7e381c07-7f4c-4243-baba-2a90aaf67a82 + type: kubernetes.io/tls +- apiVersion: v1 + kind: Service + metadata: + annotations: + cnpg.io/operatorVersion: 1.28.0 + creationTimestamp: "2025-12-01T20:28:23Z" + labels: + app.kubernetes.io/component: database + app.kubernetes.io/instance: cluster-postgres + app.kubernetes.io/managed-by: cloudnative-pg + app.kubernetes.io/name: postgresql + app.kubernetes.io/version: "17" + cnpg.io/cluster: cluster-postgres + name: cluster-postgres-r + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "43327319" + uid: cc6b618a-4f15-4419-80fe-24995f2cac2e + spec: + clusterIP: 10.43.240.6 + clusterIPs: + - 10.43.240.6 + internalTrafficPolicy: Cluster + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack + ports: + - name: postgres + port: 5432 + protocol: TCP + targetPort: 5432 + selector: + cnpg.io/cluster: cluster-postgres + cnpg.io/podRole: instance + sessionAffinity: None + type: ClusterIP + status: + loadBalancer: {} +- apiVersion: v1 + kind: Service + metadata: + annotations: + cnpg.io/operatorVersion: 1.28.0 + creationTimestamp: "2025-12-01T20:28:23Z" + labels: + app.kubernetes.io/component: database + app.kubernetes.io/instance: cluster-postgres + app.kubernetes.io/managed-by: cloudnative-pg + app.kubernetes.io/name: postgresql + app.kubernetes.io/version: "17" + cnpg.io/cluster: cluster-postgres + name: cluster-postgres-ro + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "43327322" + uid: 2f7e88eb-d639-4b56-8b4f-e6490bd5d2bf + spec: + clusterIP: 10.43.6.201 + clusterIPs: + - 10.43.6.201 + internalTrafficPolicy: Cluster + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack + ports: + - name: postgres + port: 5432 + protocol: TCP + targetPort: 5432 + selector: + cnpg.io/cluster: cluster-postgres + cnpg.io/instanceRole: replica + sessionAffinity: None + type: ClusterIP + status: + loadBalancer: {} +- apiVersion: v1 + kind: Service + metadata: + annotations: + cnpg.io/operatorVersion: 1.28.0 + creationTimestamp: "2025-12-01T20:28:23Z" + labels: + app.kubernetes.io/component: database + app.kubernetes.io/instance: cluster-postgres + app.kubernetes.io/managed-by: cloudnative-pg + app.kubernetes.io/name: postgresql + app.kubernetes.io/version: "17" + cnpg.io/cluster: cluster-postgres + name: cluster-postgres-rw + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "43327325" + uid: 51ed0662-c262-4066-97ea-2d2bcd1cf220 + spec: + clusterIP: 10.43.205.69 + clusterIPs: + - 10.43.205.69 + internalTrafficPolicy: Cluster + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack + ports: + - name: postgres + port: 5432 + protocol: TCP + targetPort: 5432 + selector: + cnpg.io/cluster: cluster-postgres + cnpg.io/instanceRole: primary + sessionAffinity: None + type: ClusterIP + status: + loadBalancer: {} +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + annotations: + cnpg.io/nodeSerial: "3" + cnpg.io/operatorVersion: 1.28.0 + cnpg.io/pvcStatus: ready + pv.kubernetes.io/bind-completed: "yes" + pv.kubernetes.io/bound-by-controller: "yes" + volume.beta.kubernetes.io/storage-provisioner: csi.san.synology.com + volume.kubernetes.io/storage-provisioner: csi.san.synology.com + creationTimestamp: "2025-12-01T20:41:03Z" + finalizers: + - kubernetes.io/pvc-protection + labels: + app.kubernetes.io/component: database + app.kubernetes.io/managed-by: cloudnative-pg + app.kubernetes.io/name: postgresql + cnpg.io/cluster: cluster-postgres + cnpg.io/instanceName: cluster-postgres-3 + cnpg.io/instanceRole: replica + cnpg.io/pvcRole: PG_DATA + role: replica + name: cluster-postgres-3 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "52970857" + uid: 845b3af8-f26a-4a02-90b4-045948e829ef + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 3Gi + storageClassName: iscsi + volumeMode: Filesystem + volumeName: pvc-845b3af8-f26a-4a02-90b4-045948e829ef + status: + accessModes: + - ReadWriteOnce + capacity: + storage: 3Gi + phase: Bound +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + annotations: + cnpg.io/nodeSerial: "1" + cnpg.io/operatorVersion: 1.28.0 + cnpg.io/pvcStatus: ready + pv.kubernetes.io/bind-completed: "yes" + pv.kubernetes.io/bound-by-controller: "yes" + volume.beta.kubernetes.io/storage-provisioner: csi.san.synology.com + volume.kubernetes.io/storage-provisioner: csi.san.synology.com + creationTimestamp: "2025-12-01T20:28:26Z" + finalizers: + - kubernetes.io/pvc-protection + labels: + app.kubernetes.io/component: database + app.kubernetes.io/managed-by: cloudnative-pg + app.kubernetes.io/name: postgresql + cnpg.io/cluster: cluster-postgres + cnpg.io/instanceName: cluster-postgres-1 + cnpg.io/instanceRole: replica + cnpg.io/pvcRole: PG_DATA + role: replica + name: cluster-postgres-1 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "59087944" + uid: 8de5041e-6192-4985-b80d-c4bf7391ae48 + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 3Gi + storageClassName: iscsi + volumeMode: Filesystem + volumeName: pvc-8de5041e-6192-4985-b80d-c4bf7391ae48 + status: + accessModes: + - ReadWriteOnce + capacity: + storage: 3Gi + phase: Bound +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + annotations: + cnpg.io/nodeSerial: "2" + cnpg.io/operatorVersion: 1.28.0 + cnpg.io/pvcStatus: ready + pv.kubernetes.io/bind-completed: "yes" + pv.kubernetes.io/bound-by-controller: "yes" + volume.beta.kubernetes.io/storage-provisioner: csi.san.synology.com + volume.kubernetes.io/storage-provisioner: csi.san.synology.com + creationTimestamp: "2025-12-01T20:37:37Z" + finalizers: + - kubernetes.io/pvc-protection + labels: + app.kubernetes.io/component: database + app.kubernetes.io/managed-by: cloudnative-pg + app.kubernetes.io/name: postgresql + cnpg.io/cluster: cluster-postgres + cnpg.io/instanceName: cluster-postgres-2 + cnpg.io/instanceRole: primary + cnpg.io/pvcRole: PG_DATA + role: primary + name: cluster-postgres-2 + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "59087946" + uid: a2ecaef8-7290-4064-84bb-443c2c34e7ac + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 3Gi + storageClassName: iscsi + volumeMode: Filesystem + volumeName: pvc-a2ecaef8-7290-4064-84bb-443c2c34e7ac + status: + accessModes: + - ReadWriteOnce + capacity: + storage: 3Gi + phase: Bound +- apiVersion: v1 + data: + ca.crt: | + -----BEGIN CERTIFICATE----- + MIIBeDCCAR2gAwIBAgIBADAKBggqhkjOPQQDAjAjMSEwHwYDVQQDDBhrM3Mtc2Vy + dmVyLWNhQDE3MTQwMTk0MDYwHhcNMjQwNDI1MDQzMDA2WhcNMzQwNDIzMDQzMDA2 + WjAjMSEwHwYDVQQDDBhrM3Mtc2VydmVyLWNhQDE3MTQwMTk0MDYwWTATBgcqhkjO + PQIBBggqhkjOPQMBBwNCAARzM5ImFFlMKddxr18L6ajI4Vut0+v9lAld5URYYyIi + MjriNixzPyzO88TmU+EiJMVtp0JLZP3K1/OEEDhUA+gTo0IwQDAOBgNVHQ8BAf8E + BAMCAqQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUnUcH2jhUrjNdtX2yeD15 + qX/jvgwwCgYIKoZIzj0EAwIDSQAwRgIhAMrSF1dVLa+pFVP0XjY0QI0aF5X77hM7 + n9Pgm5GvduwfAiEAsRrDwnYC5mBK4JCaGRbnXZe0lleJOuGEdVty1V7m36I= + -----END CERTIFICATE----- + kind: ConfigMap + metadata: + annotations: + kubernetes.io/description: Contains a CA bundle that can be used to verify the + kube-apiserver when using internal endpoints such as the internal service + IP or kubernetes.default.svc. No other usage is guaranteed across distributions + of Kubernetes clusters. + creationTimestamp: "2025-10-28T03:06:35Z" + name: kube-root-ca.crt + namespace: cnpg-iscsi + resourceVersion: "34296419" + uid: 64cd1ecd-21f6-410d-9db3-589dd9360bf2 +- apiVersion: v1 + data: + queries: | + backends: + query: | + SELECT sa.datname + , sa.usename + , sa.application_name + , states.state + , COALESCE(sa.count, 0) AS total + , COALESCE(sa.max_tx_secs, 0) AS max_tx_duration_seconds + FROM ( VALUES ('active') + , ('idle') + , ('idle in transaction') + , ('idle in transaction (aborted)') + , ('fastpath function call') + , ('disabled') + ) AS states(state) + LEFT JOIN ( + SELECT datname + , state + , usename + , COALESCE(application_name, '') AS application_name + , COUNT(*) + , COALESCE(EXTRACT (EPOCH FROM (max(now() - xact_start))), 0) AS max_tx_secs + FROM pg_catalog.pg_stat_activity + GROUP BY datname, state, usename, application_name + ) sa ON states.state = sa.state + WHERE sa.usename IS NOT NULL + metrics: + - datname: + usage: "LABEL" + description: "Name of the database" + - usename: + usage: "LABEL" + description: "Name of the user" + - application_name: + usage: "LABEL" + description: "Name of the application" + - state: + usage: "LABEL" + description: "State of the backend" + - total: + usage: "GAUGE" + description: "Number of backends" + - max_tx_duration_seconds: + usage: "GAUGE" + description: "Maximum duration of a transaction in seconds" + + backends_waiting: + query: | + SELECT count(*) AS total + FROM pg_catalog.pg_locks blocked_locks + JOIN pg_catalog.pg_locks blocking_locks + ON blocking_locks.locktype = blocked_locks.locktype + AND blocking_locks.database IS NOT DISTINCT FROM blocked_locks.database + AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation + AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page + AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple + AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid + AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid + AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid + AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid + AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid + AND blocking_locks.pid != blocked_locks.pid + JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid + WHERE NOT blocked_locks.granted + metrics: + - total: + usage: "GAUGE" + description: "Total number of backends that are currently waiting on other queries" + + pg_database: + query: | + SELECT datname + , pg_catalog.pg_database_size(datname) AS size_bytes + , pg_catalog.age(datfrozenxid) AS xid_age + , pg_catalog.mxid_age(datminmxid) AS mxid_age + FROM pg_catalog.pg_database + WHERE datallowconn + metrics: + - datname: + usage: "LABEL" + description: "Name of the database" + - size_bytes: + usage: "GAUGE" + description: "Disk space used by the database" + - xid_age: + usage: "GAUGE" + description: "Number of transactions from the frozen XID to the current one" + - mxid_age: + usage: "GAUGE" + description: "Number of multiple transactions (Multixact) from the frozen XID to the current one" + + pg_postmaster: + query: | + SELECT EXTRACT(EPOCH FROM pg_postmaster_start_time) AS start_time + FROM pg_catalog.pg_postmaster_start_time() + metrics: + - start_time: + usage: "GAUGE" + description: "Time at which postgres started (based on epoch)" + + pg_replication: + query: "SELECT CASE WHEN ( + NOT pg_catalog.pg_is_in_recovery() + OR pg_catalog.pg_last_wal_receive_lsn() = pg_catalog.pg_last_wal_replay_lsn()) + THEN 0 + ELSE GREATEST (0, + EXTRACT(EPOCH FROM (now() - pg_catalog.pg_last_xact_replay_timestamp()))) + END AS lag, + pg_catalog.pg_is_in_recovery() AS in_recovery, + EXISTS (TABLE pg_stat_wal_receiver) AS is_wal_receiver_up, + (SELECT count(*) FROM pg_catalog.pg_stat_replication) AS streaming_replicas" + metrics: + - lag: + usage: "GAUGE" + description: "Replication lag behind primary in seconds" + - in_recovery: + usage: "GAUGE" + description: "Whether the instance is in recovery" + - is_wal_receiver_up: + usage: "GAUGE" + description: "Whether the instance wal_receiver is up" + - streaming_replicas: + usage: "GAUGE" + description: "Number of streaming replicas connected to the instance" + + pg_replication_slots: + query: | + SELECT slot_name, + slot_type, + database, + active, + (CASE pg_catalog.pg_is_in_recovery() + WHEN TRUE THEN pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_last_wal_receive_lsn(), restart_lsn) + ELSE pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), restart_lsn) + END) as pg_wal_lsn_diff + FROM pg_catalog.pg_replication_slots + WHERE NOT temporary + metrics: + - slot_name: + usage: "LABEL" + description: "Name of the replication slot" + - slot_type: + usage: "LABEL" + description: "Type of the replication slot" + - database: + usage: "LABEL" + description: "Name of the database" + - active: + usage: "GAUGE" + description: "Flag indicating whether the slot is active" + - pg_wal_lsn_diff: + usage: "GAUGE" + description: "Replication lag in bytes" + + pg_stat_archiver: + query: | + SELECT archived_count + , failed_count + , COALESCE(EXTRACT(EPOCH FROM (now() - last_archived_time)), -1) AS seconds_since_last_archival + , COALESCE(EXTRACT(EPOCH FROM (now() - last_failed_time)), -1) AS seconds_since_last_failure + , COALESCE(EXTRACT(EPOCH FROM last_archived_time), -1) AS last_archived_time + , COALESCE(EXTRACT(EPOCH FROM last_failed_time), -1) AS last_failed_time + , COALESCE(CAST(CAST('x'||pg_catalog.right(pg_catalog.split_part(last_archived_wal, '.', 1), 16) AS pg_catalog.bit(64)) AS pg_catalog.int8), -1) AS last_archived_wal_start_lsn + , COALESCE(CAST(CAST('x'||pg_catalog.right(pg_catalog.split_part(last_failed_wal, '.', 1), 16) AS pg_catalog.bit(64)) AS pg_catalog.int8), -1) AS last_failed_wal_start_lsn + , EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time + FROM pg_catalog.pg_stat_archiver + metrics: + - archived_count: + usage: "COUNTER" + description: "Number of WAL files that have been successfully archived" + - failed_count: + usage: "COUNTER" + description: "Number of failed attempts for archiving WAL files" + - seconds_since_last_archival: + usage: "GAUGE" + description: "Seconds since the last successful archival operation" + - seconds_since_last_failure: + usage: "GAUGE" + description: "Seconds since the last failed archival operation" + - last_archived_time: + usage: "GAUGE" + description: "Epoch of the last time WAL archiving succeeded" + - last_failed_time: + usage: "GAUGE" + description: "Epoch of the last time WAL archiving failed" + - last_archived_wal_start_lsn: + usage: "GAUGE" + description: "Archived WAL start LSN" + - last_failed_wal_start_lsn: + usage: "GAUGE" + description: "Last failed WAL LSN" + - stats_reset_time: + usage: "GAUGE" + description: "Time at which these statistics were last reset" + + pg_stat_bgwriter: + runonserver: "<17.0.0" + query: | + SELECT checkpoints_timed + , checkpoints_req + , checkpoint_write_time + , checkpoint_sync_time + , buffers_checkpoint + , buffers_clean + , maxwritten_clean + , buffers_backend + , buffers_backend_fsync + , buffers_alloc + FROM pg_catalog.pg_stat_bgwriter + metrics: + - checkpoints_timed: + usage: "COUNTER" + description: "Number of scheduled checkpoints that have been performed" + - checkpoints_req: + usage: "COUNTER" + description: "Number of requested checkpoints that have been performed" + - checkpoint_write_time: + usage: "COUNTER" + description: "Total amount of time that has been spent in the portion of checkpoint processing where files are written to disk, in milliseconds" + - checkpoint_sync_time: + usage: "COUNTER" + description: "Total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk, in milliseconds" + - buffers_checkpoint: + usage: "COUNTER" + description: "Number of buffers written during checkpoints" + - buffers_clean: + usage: "COUNTER" + description: "Number of buffers written by the background writer" + - maxwritten_clean: + usage: "COUNTER" + description: "Number of times the background writer stopped a cleaning scan because it had written too many buffers" + - buffers_backend: + usage: "COUNTER" + description: "Number of buffers written directly by a backend" + - buffers_backend_fsync: + usage: "COUNTER" + description: "Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write)" + - buffers_alloc: + usage: "COUNTER" + description: "Number of buffers allocated" + + pg_stat_bgwriter_17: + runonserver: ">=17.0.0" + name: pg_stat_bgwriter + query: | + SELECT buffers_clean + , maxwritten_clean + , buffers_alloc + , EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time + FROM pg_catalog.pg_stat_bgwriter + metrics: + - buffers_clean: + usage: "COUNTER" + description: "Number of buffers written by the background writer" + - maxwritten_clean: + usage: "COUNTER" + description: "Number of times the background writer stopped a cleaning scan because it had written too many buffers" + - buffers_alloc: + usage: "COUNTER" + description: "Number of buffers allocated" + - stats_reset_time: + usage: "GAUGE" + description: "Time at which these statistics were last reset" + + pg_stat_checkpointer: + runonserver: ">=17.0.0" + query: | + SELECT num_timed AS checkpoints_timed + , num_requested AS checkpoints_req + , restartpoints_timed + , restartpoints_req + , restartpoints_done + , write_time + , sync_time + , buffers_written + , EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time + FROM pg_catalog.pg_stat_checkpointer + metrics: + - checkpoints_timed: + usage: "COUNTER" + description: "Number of scheduled checkpoints that have been performed" + - checkpoints_req: + usage: "COUNTER" + description: "Number of requested checkpoints that have been performed" + - restartpoints_timed: + usage: "COUNTER" + description: "Number of scheduled restartpoints due to timeout or after a failed attempt to perform it" + - restartpoints_req: + usage: "COUNTER" + description: "Number of requested restartpoints that have been performed" + - restartpoints_done: + usage: "COUNTER" + description: "Number of restartpoints that have been performed" + - write_time: + usage: "COUNTER" + description: "Total amount of time that has been spent in the portion of processing checkpoints and restartpoints where files are written to disk, in milliseconds" + - sync_time: + usage: "COUNTER" + description: "Total amount of time that has been spent in the portion of processing checkpoints and restartpoints where files are synchronized to disk, in milliseconds" + - buffers_written: + usage: "COUNTER" + description: "Number of buffers written during checkpoints and restartpoints" + - stats_reset_time: + usage: "GAUGE" + description: "Time at which these statistics were last reset" + + pg_stat_database: + query: | + SELECT datname + , xact_commit + , xact_rollback + , blks_read + , blks_hit + , tup_returned + , tup_fetched + , tup_inserted + , tup_updated + , tup_deleted + , conflicts + , temp_files + , temp_bytes + , deadlocks + , blk_read_time + , blk_write_time + FROM pg_catalog.pg_stat_database + metrics: + - datname: + usage: "LABEL" + description: "Name of this database" + - xact_commit: + usage: "COUNTER" + description: "Number of transactions in this database that have been committed" + - xact_rollback: + usage: "COUNTER" + description: "Number of transactions in this database that have been rolled back" + - blks_read: + usage: "COUNTER" + description: "Number of disk blocks read in this database" + - blks_hit: + usage: "COUNTER" + description: "Number of times disk blocks were found already in the buffer cache, so that a read was not necessary (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache)" + - tup_returned: + usage: "COUNTER" + description: "Number of rows returned by queries in this database" + - tup_fetched: + usage: "COUNTER" + description: "Number of rows fetched by queries in this database" + - tup_inserted: + usage: "COUNTER" + description: "Number of rows inserted by queries in this database" + - tup_updated: + usage: "COUNTER" + description: "Number of rows updated by queries in this database" + - tup_deleted: + usage: "COUNTER" + description: "Number of rows deleted by queries in this database" + - conflicts: + usage: "COUNTER" + description: "Number of queries canceled due to conflicts with recovery in this database" + - temp_files: + usage: "COUNTER" + description: "Number of temporary files created by queries in this database" + - temp_bytes: + usage: "COUNTER" + description: "Total amount of data written to temporary files by queries in this database" + - deadlocks: + usage: "COUNTER" + description: "Number of deadlocks detected in this database" + - blk_read_time: + usage: "COUNTER" + description: "Time spent reading data file blocks by backends in this database, in milliseconds" + - blk_write_time: + usage: "COUNTER" + description: "Time spent writing data file blocks by backends in this database, in milliseconds" + + pg_stat_replication: + primary: true + query: | + SELECT usename + , COALESCE(application_name, '') AS application_name + , COALESCE(client_addr::text, '') AS client_addr + , COALESCE(client_port::text, '') AS client_port + , EXTRACT(EPOCH FROM backend_start) AS backend_start + , COALESCE(pg_catalog.age(backend_xmin), 0) AS backend_xmin_age + , pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), sent_lsn) AS sent_diff_bytes + , pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), write_lsn) AS write_diff_bytes + , pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), flush_lsn) AS flush_diff_bytes + , COALESCE(pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), replay_lsn),0) AS replay_diff_bytes + , COALESCE((EXTRACT(EPOCH FROM write_lag)),0)::float AS write_lag_seconds + , COALESCE((EXTRACT(EPOCH FROM flush_lag)),0)::float AS flush_lag_seconds + , COALESCE((EXTRACT(EPOCH FROM replay_lag)),0)::float AS replay_lag_seconds + FROM pg_catalog.pg_stat_replication + metrics: + - usename: + usage: "LABEL" + description: "Name of the replication user" + - application_name: + usage: "LABEL" + description: "Name of the application" + - client_addr: + usage: "LABEL" + description: "Client IP address" + - client_port: + usage: "LABEL" + description: "Client TCP port" + - backend_start: + usage: "COUNTER" + description: "Time when this process was started" + - backend_xmin_age: + usage: "COUNTER" + description: "The age of this standby's xmin horizon" + - sent_diff_bytes: + usage: "GAUGE" + description: "Difference in bytes from the last write-ahead log location sent on this connection" + - write_diff_bytes: + usage: "GAUGE" + description: "Difference in bytes from the last write-ahead log location written to disk by this standby server" + - flush_diff_bytes: + usage: "GAUGE" + description: "Difference in bytes from the last write-ahead log location flushed to disk by this standby server" + - replay_diff_bytes: + usage: "GAUGE" + description: "Difference in bytes from the last write-ahead log location replayed into the database on this standby server" + - write_lag_seconds: + usage: "GAUGE" + description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written it" + - flush_lag_seconds: + usage: "GAUGE" + description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written and flushed it" + - replay_lag_seconds: + usage: "GAUGE" + description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written, flushed and applied it" + + pg_settings: + query: | + SELECT name, + CASE setting WHEN 'on' THEN '1' WHEN 'off' THEN '0' ELSE setting END AS setting + FROM pg_catalog.pg_settings + WHERE vartype IN ('integer', 'real', 'bool') + ORDER BY 1 + metrics: + - name: + usage: "LABEL" + description: "Name of the setting" + - setting: + usage: "GAUGE" + description: "Setting value" + + pg_extensions: + query: | + SELECT + current_database() as datname, + name as extname, + default_version, + installed_version, + CASE + WHEN default_version = installed_version THEN 0 + ELSE 1 + END AS update_available + FROM pg_catalog.pg_available_extensions + WHERE installed_version IS NOT NULL + metrics: + - datname: + usage: "LABEL" + description: "Name of the database" + - extname: + usage: "LABEL" + description: "Extension name" + - default_version: + usage: "LABEL" + description: "Default version" + - installed_version: + usage: "LABEL" + description: "Installed version" + - update_available: + usage: "GAUGE" + description: "An update is available" + target_databases: + - '*' + kind: ConfigMap + metadata: + annotations: + cnpg.io/operatorVersion: 1.27.1 + creationTimestamp: "2025-10-28T03:06:37Z" + labels: + cnpg.io/reload: "true" + name: cnpg-default-monitoring + namespace: cnpg-iscsi + resourceVersion: "34296455" + uid: 930153bd-afeb-4fe8-8e5d-c0ff7bc267e7 +- apiVersion: rbac.authorization.k8s.io/v1 + kind: Role + metadata: + annotations: + cnpg.io/operatorVersion: 1.27.0 + creationTimestamp: "2025-12-01T20:28:24Z" + labels: + cnpg.io/cluster: cluster-postgres + name: cluster-postgres + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "51741394" + uid: ab15caa5-93e4-40ce-a9e6-d3772b7002d9 + rules: + - apiGroups: + - "" + resourceNames: + - cluster-postgres + - cnpg-default-monitoring + resources: + - configmaps + verbs: + - get + - watch + - apiGroups: + - "" + resourceNames: + - cluster-postgres-app + - cluster-postgres-ca + - cluster-postgres-replication + - cluster-postgres-server + - cluster-postgres-superuser + - garage-s3-creds + resources: + - secrets + verbs: + - get + - watch + - apiGroups: + - postgresql.cnpg.io + resourceNames: + - cluster-postgres + resources: + - clusters + verbs: + - get + - list + - watch + - apiGroups: + - postgresql.cnpg.io + resourceNames: + - cluster-postgres + resources: + - clusters/status + verbs: + - get + - patch + - update + - watch + - apiGroups: + - postgresql.cnpg.io + resources: + - backups + verbs: + - list + - get + - delete + - apiGroups: + - postgresql.cnpg.io + resources: + - backups/status + verbs: + - get + - patch + - update + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + - apiGroups: + - postgresql.cnpg.io + resources: + - databases + verbs: + - get + - update + - list + - watch + - apiGroups: + - postgresql.cnpg.io + resources: + - databases/status + verbs: + - get + - patch + - update + - apiGroups: + - postgresql.cnpg.io + resources: + - publications + verbs: + - get + - update + - list + - watch + - apiGroups: + - postgresql.cnpg.io + resources: + - publications/status + verbs: + - get + - patch + - update + - apiGroups: + - postgresql.cnpg.io + resources: + - subscriptions + verbs: + - get + - update + - list + - watch + - apiGroups: + - postgresql.cnpg.io + resources: + - subscriptions/status + verbs: + - get + - patch + - update + - apiGroups: + - postgresql.cnpg.io + resourceNames: + - cluster-postgres + resources: + - failoverquorums + verbs: + - get + - list + - watch + - apiGroups: + - postgresql.cnpg.io + resourceNames: + - cluster-postgres + resources: + - failoverquorums/status + verbs: + - get + - patch + - update + - watch +- apiVersion: rbac.authorization.k8s.io/v1 + kind: RoleBinding + metadata: + annotations: + cnpg.io/operatorVersion: 1.27.0 + creationTimestamp: "2025-12-01T20:28:24Z" + labels: + cnpg.io/cluster: cluster-postgres + name: cluster-postgres + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "37084726" + uid: ce1b1320-4374-4866-9a20-d140b69a7aa2 + roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: cluster-postgres + subjects: + - kind: ServiceAccount + name: cluster-postgres + namespace: cnpg-iscsi +- apiVersion: v1 + kind: ServiceAccount + metadata: + creationTimestamp: "2025-10-28T03:06:35Z" + name: default + namespace: cnpg-iscsi + resourceVersion: "34296418" + uid: 7c7c8256-2b43-4274-86d1-f8119a22d1df +- apiVersion: v1 + kind: ServiceAccount + metadata: + annotations: + cnpg.io/managedSecrets: '[]' + cnpg.io/operatorVersion: 1.28.0 + creationTimestamp: "2025-12-01T20:28:23Z" + labels: + cnpg.io/cluster: cluster-postgres + name: cluster-postgres + namespace: cnpg-iscsi + ownerReferences: + - apiVersion: postgresql.cnpg.io/v1 + controller: true + kind: Cluster + name: cluster-postgres + uid: 05efaab0-c169-4333-b266-cc0b95c8abcc + resourceVersion: "43327335" + uid: 540e86c9-5372-425b-b202-5bc3bbfa6c41 +kind: List +metadata: + resourceVersion: ""