From 53b01949a86f9d0f8bdef5207f100b079dbe4272 Mon Sep 17 00:00:00 2001
From: Matt Butcher <mbutcher@engineyard.com>
Date: Fri, 2 Sep 2016 17:59:59 -0600
Subject: [PATCH] fix(tiller): store failed release on post-inst failure

This fixes a bug where post-install hooks did not result in recording a
failure.
---
 cmd/tiller/release_server.go | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/cmd/tiller/release_server.go b/cmd/tiller/release_server.go
index 00af55e5c..c20bc4d50 100644
--- a/cmd/tiller/release_server.go
+++ b/cmd/tiller/release_server.go
@@ -538,8 +538,8 @@ func (s *releaseServer) performRelease(r *release.Release, req *services.Install
 	kubeCli := s.env.KubeClient
 	b := bytes.NewBufferString(r.Manifest)
 	if err := kubeCli.Create(r.Namespace, b); err != nil {
-		r.Info.Status.Code = release.Status_FAILED
 		log.Printf("warning: Release %q failed: %s", r.Name, err)
+		r.Info.Status.Code = release.Status_FAILED
 		s.recordRelease(r, req.ReuseName)
 		return res, fmt.Errorf("release %s failed: %s", r.Name, err)
 	}
@@ -547,6 +547,9 @@ func (s *releaseServer) performRelease(r *release.Release, req *services.Install
 	// post-install hooks
 	if !req.DisableHooks {
 		if err := s.execHook(r.Hooks, r.Name, r.Namespace, postInstall); err != nil {
+			log.Printf("warning: Release %q failed post-install: %s", r.Name, err)
+			r.Info.Status.Code = release.Status_FAILED
+			s.recordRelease(r, req.ReuseName)
 			return res, err
 		}
 	}
-- 
GitLab