From 4ddf4ab93f2c5c118bcef99525f6f0de38bab91c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Tue, 20 May 2025 17:22:46 +0300 Subject: [PATCH] K8SPSMDB-1344: Add size into backup status --- .../psmdb.percona.com_perconaservermongodbbackups.yaml | 6 ++++++ ...psmdb.percona.com_perconaservermongodbrestores.yaml | 2 ++ deploy/bundle.yaml | 10 +++++++++- deploy/crd.yaml | 8 ++++++++ deploy/cw-bundle.yaml | 10 +++++++++- deploy/cw-operator.yaml | 2 +- deploy/operator.yaml | 2 +- e2e-tests/version-service/conf/crd.yaml | 8 ++++++++ pkg/apis/psmdb/v1/perconaservermongodbbackup_types.go | 2 ++ pkg/controller/perconaservermongodbbackup/backup.go | 2 ++ 10 files changed, 48 insertions(+), 4 deletions(-) diff --git a/config/crd/bases/psmdb.percona.com_perconaservermongodbbackups.yaml b/config/crd/bases/psmdb.percona.com_perconaservermongodbbackups.yaml index c3c4314e5a..927badfaf8 100644 --- a/config/crd/bases/psmdb.percona.com_perconaservermongodbbackups.yaml +++ b/config/crd/bases/psmdb.percona.com_perconaservermongodbbackups.yaml @@ -33,6 +33,10 @@ spec: jsonPath: .status.type name: Type type: string + - description: Backup size + jsonPath: .status.size + name: Size + type: string - description: Job status jsonPath: .status.state name: Status @@ -169,6 +173,8 @@ spec: required: - bucket type: object + size: + type: string start: format: date-time type: string diff --git a/config/crd/bases/psmdb.percona.com_perconaservermongodbrestores.yaml b/config/crd/bases/psmdb.percona.com_perconaservermongodbrestores.yaml index 6261d0a41b..3d89cd320b 100644 --- a/config/crd/bases/psmdb.percona.com_perconaservermongodbrestores.yaml +++ b/config/crd/bases/psmdb.percona.com_perconaservermongodbrestores.yaml @@ -137,6 +137,8 @@ spec: required: - bucket type: object + size: + type: string start: format: date-time type: string diff --git a/deploy/bundle.yaml b/deploy/bundle.yaml index dda12eec14..e0fa55cec5 100644 --- a/deploy/bundle.yaml +++ b/deploy/bundle.yaml @@ -32,6 +32,10 @@ spec: jsonPath: .status.type name: Type type: string + - description: Backup size + jsonPath: .status.size + name: Size + type: string - description: Job status jsonPath: .status.state name: Status @@ -168,6 +172,8 @@ spec: required: - bucket type: object + size: + type: string start: format: date-time type: string @@ -322,6 +328,8 @@ spec: required: - bucket type: object + size: + type: string start: format: date-time type: string @@ -19788,7 +19796,7 @@ spec: serviceAccountName: percona-server-mongodb-operator containers: - name: percona-server-mongodb-operator - image: percona/percona-server-mongodb-operator:1.20.0 + image: perconalab/percona-server-mongodb-operator:main imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/crd.yaml b/deploy/crd.yaml index ed0880ca25..2e96c1df5e 100644 --- a/deploy/crd.yaml +++ b/deploy/crd.yaml @@ -32,6 +32,10 @@ spec: jsonPath: .status.type name: Type type: string + - description: Backup size + jsonPath: .status.size + name: Size + type: string - description: Job status jsonPath: .status.state name: Status @@ -168,6 +172,8 @@ spec: required: - bucket type: object + size: + type: string start: format: date-time type: string @@ -322,6 +328,8 @@ spec: required: - bucket type: object + size: + type: string start: format: date-time type: string diff --git a/deploy/cw-bundle.yaml b/deploy/cw-bundle.yaml index 111834cb61..24ba834f2e 100644 --- a/deploy/cw-bundle.yaml +++ b/deploy/cw-bundle.yaml @@ -32,6 +32,10 @@ spec: jsonPath: .status.type name: Type type: string + - description: Backup size + jsonPath: .status.size + name: Size + type: string - description: Job status jsonPath: .status.state name: Status @@ -168,6 +172,8 @@ spec: required: - bucket type: object + size: + type: string start: format: date-time type: string @@ -322,6 +328,8 @@ spec: required: - bucket type: object + size: + type: string start: format: date-time type: string @@ -19809,7 +19817,7 @@ spec: serviceAccountName: percona-server-mongodb-operator containers: - name: percona-server-mongodb-operator - image: percona/percona-server-mongodb-operator:1.20.0 + image: perconalab/percona-server-mongodb-operator:main imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/cw-operator.yaml b/deploy/cw-operator.yaml index e1effb043b..b8ec3d38e6 100644 --- a/deploy/cw-operator.yaml +++ b/deploy/cw-operator.yaml @@ -15,7 +15,7 @@ spec: serviceAccountName: percona-server-mongodb-operator containers: - name: percona-server-mongodb-operator - image: percona/percona-server-mongodb-operator:1.20.0 + image: perconalab/percona-server-mongodb-operator:main imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/operator.yaml b/deploy/operator.yaml index db09479e99..90d4d04a51 100644 --- a/deploy/operator.yaml +++ b/deploy/operator.yaml @@ -15,7 +15,7 @@ spec: serviceAccountName: percona-server-mongodb-operator containers: - name: percona-server-mongodb-operator - image: percona/percona-server-mongodb-operator:1.20.0 + image: perconalab/percona-server-mongodb-operator:main imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/e2e-tests/version-service/conf/crd.yaml b/e2e-tests/version-service/conf/crd.yaml index ed0880ca25..2e96c1df5e 100644 --- a/e2e-tests/version-service/conf/crd.yaml +++ b/e2e-tests/version-service/conf/crd.yaml @@ -32,6 +32,10 @@ spec: jsonPath: .status.type name: Type type: string + - description: Backup size + jsonPath: .status.size + name: Size + type: string - description: Job status jsonPath: .status.state name: Status @@ -168,6 +172,8 @@ spec: required: - bucket type: object + size: + type: string start: format: date-time type: string @@ -322,6 +328,8 @@ spec: required: - bucket type: object + size: + type: string start: format: date-time type: string diff --git a/pkg/apis/psmdb/v1/perconaservermongodbbackup_types.go b/pkg/apis/psmdb/v1/perconaservermongodbbackup_types.go index 5702f801e2..3feedb2865 100644 --- a/pkg/apis/psmdb/v1/perconaservermongodbbackup_types.go +++ b/pkg/apis/psmdb/v1/perconaservermongodbbackup_types.go @@ -48,6 +48,7 @@ type PerconaServerMongoDBBackupStatus struct { Filesystem *BackupStorageFilesystemSpec `json:"filesystem,omitempty"` ReplsetNames []string `json:"replsetNames,omitempty"` PBMname string `json:"pbmName,omitempty"` + Size string `json:"size,omitempty"` // Deprecated: Use PBMPods instead PBMPod string `json:"pbmPod,omitempty"` @@ -67,6 +68,7 @@ type PerconaServerMongoDBBackupStatus struct { // +kubebuilder:printcolumn:name="Storage",type=string,JSONPath=".spec.storageName",description="Storage name" // +kubebuilder:printcolumn:name="Destination",type=string,JSONPath=".status.destination",description="Backup destination" // +kubebuilder:printcolumn:name="Type",type=string,JSONPath=".status.type",description="Backup type" +// +kubebuilder:printcolumn:name="Size",type=string,JSONPath=".status.size",description="Backup size" // +kubebuilder:printcolumn:name="Status",type=string,JSONPath=".status.state",description="Job status" // +kubebuilder:printcolumn:name="Completed",type=date,JSONPath=".status.completed",description="Completed time" // +kubebuilder:printcolumn:name="Age",type=date,JSONPath=".metadata.creationTimestamp",description="Created time" diff --git a/pkg/controller/perconaservermongodbbackup/backup.go b/pkg/controller/perconaservermongodbbackup/backup.go index 7893806445..b7d8ef3e66 100644 --- a/pkg/controller/perconaservermongodbbackup/backup.go +++ b/pkg/controller/perconaservermongodbbackup/backup.go @@ -16,6 +16,7 @@ import ( "github.com/percona/percona-backup-mongodb/pbm/ctrl" "github.com/percona/percona-backup-mongodb/pbm/defs" pbmErrors "github.com/percona/percona-backup-mongodb/pbm/errors" + "github.com/percona/percona-backup-mongodb/pbm/storage" api "github.com/percona/percona-server-mongodb-operator/pkg/apis/psmdb/v1" "github.com/percona/percona-server-mongodb-operator/pkg/psmdb/backup" @@ -192,6 +193,7 @@ func (b *Backup) Status(ctx context.Context, cr *api.PerconaServerMongoDBBackup) status.Error = "incremental base backup not found" } case defs.StatusDone: + status.Size = storage.PrettySize(meta.Size) status.State = api.BackupStateReady status.CompletedAt = &metav1.Time{ Time: time.Unix(meta.LastTransitionTS, 0),