diff --git a/pkg/hooks/hooks.go b/pkg/hooks/hooks.go index 13a09b08b..e3fc07dd8 100644 --- a/pkg/hooks/hooks.go +++ b/pkg/hooks/hooks.go @@ -51,6 +51,30 @@ const ( BeforeHookCreation = "before-hook-creation" ) +// Events represents a mapping between the key in the annotation for hooks and +// the protobuf-defined IDs. +var Events = map[string]release.Hook_Event{ + PreInstall: release.Hook_PRE_INSTALL, + PostInstall: release.Hook_POST_INSTALL, + PreDelete: release.Hook_PRE_DELETE, + PostDelete: release.Hook_POST_DELETE, + PreUpgrade: release.Hook_PRE_UPGRADE, + PostUpgrade: release.Hook_POST_UPGRADE, + PreRollback: release.Hook_PRE_ROLLBACK, + PostRollback: release.Hook_POST_ROLLBACK, + ReleaseTestSuccess: release.Hook_RELEASE_TEST_SUCCESS, + ReleaseTestFailure: release.Hook_RELEASE_TEST_FAILURE, + CRDInstall: release.Hook_CRD_INSTALL, +} + +// DeletePolices represents a mapping between the key in the annotation for +// label deleting policy and the protobuf-defined IDs +var DeletePolices = map[string]release.Hook_DeletePolicy{ + HookSucceeded: release.Hook_SUCCEEDED, + HookFailed: release.Hook_FAILED, + BeforeHookCreation: release.Hook_BEFORE_HOOK_CREATION, +} + // FilterTestHooks filters the list of hooks are returns only testing hooks. func FilterTestHooks(hooks []*release.Hook) []*release.Hook { testHooks := []*release.Hook{} diff --git a/pkg/tiller/hooks.go b/pkg/tiller/hooks.go index 0fb7c92f8..41892e5ef 100644 --- a/pkg/tiller/hooks.go +++ b/pkg/tiller/hooks.go @@ -32,27 +32,6 @@ import ( util "k8s.io/helm/pkg/releaseutil" ) -var events = map[string]release.Hook_Event{ - hooks.PreInstall: release.Hook_PRE_INSTALL, - hooks.PostInstall: release.Hook_POST_INSTALL, - hooks.PreDelete: release.Hook_PRE_DELETE, - hooks.PostDelete: release.Hook_POST_DELETE, - hooks.PreUpgrade: release.Hook_PRE_UPGRADE, - hooks.PostUpgrade: release.Hook_POST_UPGRADE, - hooks.PreRollback: release.Hook_PRE_ROLLBACK, - hooks.PostRollback: release.Hook_POST_ROLLBACK, - hooks.ReleaseTestSuccess: release.Hook_RELEASE_TEST_SUCCESS, - hooks.ReleaseTestFailure: release.Hook_RELEASE_TEST_FAILURE, - hooks.CRDInstall: release.Hook_CRD_INSTALL, -} - -// deletePolices represents a mapping between the key in the annotation for label deleting policy and its real meaning -var deletePolices = map[string]release.Hook_DeletePolicy{ - hooks.HookSucceeded: release.Hook_SUCCEEDED, - hooks.HookFailed: release.Hook_FAILED, - hooks.BeforeHookCreation: release.Hook_BEFORE_HOOK_CREATION, -} - // Manifest represents a manifest file, which has a name and some content. type Manifest = manifest.Manifest @@ -169,7 +148,7 @@ func (file *manifestFile) sort(result *result) error { isUnknownHook := false for _, hookType := range strings.Split(hookTypes, ",") { hookType = strings.ToLower(strings.TrimSpace(hookType)) - e, ok := events[hookType] + e, ok := hooks.Events[hookType] if !ok { isUnknownHook = true break @@ -185,7 +164,7 @@ func (file *manifestFile) sort(result *result) error { result.hooks = append(result.hooks, h) operateAnnotationValues(entry, hooks.HookDeleteAnno, func(value string) { - policy, exist := deletePolices[value] + policy, exist := hooks.DeletePolices[value] if exist { h.DeletePolicies = append(h.DeletePolicies, policy) } else { diff --git a/pkg/tiller/release_install.go b/pkg/tiller/release_install.go index 3cfbcf30e..bb5f89a69 100644 --- a/pkg/tiller/release_install.go +++ b/pkg/tiller/release_install.go @@ -133,7 +133,7 @@ func (s *ReleaseServer) prepareRelease(req *services.InstallReleaseRequest) (*re func hasCRDHook(hs []*release.Hook) bool { for _, h := range hs { for _, e := range h.Events { - if e == events[hooks.CRDInstall] { + if e == hooks.Events[hooks.CRDInstall] { return true } } diff --git a/pkg/tiller/release_server.go b/pkg/tiller/release_server.go index c5638d20d..2e3ade605 100644 --- a/pkg/tiller/release_server.go +++ b/pkg/tiller/release_server.go @@ -371,7 +371,7 @@ func (s *ReleaseServer) recordRelease(r *release.Release, reuse bool) { func (s *ReleaseServer) execHook(hs []*release.Hook, name, namespace, hook string, timeout int64) error { kubeCli := s.env.KubeClient - code, ok := events[hook] + code, ok := hooks.Events[hook] if !ok { return fmt.Errorf("unknown hook %s", hook) } @@ -466,7 +466,7 @@ func (s *ReleaseServer) deleteHookByPolicy(h *release.Hook, policy string, name, // hookHasDeletePolicy determines whether the defined hook deletion policy matches the hook deletion polices // supported by helm. If so, mark the hook as one should be deleted. func hookHasDeletePolicy(h *release.Hook, policy string) bool { - if dp, ok := deletePolices[policy]; ok { + if dp, ok := hooks.DeletePolices[policy]; ok { for _, v := range h.DeletePolicies { if dp == v { return true