mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-12 01:14:22 +00:00
Merge pull request #4266 from Serializator/issue-4111-patchJson6902
Fix name suffix not being applied when "patchesJson6902" is used
This commit is contained in:
@@ -12,6 +12,7 @@ import (
|
|||||||
"sigs.k8s.io/kustomize/api/ifc"
|
"sigs.k8s.io/kustomize/api/ifc"
|
||||||
"sigs.k8s.io/kustomize/api/resmap"
|
"sigs.k8s.io/kustomize/api/resmap"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
|
||||||
"sigs.k8s.io/yaml"
|
"sigs.k8s.io/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -78,12 +79,23 @@ func (p *PatchJson6902TransformerPlugin) Transform(m resmap.ResMap) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, res := range resources {
|
for _, res := range resources {
|
||||||
|
internalAnnotations := kioutil.GetInternalAnnotations(&res.RNode)
|
||||||
|
|
||||||
err = res.ApplyFilter(patchjson6902.Filter{
|
err = res.ApplyFilter(patchjson6902.Filter{
|
||||||
Patch: p.JsonOp,
|
Patch: p.JsonOp,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
annotations := res.GetAnnotations()
|
||||||
|
for key, value := range internalAnnotations {
|
||||||
|
annotations[key] = value
|
||||||
|
}
|
||||||
|
err = res.SetAnnotations(annotations)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import (
|
|||||||
"sigs.k8s.io/kustomize/api/resmap"
|
"sigs.k8s.io/kustomize/api/resmap"
|
||||||
"sigs.k8s.io/kustomize/api/resource"
|
"sigs.k8s.io/kustomize/api/resource"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
|
||||||
"sigs.k8s.io/yaml"
|
"sigs.k8s.io/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -111,12 +112,19 @@ func (p *PatchTransformerPlugin) transformJson6902(m resmap.ResMap, patch jsonpa
|
|||||||
}
|
}
|
||||||
for _, res := range resources {
|
for _, res := range resources {
|
||||||
res.StorePreviousId()
|
res.StorePreviousId()
|
||||||
|
internalAnnotations := kioutil.GetInternalAnnotations(&res.RNode)
|
||||||
err = res.ApplyFilter(patchjson6902.Filter{
|
err = res.ApplyFilter(patchjson6902.Filter{
|
||||||
Patch: p.Patch,
|
Patch: p.Patch,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
annotations := res.GetAnnotations()
|
||||||
|
for key, value := range internalAnnotations {
|
||||||
|
annotations[key] = value
|
||||||
|
}
|
||||||
|
err = res.SetAnnotations(annotations)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1646,3 +1646,64 @@ spec:
|
|||||||
type: NodePort
|
type: NodePort
|
||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// test for #4111
|
||||||
|
func TestPatchPreservesInternalAnnotations(t *testing.T) {
|
||||||
|
th := kusttest_test.MakeHarness(t)
|
||||||
|
th.WriteK(".", `
|
||||||
|
nameSuffix: -abc
|
||||||
|
resources:
|
||||||
|
- fluentd.yaml
|
||||||
|
patchesJson6902:
|
||||||
|
- path: patch.yaml
|
||||||
|
target:
|
||||||
|
name: fluentd-sa
|
||||||
|
kind: ServiceAccount
|
||||||
|
version: v1
|
||||||
|
`)
|
||||||
|
th.WriteF("fluentd.yaml", `
|
||||||
|
apiVersion: v1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: fluentd
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: fluentd:latest
|
||||||
|
name: fluentd
|
||||||
|
serviceAccountName: fluentd-sa
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: fluentd-sa
|
||||||
|
`)
|
||||||
|
th.WriteF("patch.yaml", `
|
||||||
|
- op: add
|
||||||
|
path: /metadata/annotations
|
||||||
|
value:
|
||||||
|
note: this is a test annotation
|
||||||
|
`)
|
||||||
|
m := th.Run(".", th.MakeDefaultOptions())
|
||||||
|
th.AssertActualEqualsExpected(m, `
|
||||||
|
apiVersion: v1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: fluentd-abc
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: fluentd:latest
|
||||||
|
name: fluentd
|
||||||
|
serviceAccountName: fluentd-sa-abc
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
note: this is a test annotation
|
||||||
|
name: fluentd-sa-abc
|
||||||
|
`)
|
||||||
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import (
|
|||||||
"sigs.k8s.io/kustomize/api/ifc"
|
"sigs.k8s.io/kustomize/api/ifc"
|
||||||
"sigs.k8s.io/kustomize/api/resmap"
|
"sigs.k8s.io/kustomize/api/resmap"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
|
||||||
"sigs.k8s.io/yaml"
|
"sigs.k8s.io/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -82,12 +83,23 @@ func (p *plugin) Transform(m resmap.ResMap) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, res := range resources {
|
for _, res := range resources {
|
||||||
|
internalAnnotations := kioutil.GetInternalAnnotations(&res.RNode)
|
||||||
|
|
||||||
err = res.ApplyFilter(patchjson6902.Filter{
|
err = res.ApplyFilter(patchjson6902.Filter{
|
||||||
Patch: p.JsonOp,
|
Patch: p.JsonOp,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
annotations := res.GetAnnotations()
|
||||||
|
for key, value := range internalAnnotations {
|
||||||
|
annotations[key] = value
|
||||||
|
}
|
||||||
|
err = res.SetAnnotations(annotations)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ require (
|
|||||||
github.com/evanphx/json-patch v4.11.0+incompatible
|
github.com/evanphx/json-patch v4.11.0+incompatible
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
sigs.k8s.io/kustomize/api v0.8.9
|
sigs.k8s.io/kustomize/api v0.8.9
|
||||||
|
sigs.k8s.io/kustomize/kyaml v0.12.0
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import (
|
|||||||
"sigs.k8s.io/kustomize/api/resmap"
|
"sigs.k8s.io/kustomize/api/resmap"
|
||||||
"sigs.k8s.io/kustomize/api/resource"
|
"sigs.k8s.io/kustomize/api/resource"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
|
||||||
"sigs.k8s.io/yaml"
|
"sigs.k8s.io/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -115,12 +116,19 @@ func (p *plugin) transformJson6902(m resmap.ResMap, patch jsonpatch.Patch) error
|
|||||||
}
|
}
|
||||||
for _, res := range resources {
|
for _, res := range resources {
|
||||||
res.StorePreviousId()
|
res.StorePreviousId()
|
||||||
|
internalAnnotations := kioutil.GetInternalAnnotations(&res.RNode)
|
||||||
err = res.ApplyFilter(patchjson6902.Filter{
|
err = res.ApplyFilter(patchjson6902.Filter{
|
||||||
Patch: p.Patch,
|
Patch: p.Patch,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
annotations := res.GetAnnotations()
|
||||||
|
for key, value := range internalAnnotations {
|
||||||
|
annotations[key] = value
|
||||||
|
}
|
||||||
|
err = res.SetAnnotations(annotations)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ go 1.16
|
|||||||
require (
|
require (
|
||||||
github.com/evanphx/json-patch v4.11.0+incompatible
|
github.com/evanphx/json-patch v4.11.0+incompatible
|
||||||
sigs.k8s.io/kustomize/api v0.8.9
|
sigs.k8s.io/kustomize/api v0.8.9
|
||||||
|
sigs.k8s.io/kustomize/kyaml v0.12.0
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user