From 74f5e74b89e33f4fa625c52636fc2077ce0555e0 Mon Sep 17 00:00:00 2001 From: Jerome Brette Date: Tue, 25 Jun 2019 13:46:49 -0500 Subject: [PATCH] Consolidate IsClusterKind and IsNamespaceableKind method to avoid duplication --- pkg/gvk/gvk.go | 23 +------------------ pkg/resmap/resmap.go | 4 ++-- plugin/builtin/NamespaceTransformer.go | 2 +- .../NamespaceTransformer.go | 2 +- 4 files changed, 5 insertions(+), 26 deletions(-) diff --git a/pkg/gvk/gvk.go b/pkg/gvk/gvk.go index 7cca2d944..56ce4bc6b 100644 --- a/pkg/gvk/gvk.go +++ b/pkg/gvk/gvk.go @@ -160,27 +160,6 @@ func (x Gvk) IsSelected(selector *Gvk) bool { return true } -var clusterLevelKinds = []string{ - "APIService", - "ClusterRoleBinding", - "ClusterRole", - "CustomResourceDefinition", - "Namespace", - "PersistentVolume", - "MutatingWebhookConfiguration", - "ValidatingWebhookConfiguration", -} - -// IsClusterKind returns true if x is a cluster-level Gvk -func (x Gvk) IsClusterKind() bool { - for _, k := range clusterLevelKinds { - if k == x.Kind { - return true - } - } - return false -} - var notNamespaceableKinds = []string{ "APIService", "CSIDriver", @@ -207,7 +186,7 @@ var notNamespaceableKinds = []string{ "VolumeAttachment", } -// IsNamespaceableKind returns true if x is a namespable Gvk +// IsNamespaceableKind returns true if x is a namespeable Gvk // Implements https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#not-all-objects-are-in-a-namespace func (x Gvk) IsNamespaceableKind() bool { for _, k := range notNamespaceableKinds { diff --git a/pkg/resmap/resmap.go b/pkg/resmap/resmap.go index 41a9dfc95..eddd4247a 100644 --- a/pkg/resmap/resmap.go +++ b/pkg/resmap/resmap.go @@ -488,12 +488,12 @@ func (m *resWrangler) makeCopy(copier resCopier) ResMap { func (m *resWrangler) SubsetThatCouldBeReferencedByResource( inputRes *resource.Resource) ResMap { inputId := inputRes.OrgId() - if inputId.IsClusterKind() { + if !inputId.IsNamespaceableKind() { return m } result := New() for _, r := range m.Resources() { - if r.OrgId().IsClusterKind() || inputRes.InSameFuzzyNamespace(r) { + if !r.OrgId().IsNamespaceableKind() || inputRes.InSameFuzzyNamespace(r) { err := result.Append(r) if err != nil { panic(err) diff --git a/plugin/builtin/NamespaceTransformer.go b/plugin/builtin/NamespaceTransformer.go index d73094e1a..1a47bb842 100644 --- a/plugin/builtin/NamespaceTransformer.go +++ b/plugin/builtin/NamespaceTransformer.go @@ -62,7 +62,7 @@ const metaNamespace = "metadata/namespace" // object itself doesn't live in a namespace). func doIt(id resid.ResId, fs *config.FieldSpec) bool { return fs.Path != metaNamespace || - (fs.Path == metaNamespace && !id.IsClusterKind()) + (fs.Path == metaNamespace && id.IsNamespaceableKind()) } func (p *NamespaceTransformerPlugin) changeNamespace( diff --git a/plugin/builtin/namespacetransformer/NamespaceTransformer.go b/plugin/builtin/namespacetransformer/NamespaceTransformer.go index ff44bda6c..4f2f4c1ad 100644 --- a/plugin/builtin/namespacetransformer/NamespaceTransformer.go +++ b/plugin/builtin/namespacetransformer/NamespaceTransformer.go @@ -63,7 +63,7 @@ const metaNamespace = "metadata/namespace" // object itself doesn't live in a namespace). func doIt(id resid.ResId, fs *config.FieldSpec) bool { return fs.Path != metaNamespace || - (fs.Path == metaNamespace && !id.IsClusterKind()) + (fs.Path == metaNamespace && id.IsNamespaceableKind()) } func (p *plugin) changeNamespace(