MCPcopy
hub / github.com/helm/helm / releasingUpgrade

Method releasingUpgrade

pkg/action/upgrade.go:458–526  ·  view source on GitHub ↗
(c chan<- resultMessage, upgradedRelease *release.Release, current kube.ResourceList, target kube.ResourceList, originalRelease *release.Release, serverSideApply bool)

Source from the content-addressed store, hash-verified

456}
457
458func (u *Upgrade) releasingUpgrade(c chan<- resultMessage, upgradedRelease *release.Release, current kube.ResourceList, target kube.ResourceList, originalRelease *release.Release, serverSideApply bool) {
459 // pre-upgrade hooks
460
461 if !u.DisableHooks {
462 if err := u.cfg.execHook(upgradedRelease, release.HookPreUpgrade, u.WaitStrategy, u.WaitOptions, u.Timeout, serverSideApply); err != nil {
463 u.reportToPerformUpgrade(c, upgradedRelease, kube.ResourceList{}, fmt.Errorf("pre-upgrade hooks failed: %w", err))
464 return
465 }
466 } else {
467 u.cfg.Logger().Debug("upgrade hooks disabled", "name", upgradedRelease.Name)
468 }
469
470 upgradeClientSideFieldManager := isReleaseApplyMethodClientSideApply(originalRelease.ApplyMethod) && serverSideApply // Update client-side field manager if transitioning from client-side to server-side apply
471 results, err := u.cfg.KubeClient.Update(
472 current,
473 target,
474 kube.ClientUpdateOptionForceReplace(u.ForceReplace),
475 kube.ClientUpdateOptionServerSideApply(serverSideApply, u.ForceConflicts),
476 kube.ClientUpdateOptionUpgradeClientSideFieldManager(upgradeClientSideFieldManager))
477 if err != nil {
478 u.cfg.recordRelease(originalRelease)
479 u.reportToPerformUpgrade(c, upgradedRelease, results.Created, err)
480 return
481 }
482
483 var waiter kube.Waiter
484 if c, supportsOptions := u.cfg.KubeClient.(kube.InterfaceWaitOptions); supportsOptions {
485 waiter, err = c.GetWaiterWithOptions(u.WaitStrategy, u.WaitOptions...)
486 } else {
487 waiter, err = u.cfg.KubeClient.GetWaiter(u.WaitStrategy)
488 }
489 if err != nil {
490 u.cfg.recordRelease(originalRelease)
491 u.reportToPerformUpgrade(c, upgradedRelease, results.Created, err)
492 return
493 }
494 if u.WaitForJobs {
495 if err := waiter.WaitWithJobs(target, u.Timeout); err != nil {
496 u.cfg.recordRelease(originalRelease)
497 u.reportToPerformUpgrade(c, upgradedRelease, results.Created, err)
498 return
499 }
500 } else {
501 if err := waiter.Wait(target, u.Timeout); err != nil {
502 u.cfg.recordRelease(originalRelease)
503 u.reportToPerformUpgrade(c, upgradedRelease, results.Created, err)
504 return
505 }
506 }
507
508 // post-upgrade hooks
509 if !u.DisableHooks {
510 if err := u.cfg.execHook(upgradedRelease, release.HookPostUpgrade, u.WaitStrategy, u.WaitOptions, u.Timeout, serverSideApply); err != nil {
511 u.reportToPerformUpgrade(c, upgradedRelease, results.Created, fmt.Errorf("post-upgrade hooks failed: %w", err))
512 return
513 }
514 }
515

Callers 1

performUpgradeMethod · 0.95

Calls 13

WaitWithJobsMethod · 0.95
WaitMethod · 0.95
execHookMethod · 0.80
LoggerMethod · 0.65
UpdateMethod · 0.65
GetWaiterWithOptionsMethod · 0.65
GetWaiterMethod · 0.65

Tested by

no test coverage detected