mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-14 10:30:59 +00:00
api/resource: retain disableNameSuffixHash on merge.
This commit is contained in:
@@ -339,6 +339,8 @@ configMapGenerator:
|
|||||||
behavior: replace
|
behavior: replace
|
||||||
literals:
|
literals:
|
||||||
- foo=override-bar
|
- foo=override-bar
|
||||||
|
options:
|
||||||
|
disableNameSuffixHash: true
|
||||||
secretGenerator:
|
secretGenerator:
|
||||||
- name: secret-in-base
|
- name: secret-in-base
|
||||||
behavior: merge
|
behavior: merge
|
||||||
@@ -389,7 +391,7 @@ spec:
|
|||||||
name: staging-configmap-in-overlay-dc6fm46dhm
|
name: staging-configmap-in-overlay-dc6fm46dhm
|
||||||
name: configmap-in-overlay
|
name: configmap-in-overlay
|
||||||
- configMap:
|
- configMap:
|
||||||
name: staging-team-foo-configmap-in-base-hc6g9dk6g9
|
name: staging-team-foo-configmap-in-base
|
||||||
name: configmap-in-base
|
name: configmap-in-base
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
@@ -424,7 +426,7 @@ metadata:
|
|||||||
env: staging
|
env: staging
|
||||||
org: example.com
|
org: example.com
|
||||||
team: override-foo
|
team: override-foo
|
||||||
name: staging-team-foo-configmap-in-base-hc6g9dk6g9
|
name: staging-team-foo-configmap-in-base
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
data:
|
data:
|
||||||
|
|||||||
@@ -94,3 +94,47 @@ metadata:
|
|||||||
name: shouldHaveHash-c9867f8446
|
name: shouldHaveHash-c9867f8446
|
||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGeneratorOptionsOverlayDisableNameSuffixHash(t *testing.T) {
|
||||||
|
th := kusttest_test.MakeHarness(t)
|
||||||
|
th.WriteK("base", `
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
generatorOptions:
|
||||||
|
disableNameSuffixHash: false
|
||||||
|
labels:
|
||||||
|
foo: bar
|
||||||
|
configMapGenerator:
|
||||||
|
- name: baseShouldHaveHashButOverlayShouldNot
|
||||||
|
literals:
|
||||||
|
- foo=bar
|
||||||
|
`)
|
||||||
|
th.WriteK("overlay", `
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ../base
|
||||||
|
generatorOptions:
|
||||||
|
disableNameSuffixHash: true
|
||||||
|
labels:
|
||||||
|
fruit: apple
|
||||||
|
configMapGenerator:
|
||||||
|
- name: baseShouldHaveHashButOverlayShouldNot
|
||||||
|
behavior: merge
|
||||||
|
literals:
|
||||||
|
- fruit=apple
|
||||||
|
`)
|
||||||
|
m := th.Run("overlay", th.MakeDefaultOptions())
|
||||||
|
th.AssertActualEqualsExpected(m, `
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
foo: bar
|
||||||
|
fruit: apple
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
foo: bar
|
||||||
|
fruit: apple
|
||||||
|
name: baseShouldHaveHashButOverlayShouldNot
|
||||||
|
`)
|
||||||
|
}
|
||||||
|
|||||||
@@ -164,10 +164,17 @@ func (r *Resource) CopyMergeMetaDataFieldsFrom(other *Resource) error {
|
|||||||
mergeStringMaps(other.GetLabels(), r.GetLabels())); err != nil {
|
mergeStringMaps(other.GetLabels(), r.GetLabels())); err != nil {
|
||||||
return fmt.Errorf("copyMerge cannot set labels - %w", err)
|
return fmt.Errorf("copyMerge cannot set labels - %w", err)
|
||||||
}
|
}
|
||||||
if err := r.SetAnnotations(
|
|
||||||
mergeStringMapsWithBuildAnnotations(other.GetAnnotations(), r.GetAnnotations())); err != nil {
|
ra := r.GetAnnotations()
|
||||||
|
_, enableNameSuffixHash := ra[utils.BuildAnnotationsGenAddHashSuffix]
|
||||||
|
merged := mergeStringMapsWithBuildAnnotations(other.GetAnnotations(), ra)
|
||||||
|
if !enableNameSuffixHash {
|
||||||
|
delete(merged, utils.BuildAnnotationsGenAddHashSuffix)
|
||||||
|
}
|
||||||
|
if err := r.SetAnnotations(merged); err != nil {
|
||||||
return fmt.Errorf("copyMerge cannot set annotations - %w", err)
|
return fmt.Errorf("copyMerge cannot set annotations - %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := r.SetName(other.GetName()); err != nil {
|
if err := r.SetName(other.GetName()); err != nil {
|
||||||
return fmt.Errorf("copyMerge cannot set name - %w", err)
|
return fmt.Errorf("copyMerge cannot set name - %w", err)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user