From 67de9f2be4c53acee41a02067dd97f5594ef9925 Mon Sep 17 00:00:00 2001 From: Mike Lundy Date: Wed, 18 Jul 2018 17:31:39 -0700 Subject: [PATCH] [tiller] move the Manifest type to its own pkg It's really easy to cause an import cycle on this type; this resolves the problem by moving it out of the tiller pkg into its own. An alias is left behind in order to prevent downstream breakage. --- pkg/manifest/doc.go | 23 +++++++++++++++++++++++ pkg/manifest/types.go | 28 ++++++++++++++++++++++++++++ pkg/tiller/hooks.go | 8 ++------ 3 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 pkg/manifest/doc.go create mode 100644 pkg/manifest/types.go diff --git a/pkg/manifest/doc.go b/pkg/manifest/doc.go new file mode 100644 index 000000000..c2f127cda --- /dev/null +++ b/pkg/manifest/doc.go @@ -0,0 +1,23 @@ +/* +Copyright The Helm Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/*Package manifest contains tools for working with kubernetes manifests. + +Much like other parts of helm, it does not generally require that the manifests +be correct yaml, so these functions can be run on broken manifests to aid in +user debugging +*/ +package manifest // import "k8s.io/helm/pkg/manifest" diff --git a/pkg/manifest/types.go b/pkg/manifest/types.go new file mode 100644 index 000000000..4c748c9e5 --- /dev/null +++ b/pkg/manifest/types.go @@ -0,0 +1,28 @@ +/* +Copyright The Helm Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package manifest + +import ( + "k8s.io/helm/pkg/releaseutil" +) + +// Manifest represents a manifest file, which has a name and some content. +type Manifest struct { + Name string + Content string + Head *releaseutil.SimpleHead +} diff --git a/pkg/tiller/hooks.go b/pkg/tiller/hooks.go index d53ed504f..6c3543f61 100644 --- a/pkg/tiller/hooks.go +++ b/pkg/tiller/hooks.go @@ -27,6 +27,7 @@ import ( "k8s.io/helm/pkg/chartutil" "k8s.io/helm/pkg/hooks" + "k8s.io/helm/pkg/manifest" "k8s.io/helm/pkg/proto/hapi/release" util "k8s.io/helm/pkg/releaseutil" ) @@ -52,12 +53,7 @@ var deletePolices = map[string]release.Hook_DeletePolicy{ hooks.BeforeHookCreation: release.Hook_BEFORE_HOOK_CREATION, } -// Manifest represents a manifest file, which has a name and some content. -type Manifest struct { - Name string - Content string - Head *util.SimpleHead -} +type Manifest = manifest.Manifest type result struct { hooks []*release.Hook