From 0736022d98228e35ffc9cf87871a123629425757 Mon Sep 17 00:00:00 2001
From: Mike Lundy <mike@fluffypenguin.org>
Date: Mon, 30 Jul 2018 14:18:00 -0700
Subject: [PATCH] [tiller] make update --force --dry-run obey dry-run

---
 pkg/tiller/release_update.go | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/pkg/tiller/release_update.go b/pkg/tiller/release_update.go
index e94de705d..28fcf391b 100644
--- a/pkg/tiller/release_update.go
+++ b/pkg/tiller/release_update.go
@@ -161,6 +161,10 @@ func (s *ReleaseServer) performUpdateForce(req *services.UpdateReleaseRequest) (
 		Timeout:      req.Timeout,
 		Wait:         req.Wait,
 	})
+
+	// update new release with next revision number so as to append to the old release's history
+	newRelease.Version = oldRelease.Version + 1
+
 	res := &services.UpdateReleaseResponse{Release: newRelease}
 	if err != nil {
 		s.Log("failed update prepare step: %s", err)
@@ -172,6 +176,12 @@ func (s *ReleaseServer) performUpdateForce(req *services.UpdateReleaseRequest) (
 		return res, err
 	}
 
+	if req.DryRun {
+		s.Log("dry run for %s", newRelease.Name)
+		res.Release.Info.Description = "Dry run complete"
+		return res, nil
+	}
+
 	// From here on out, the release is considered to be in Status_DELETING or Status_DELETED
 	// state. There is no turning back.
 	oldRelease.Info.Status.Code = release.Status_DELETING
@@ -218,8 +228,6 @@ func (s *ReleaseServer) performUpdateForce(req *services.UpdateReleaseRequest) (
 		}
 	}
 
-	// update new release with next revision number so as to append to the old release's history
-	newRelease.Version = oldRelease.Version + 1
 	s.recordRelease(newRelease, false)
 	if err := s.ReleaseModule.Update(oldRelease, newRelease, req, s.env); err != nil {
 		msg := fmt.Sprintf("Upgrade %q failed: %s", newRelease.Name, err)
-- 
GitLab