diff --git a/api/krusty/namereference_test.go b/api/krusty/namereference_test.go index 806cad1b3..293746571 100644 --- a/api/krusty/namereference_test.go +++ b/api/krusty/namereference_test.go @@ -649,7 +649,6 @@ metadata: name: oldNs `) m := th.Run(".", th.MakeDefaultOptions()) - // Incorrect: the self-reference annotations in both resources were not updated! th.AssertActualEqualsExpected(m, ` apiVersion: v1 data: @@ -658,7 +657,7 @@ data: kind: ConfigMap metadata: annotations: - theConfigMap: cm + theConfigMap: cm-updated theNamespace: newNs name: cm-updated namespace: newNs @@ -668,7 +667,7 @@ kind: Namespace metadata: annotations: theConfigMap: cm-updated - theNamespace: oldNs + theNamespace: newNs name: newNs `) } diff --git a/api/resource/resource.go b/api/resource/resource.go index 9997e408b..a88ce31d2 100644 --- a/api/resource/resource.go +++ b/api/resource/resource.go @@ -255,13 +255,9 @@ func (r *Resource) appendCsvAnnotation(name, value string) { if value == "" { return } - annotations := r.GetAnnotations() - if existing, ok := annotations[name]; ok { - annotations[name] = existing + "," + value - } else { - annotations[name] = value - } - if err := r.SetAnnotations(annotations); err != nil { + currentValue := r.getCsvAnnotation(name) + newValue := strings.Join(append(currentValue, value), ",") + if err := r.RNode.PipeE(kyaml.SetAnnotation(name, newValue)); err != nil { panic(err) } } diff --git a/api/resource/resource_test.go b/api/resource/resource_test.go index 106c827ae..8e2b692ed 100644 --- a/api/resource/resource_test.go +++ b/api/resource/resource_test.go @@ -1402,31 +1402,31 @@ spec: `)) assert.NoError(t, err) r.AppendRefBy(resid.FromString("knd1.ver1.gr1/name1.ns1")) - assert.Equal(t, r.RNode.MustString(), `apiVersion: v1 + assert.Equal(t, `apiVersion: v1 kind: Deployment metadata: name: clown annotations: - internal.config.kubernetes.io/refBy: knd1.ver1.gr1/name1.ns1 + internal.config.kubernetes.io/refBy: 'knd1.ver1.gr1/name1.ns1' spec: numReplicas: 1 -`) +`, r.RNode.MustString()) assert.Equal(t, r.GetRefBy(), []resid.ResId{resid.FromString("knd1.ver1.gr1/name1.ns1")}) r.AppendRefBy(resid.FromString("knd2.ver2.gr2/name2.ns2")) - assert.Equal(t, r.RNode.MustString(), `apiVersion: v1 + assert.Equal(t, `apiVersion: v1 kind: Deployment metadata: name: clown annotations: - internal.config.kubernetes.io/refBy: knd1.ver1.gr1/name1.ns1,knd2.ver2.gr2/name2.ns2 + internal.config.kubernetes.io/refBy: 'knd1.ver1.gr1/name1.ns1,knd2.ver2.gr2/name2.ns2' spec: numReplicas: 1 -`) - assert.Equal(t, r.GetRefBy(), []resid.ResId{ +`, r.RNode.MustString()) + assert.Equal(t, []resid.ResId{ resid.FromString("knd1.ver1.gr1/name1.ns1"), resid.FromString("knd2.ver2.gr2/name2.ns2"), - }) + }, r.GetRefBy()) } func TestOrigin(t *testing.T) {