Skip to content

Commit 4c2d8f0

Browse files
authored
K8SPSMDB-1506: Fix malformed backupVersion with PBM v2.8.0 (#2099)
* K8SPSMDB-1506: Fix malformed backupVersion with PBM v2.8.0 * address review comment
1 parent ea08d45 commit 4c2d8f0

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

pkg/controller/perconaservermongodb/backup.go

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -464,18 +464,36 @@ func (r *ReconcilePerconaServerMongoDB) reconcileBackupVersion(ctx context.Conte
464464
return nil
465465
}
466466

467+
stdout := &bytes.Buffer{}
467468
stderr := &bytes.Buffer{}
468469
cmd := []string{"pbm-agent", "version", "--short"}
469470

470-
err = r.clientcmd.Exec(ctx, pod, naming.ContainerBackupAgent, cmd, nil, nil, stderr, false)
471+
err = r.clientcmd.Exec(ctx, pod, naming.ContainerBackupAgent, cmd, nil, stdout, stderr, false)
471472
if err != nil {
472473
return errors.Wrap(err, "get pbm-agent version")
473474
}
474475

475-
cr.Status.BackupVersion = strings.TrimSpace(stderr.String())
476+
// PBM v2.9.0 and above prints version to stderr, below prints it to stdout
477+
stdoutStr := strings.TrimSpace(stdout.String())
478+
stderrStr := strings.TrimSpace(stderr.String())
479+
if stdoutStr != "" && stderrStr != "" {
480+
log.V(1).Info("pbm-agent version found in both stdout and stderr; using stdout",
481+
"stdout", stdoutStr, "stderr", stderrStr)
482+
cr.Status.BackupVersion = stdoutStr
483+
} else if stdoutStr != "" {
484+
cr.Status.BackupVersion = stdoutStr
485+
} else if stderrStr != "" {
486+
cr.Status.BackupVersion = stderrStr
487+
} else {
488+
return errors.New("pbm-agent version not found in stdout or stderr")
489+
}
490+
476491
cr.Status.BackupImage = cr.Spec.Backup.Image
477492

478-
log.Info("pbm-agent version", "version", cr.Status.BackupVersion, "image", cr.Status.BackupImage, "pod", pod.Name)
493+
log.Info("pbm-agent version",
494+
"pod", pod.Name,
495+
"image", cr.Status.BackupImage,
496+
"version", cr.Status.BackupVersion)
479497

480498
pbmInfo := pbmVersion.Current()
481499

0 commit comments

Comments
 (0)