diff --git a/api/krusty/disablenamesuffix_test.go b/api/krusty/disablenamesuffix_test.go index aef7d7154..de1753e0d 100644 --- a/api/krusty/disablenamesuffix_test.go +++ b/api/krusty/disablenamesuffix_test.go @@ -12,10 +12,12 @@ import ( kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" ) -func findSecret(m resmap.ResMap) *resource.Resource { +func findSecret(m resmap.ResMap, prefix string) *resource.Resource { for _, r := range m.Resources() { if r.OrgId().Kind == "Secret" { - return r + if prefix == "" || strings.HasPrefix(r.GetName(), prefix) { + return r + } } } return nil @@ -77,7 +79,7 @@ metadata: m := th.Run("/whatever", th.MakeDefaultOptions()) - secret := findSecret(m) + secret := findSecret(m, "") if secret == nil { t.Errorf("Expected to find a Secret") } @@ -90,7 +92,7 @@ metadata: "disableNameSuffixHash: false", "disableNameSuffixHash: true", -1)) m = th.Run("/whatever", th.MakeDefaultOptions()) - secret = findSecret(m) + secret = findSecret(m, "") if secret == nil { t.Errorf("Expected to find a Secret") } @@ -98,3 +100,47 @@ metadata: t.Errorf("unexpected secret resource name: %s", secret.GetName()) } } +func TestDisableNameSuffixHashPerObject(t *testing.T) { + th := kusttest_test.MakeHarness(t) + const kustomizationContent = ` +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +generatorOptions: + disableNameSuffixHash: false +secretGenerator: +- name: nohash + options: + disableNameSuffixHash: true + literals: + - DB_USERNAME=admin + - DB_PASSWORD=somepw + type: Opaque +- name: yeshash + options: + disableNameSuffixHash: false + literals: + - DB_USERNAME=admin + - DB_PASSWORD=somepw + type: Opaque +` + + th.WriteK("/whatever", kustomizationContent) + + m := th.Run("/whatever", th.MakeDefaultOptions()) + + secret := findSecret(m, "nohash") + if secret == nil { + t.Errorf("Expected to find a Secret") + } + if secret.GetName() != "nohash" { + t.Errorf("unexpected secret resource name: %s", secret.GetName()) + } + + secret = findSecret(m, "yeshash") + if secret == nil { + t.Errorf("Expected to find a Secret") + } + if secret.GetName() != "yeshash-mcgcmdcm69" { + t.Errorf("unexpected secret resource name: %s", secret.GetName()) + } +}