diff --git a/pkg/action/upgrade.go b/pkg/action/upgrade.go index 6d60fd7dd..6bcf73c51 100644 --- a/pkg/action/upgrade.go +++ b/pkg/action/upgrade.go @@ -394,6 +394,13 @@ func (u *Upgrade) reportToPerformUpgrade(c chan<- resultMessage, rel *release.Re func (u *Upgrade) releasingUpgrade(ctx context.Context, c chan<- resultMessage, upgradedRelease *release.Release, current kube.ResourceList, target kube.ResourceList, originalRelease *release.Release) { // pre-upgrade hooks + select { + case <-ctx.Done(): + u.reportToPerformUpgrade(c, upgradedRelease, kube.ResourceList{}, ctx.Err()) + return + default: + } + if !u.DisableHooks { if err := u.cfg.execHook(upgradedRelease, release.HookPreUpgrade, u.Timeout); err != nil { u.reportToPerformUpgrade(c, upgradedRelease, kube.ResourceList{}, fmt.Errorf("pre-upgrade hooks failed: %s", err))