From 3ba9af7df7fc2dec1bf6eaae6795582379401aa2 Mon Sep 17 00:00:00 2001 From: Michelle Noorali Date: Mon, 24 Jun 2019 12:29:28 -0400 Subject: [PATCH] add deprication notice for test hooks Signed-off-by: Michelle Noorali --- pkg/hooks/hooks.go | 17 ++++++------- pkg/release/hook.go | 17 ++++++------- pkg/releaseutil/manifest_sorter.go | 32 ++++++++++++++++++------- pkg/releaseutil/manifest_sorter_test.go | 5 ++-- 4 files changed, 44 insertions(+), 27 deletions(-) diff --git a/pkg/hooks/hooks.go b/pkg/hooks/hooks.go index 6b6c6fdcc..f3810b45d 100644 --- a/pkg/hooks/hooks.go +++ b/pkg/hooks/hooks.go @@ -31,14 +31,15 @@ const HookDeleteAnno = "helm.sh/hook-delete-policy" // Types of hooks const ( - PreInstall = "pre-install" - PostInstall = "post-install" - PreDelete = "pre-delete" - PostDelete = "post-delete" - PreUpgrade = "pre-upgrade" - PostUpgrade = "post-upgrade" - PreRollback = "pre-rollback" - PostRollback = "post-rollback" + PreInstall = "pre-install" + PostInstall = "post-install" + PreDelete = "pre-delete" + PostDelete = "post-delete" + PreUpgrade = "pre-upgrade" + PostUpgrade = "post-upgrade" + PreRollback = "pre-rollback" + PostRollback = "post-rollback" + //TODO: remove test hooks entirely when release helm v3.0.0-beta ReleaseTestSuccess = "test-success" ReleaseTestFailure = "test-failure" ) diff --git a/pkg/release/hook.go b/pkg/release/hook.go index d4cb73d54..97cfdaa1c 100644 --- a/pkg/release/hook.go +++ b/pkg/release/hook.go @@ -22,14 +22,15 @@ type HookEvent string // Hook event types const ( - HookPreInstall HookEvent = "pre-install" - HookPostInstall HookEvent = "post-install" - HookPreDelete HookEvent = "pre-delete" - HookPostDelete HookEvent = "post-delete" - HookPreUpgrade HookEvent = "pre-upgrade" - HookPostUpgrade HookEvent = "post-upgrade" - HookPreRollback HookEvent = "pre-rollback" - HookPostRollback HookEvent = "post-rollback" + HookPreInstall HookEvent = "pre-install" + HookPostInstall HookEvent = "post-install" + HookPreDelete HookEvent = "pre-delete" + HookPostDelete HookEvent = "post-delete" + HookPreUpgrade HookEvent = "pre-upgrade" + HookPostUpgrade HookEvent = "post-upgrade" + HookPreRollback HookEvent = "pre-rollback" + HookPostRollback HookEvent = "post-rollback" + //TODO: remove depricated test hooks entirely with helm v3.0.0-beta HookReleaseTestSuccess HookEvent = "release-test-success" HookReleaseTestFailure HookEvent = "release-test-failure" ) diff --git a/pkg/releaseutil/manifest_sorter.go b/pkg/releaseutil/manifest_sorter.go index 943d6ac36..3fb03ca32 100644 --- a/pkg/releaseutil/manifest_sorter.go +++ b/pkg/releaseutil/manifest_sorter.go @@ -54,14 +54,17 @@ type result struct { // TODO: Refactor this out. It's here because naming conventions were not followed through. // So fix the Test hook names and then remove this. var events = map[string]release.HookEvent{ - hooks.PreInstall: release.HookPreInstall, - hooks.PostInstall: release.HookPostInstall, - hooks.PreDelete: release.HookPreDelete, - hooks.PostDelete: release.HookPostDelete, - hooks.PreUpgrade: release.HookPreUpgrade, - hooks.PostUpgrade: release.HookPostUpgrade, - hooks.PreRollback: release.HookPreRollback, - hooks.PostRollback: release.HookPostRollback, + hooks.PreInstall: release.HookPreInstall, + hooks.PostInstall: release.HookPostInstall, + hooks.PreDelete: release.HookPreDelete, + hooks.PostDelete: release.HookPostDelete, + hooks.PreUpgrade: release.HookPreUpgrade, + hooks.PostUpgrade: release.HookPostUpgrade, + hooks.PreRollback: release.HookPreRollback, + hooks.PostRollback: release.HookPostRollback, +} + +var DepricatedHookEvents = map[string]release.HookEvent{ hooks.ReleaseTestSuccess: release.HookReleaseTestSuccess, hooks.ReleaseTestFailure: release.HookReleaseTestFailure, } @@ -194,11 +197,17 @@ func (file *manifestFile) sort(result *result) error { } isUnknownHook := false + isDepricatedHook := false for _, hookType := range strings.Split(hookTypes, ",") { hookType = strings.ToLower(strings.TrimSpace(hookType)) e, ok := events[hookType] if !ok { - isUnknownHook = true + _, depricated := DepricatedHookEvents[hookType] + if depricated { + isDepricatedHook = true + } else { + isUnknownHook = true + } break } h.Events = append(h.Events, e) @@ -209,6 +218,11 @@ func (file *manifestFile) sort(result *result) error { continue } + if isDepricatedHook { + log.Printf("info: skipping depricated hook: %q", hookTypes) + continue + } + result.hooks = append(result.hooks, h) operateAnnotationValues(entry, hooks.HookDeleteAnno, func(value string) { diff --git a/pkg/releaseutil/manifest_sorter_test.go b/pkg/releaseutil/manifest_sorter_test.go index 010f81036..6b2c36081 100644 --- a/pkg/releaseutil/manifest_sorter_test.go +++ b/pkg/releaseutil/manifest_sorter_test.go @@ -187,12 +187,13 @@ metadata: t.Errorf("Expected 3 test manifests, got %d", len(ts)) } - if len(hs) != 4 { - t.Errorf("Expected 4 hooks, got %d", len(hs)) + if len(hs) != 3 { + t.Errorf("Expected 3 hook manifests, got %d", len(hs)) } for _, out := range hs { found := false + for _, expect := range data { if out.Path == expect.path { found = true