Only override name of core api version

This commit is contained in:
Tim Jacomb
2023-04-14 15:49:19 +01:00
parent 7413c6a5fb
commit 75fa235498
2 changed files with 15 additions and 8 deletions

View File

@@ -56,9 +56,11 @@ func (ns Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) {
// Run runs the filter on a single node rather than a slice // Run runs the filter on a single node rather than a slice
func (ns Filter) run(node *yaml.RNode) (*yaml.RNode, error) { func (ns Filter) run(node *yaml.RNode) (*yaml.RNode, error) {
// Special handling for metadata.namespace -- :( // Special handling for metadata.namespace and metadata.name -- :(
// never let SetEntry handle metadata.namespace--it will incorrectly include cluster-scoped resources // never let SetEntry handle metadata.namespace--it will incorrectly include cluster-scoped resources
ns.FsSlice = ns.removeMetaNamespaceFieldSpecs(ns.FsSlice) // only update metadata.name if api version is expected one--so-as it leaves other resources of kind namespace alone
apiVersion := node.GetApiVersion()
ns.FsSlice = ns.removeUnneededMetaFieldSpecs(apiVersion, ns.FsSlice)
gvk := resid.GvkFromNode(node) gvk := resid.GvkFromNode(node)
if err := ns.metaNamespaceHack(node, gvk); err != nil { if err := ns.metaNamespaceHack(node, gvk); err != nil {
return nil, err return nil, err
@@ -186,12 +188,15 @@ func (ns Filter) removeRoleBindingSubjectFieldSpecs(fs types.FsSlice) types.FsSl
return val return val
} }
func (ns Filter) removeMetaNamespaceFieldSpecs(fs types.FsSlice) types.FsSlice { func (ns Filter) removeUnneededMetaFieldSpecs(apiVersion string, fs types.FsSlice) types.FsSlice {
var val types.FsSlice var val types.FsSlice
for i := range fs { for i := range fs {
if fs[i].Path == types.MetadataNamespacePath { if fs[i].Path == types.MetadataNamespacePath {
continue continue
} }
if apiVersion != types.MetadataNamespaceApiVersion && fs[i].Path == types.MetadataNamePath {
continue
}
val = append(val, fs[i]) val = append(val, fs[i])
} }
return val return val

View File

@@ -14,11 +14,13 @@ import (
) )
const ( const (
KustomizationVersion = "kustomize.config.k8s.io/v1beta1" KustomizationVersion = "kustomize.config.k8s.io/v1beta1"
KustomizationKind = "Kustomization" KustomizationKind = "Kustomization"
ComponentVersion = "kustomize.config.k8s.io/v1alpha1" ComponentVersion = "kustomize.config.k8s.io/v1alpha1"
ComponentKind = "Component" ComponentKind = "Component"
MetadataNamespacePath = "metadata/namespace" MetadataNamespacePath = "metadata/namespace"
MetadataNamespaceApiVersion = "v1"
MetadataNamePath = "metadata/name"
OriginAnnotations = "originAnnotations" OriginAnnotations = "originAnnotations"
TransformerAnnotations = "transformerAnnotations" TransformerAnnotations = "transformerAnnotations"