Fix: diff against last revison, not against successful deployment

#12645

Signed-off-by: David Otto <ottodavid@gmx.net>
pull/12908/head
David Otto 2 years ago
parent 833bbfa31a
commit e03760c421
No known key found for this signature in database
GPG Key ID: 91AFB89EB289AB5C

@ -214,25 +214,8 @@ func (u *Upgrade) prepareUpgrade(name string, chart *chart.Chart, vals map[strin
return nil, nil, errPending return nil, nil, errPending
} }
var currentRelease *release.Release
if lastRelease.Info.Status == release.StatusDeployed {
// no need to retrieve the last deployed release from storage as the last release is deployed
currentRelease = lastRelease
} else {
// finds the deployed release with the given name
currentRelease, err = u.cfg.Releases.Deployed(name)
if err != nil {
if errors.Is(err, driver.ErrNoDeployedReleases) &&
(lastRelease.Info.Status == release.StatusFailed || lastRelease.Info.Status == release.StatusSuperseded) {
currentRelease = lastRelease
} else {
return nil, nil, err
}
}
}
// determine if values will be reused // determine if values will be reused
vals, err = u.reuseValues(chart, currentRelease, vals) vals, err = u.reuseValues(chart, lastRelease, vals)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }
@ -247,7 +230,7 @@ func (u *Upgrade) prepareUpgrade(name string, chart *chart.Chart, vals map[strin
options := chartutil.ReleaseOptions{ options := chartutil.ReleaseOptions{
Name: name, Name: name,
Namespace: currentRelease.Namespace, Namespace: lastRelease.Namespace,
Revision: revision, Revision: revision,
IsUpgrade: true, IsUpgrade: true,
} }
@ -279,11 +262,11 @@ func (u *Upgrade) prepareUpgrade(name string, chart *chart.Chart, vals map[strin
// Store an upgraded release. // Store an upgraded release.
upgradedRelease := &release.Release{ upgradedRelease := &release.Release{
Name: name, Name: name,
Namespace: currentRelease.Namespace, Namespace: lastRelease.Namespace,
Chart: chart, Chart: chart,
Config: vals, Config: vals,
Info: &release.Info{ Info: &release.Info{
FirstDeployed: currentRelease.Info.FirstDeployed, FirstDeployed: lastRelease.Info.FirstDeployed,
LastDeployed: Timestamper(), LastDeployed: Timestamper(),
Status: release.StatusPendingUpgrade, Status: release.StatusPendingUpgrade,
Description: "Preparing upgrade", // This should be overwritten later. Description: "Preparing upgrade", // This should be overwritten later.
@ -298,7 +281,7 @@ func (u *Upgrade) prepareUpgrade(name string, chart *chart.Chart, vals map[strin
upgradedRelease.Info.Notes = notesTxt upgradedRelease.Info.Notes = notesTxt
} }
err = validateManifest(u.cfg.KubeClient, manifestDoc.Bytes(), !u.DisableOpenAPIValidation) err = validateManifest(u.cfg.KubeClient, manifestDoc.Bytes(), !u.DisableOpenAPIValidation)
return currentRelease, upgradedRelease, err return lastRelease, upgradedRelease, err
} }
func (u *Upgrade) performUpgrade(ctx context.Context, originalRelease, upgradedRelease *release.Release) (*release.Release, error) { func (u *Upgrade) performUpgrade(ctx context.Context, originalRelease, upgradedRelease *release.Release) (*release.Release, error) {

Loading…
Cancel
Save