From 3cd9604d8427a2ef4272a92ca6b764280b562854 Mon Sep 17 00:00:00 2001 From: yy <56745951+lingdie@users.noreply.github.com> Date: Wed, 9 Apr 2025 11:39:27 +0800 Subject: [PATCH] fix: devbox release target image tag (#5525) --- .../controller/devboxrelease_controller.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/controllers/devbox/internal/controller/devboxrelease_controller.go b/controllers/devbox/internal/controller/devboxrelease_controller.go index 543d3398e..4bd112374 100644 --- a/controllers/devbox/internal/controller/devboxrelease_controller.go +++ b/controllers/devbox/internal/controller/devboxrelease_controller.go @@ -114,7 +114,7 @@ func (r *DevBoxReleaseReconciler) CreateReleaseTag(ctx context.Context, devboxRe if err := r.Get(ctx, devboxInfo, devbox); err != nil { return err } - hostName, imageName, oldTag, err := r.GetImageInfo(devbox) + hostName, imageName, oldTag, err := r.GetImageInfo(devbox, devboxRelease) if err != nil { return err } @@ -132,15 +132,19 @@ func (r *DevBoxReleaseReconciler) DeleteReleaseTag(_ context.Context, _ *devboxv return nil } -func (r *DevBoxReleaseReconciler) GetImageInfo(devbox *devboxv1alpha1.Devbox) (string, string, string, error) { +func (r *DevBoxReleaseReconciler) GetImageInfo(devbox *devboxv1alpha1.Devbox, devboxRelease *devboxv1alpha1.DevBoxRelease) (string, string, string, error) { if len(devbox.Status.CommitHistory) == 0 { return "", "", "", fmt.Errorf("commit history is empty") } - commitHistory := helper.GetLastPredicatedSuccessCommitHistory(devbox) - if commitHistory == nil { - return "", "", "", fmt.Errorf("no successful commit history found") + targetImage := devboxRelease.Status.OriginalImage + if targetImage == "" { + commitHistory := helper.GetLastPredicatedSuccessCommitHistory(devbox) + if commitHistory == nil { + return "", "", "", fmt.Errorf("no successful commit history found") + } + targetImage = commitHistory.Image } - res, err := reference.ParseReference(commitHistory.Image) + res, err := reference.ParseReference(targetImage) if err != nil { return "", "", "", err }