MCPcopy
hub / github.com/roboll/helmfile / delete

Method delete

pkg/app/app.go:1389–1464  ·  view source on GitHub ↗
(r *Run, purge bool, c DestroyConfigProvider)

Source from the content-addressed store, hash-verified

1387}
1388
1389func (a *App) delete(r *Run, purge bool, c DestroyConfigProvider) (bool, []error) {
1390 st := r.state
1391 helm := r.helm
1392
1393 affectedReleases := state.AffectedReleases{}
1394
1395 toSync, _, err := a.getSelectedReleases(r, false)
1396 if err != nil {
1397 return false, []error{err}
1398 }
1399 if len(toSync) == 0 {
1400 return false, nil
1401 }
1402
1403 toDelete, err := st.DetectReleasesToBeDeleted(helm, toSync)
1404 if err != nil {
1405 return false, []error{err}
1406 }
1407
1408 releasesToDelete := map[string]state.ReleaseSpec{}
1409 for _, r := range toDelete {
1410 release := r
1411 id := state.ReleaseToID(&release)
1412 releasesToDelete[id] = release
1413 }
1414
1415 releasesWithNoChange := map[string]state.ReleaseSpec{}
1416 for _, r := range toSync {
1417 release := r
1418 id := state.ReleaseToID(&release)
1419 _, uninstalled := releasesToDelete[id]
1420 if !uninstalled {
1421 releasesWithNoChange[id] = release
1422 }
1423 }
1424
1425 for id := range releasesWithNoChange {
1426 r := releasesWithNoChange[id]
1427 if _, err := st.TriggerCleanupEvent(&r, "delete"); err != nil {
1428 a.Logger.Warnf("warn: %v\n", err)
1429 }
1430 }
1431
1432 names := make([]string, len(toSync))
1433 for i, r := range toSync {
1434 names[i] = fmt.Sprintf(" %s (%s)", r.Name, r.Chart)
1435 }
1436
1437 st.Releases = st.GetReleasesWithOverrides()
1438
1439 var errs []error
1440
1441 msg := fmt.Sprintf(`Affected releases are:
1442%s
1443
1444Do you really want to delete?
1445 Helmfile will delete all your releases, as shown above.
1446

Callers 2

DeleteMethod · 0.95
DestroyMethod · 0.95

Calls 15

getSelectedReleasesMethod · 0.95
WrapWithoutSelectorMethod · 0.95
ReleaseToIDFunction · 0.92
GetArgsFunction · 0.92
withDAGFunction · 0.85
TriggerCleanupEventMethod · 0.80
askForConfirmationMethod · 0.80
DeleteReleasesMethod · 0.80
InteractiveMethod · 0.65

Tested by

no test coverage detected