@ -181,20 +181,15 @@ func (u *Upgrade) prepareUpgrade(name string, chart *chart.Chart, vals map[strin
return nil , nil , errPending
return nil , nil , errPending
}
}
var currentRelease * release . Release
isUpgrade := true
if lastRelease . Info . Status == release . StatusDeployed {
currentRelease := lastRelease
// no need to retrieve the last deployed release from storage as the last release is deployed
_ , err = u . cfg . Releases . Deployed ( name )
currentRelease = lastRelease
if err != nil {
} else {
if errors . Is ( err , driver . ErrNoDeployedReleases ) &&
// finds the deployed release with the given name
( lastRelease . Info . Status == release . StatusFailed || lastRelease . Info . Status == release . StatusSuperseded || lastRelease . Info . Status == release . StatusPendingInstall || lastRelease . Info . Status == release . StatusPendingUpgrade || lastRelease . Info . Status == release . StatusPendingRollback ) {
currentRelease , err = u . cfg . Releases . Deployed ( name )
isUpgrade = false
if err != nil {
} else {
if errors . Is ( err , driver . ErrNoDeployedReleases ) &&
return nil , nil , err
( lastRelease . Info . Status == release . StatusFailed || lastRelease . Info . Status == release . StatusSuperseded ) {
currentRelease = lastRelease
} else {
return nil , nil , err
}
}
}
}
}
@ -216,7 +211,8 @@ func (u *Upgrade) prepareUpgrade(name string, chart *chart.Chart, vals map[strin
Name : name ,
Name : name ,
Namespace : currentRelease . Namespace ,
Namespace : currentRelease . Namespace ,
Revision : revision ,
Revision : revision ,
IsUpgrade : true ,
IsInstall : ! isUpgrade ,
IsUpgrade : isUpgrade ,
}
}
caps , err := u . cfg . getCapabilities ( )
caps , err := u . cfg . getCapabilities ( )