fix(helm): Display debug release info when upgrade failed because of timeout. Closes #3020

Signed-off-by: Sebastien Plisson <sebastien.plisson@gmail.com>
pull/5024/head
Sebastien Plisson 7 years ago
parent 158d6dbb74
commit dbfb4a7b40

@ -291,7 +291,7 @@ func (i *installCmd) run() error {
return fmt.Errorf("cannot load requirements: %v", err)
}
res, err := i.client.InstallReleaseFromChart(
resp, err := i.client.InstallReleaseFromChart(
chartRequested,
i.namespace,
helm.ValueOverrides(rawVals),
@ -303,15 +303,25 @@ func (i *installCmd) run() error {
helm.InstallTimeout(i.timeout),
helm.InstallWait(i.wait),
helm.InstallDescription(i.description))
if err != nil {
return prettyError(err)
// If there is an error while waiting, display the release content
if (resp == nil || resp.Release == nil) && i.wait {
if res, e := i.client.ReleaseContent(i.name); e != nil {
fmt.Fprintf(i.out, "Error reading release content: %v", prettyError(e))
} else {
i.printRelease(res.Release)
}
} else {
rel := resp.GetRelease()
if rel == nil {
return nil
}
i.printRelease(rel)
}
rel := res.GetRelease()
if rel == nil {
return nil
if err != nil {
return prettyError(err)
}
i.printRelease(rel)
// If this is a dry run, we can't display status.
if i.dryRun {

@ -104,6 +104,24 @@ func (r *rollbackCmd) run() error {
helm.RollbackTimeout(r.timeout),
helm.RollbackWait(r.wait),
helm.RollbackDescription(r.description))
if settings.Debug {
// If there is an error while waiting, make a call without waiting to get the release content
if (resp == nil || resp.Release == nil) && r.wait {
if res, e := r.client.ReleaseContent(r.name); e != nil {
fmt.Fprintf(r.out, "Error reading release content: %v", prettyError(e))
} else {
printRelease(r.out, res.Release)
}
} else {
rel := resp.GetRelease()
if rel == nil {
return nil
}
printRelease(r.out, rel)
}
}
if err != nil {
return prettyError(err)
}

@ -266,12 +266,22 @@ func (u *upgradeCmd) run() error {
helm.ReuseValues(u.reuseValues),
helm.UpgradeWait(u.wait),
helm.UpgradeDescription(u.description))
if err != nil {
return fmt.Errorf("UPGRADE FAILED: %v", prettyError(err))
}
if settings.Debug {
printRelease(u.out, resp.Release)
// If there is an error while waiting, make a call without waiting to get the updated release content
if (resp == nil || resp.Release == nil) && u.wait {
if res, e := u.client.ReleaseContent(u.release); e != nil {
fmt.Fprintf(u.out, "Error reading release content: %v", prettyError(e))
} else {
printRelease(u.out, res.Release)
}
} else {
printRelease(u.out, resp.Release)
}
}
if err != nil {
return fmt.Errorf("UPGRADE FAILED: %v", prettyError(err))
}
fmt.Fprintf(u.out, "Release %q has been upgraded. Happy Helming!\n", u.release)

Loading…
Cancel
Save