Merge pull request #1820 from haiyanmeng/image

Skip updating empty containers in image tranformer
This commit is contained in:
Jeff Regan
2019-11-22 15:53:28 -08:00
committed by GitHub
5 changed files with 46 additions and 4 deletions

View File

@@ -82,7 +82,7 @@ func (p *ImageTagTransformerPlugin) findAndReplaceImage(obj map[string]interface
updated := false
for _, path := range paths {
containers, found := obj[path]
if found {
if found && containers != nil {
if _, err := p.updateContainers(containers); err != nil {
return err
}

View File

@@ -6,7 +6,7 @@ package builtins
import (
"fmt"
jsonpatch "github.com/evanphx/json-patch"
"github.com/evanphx/json-patch"
"github.com/pkg/errors"
"sigs.k8s.io/kustomize/api/ifc"
"sigs.k8s.io/kustomize/api/resid"

View File

@@ -6,7 +6,7 @@ package builtins
import (
"fmt"
jsonpatch "github.com/evanphx/json-patch"
"github.com/evanphx/json-patch"
"github.com/pkg/errors"
"sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource"

View File

@@ -86,7 +86,7 @@ func (p *plugin) findAndReplaceImage(obj map[string]interface{}) error {
updated := false
for _, path := range paths {
containers, found := obj[path]
if found {
if found && containers != nil {
if _, err := p.updateContainers(containers); err != nil {
return err
}

View File

@@ -369,3 +369,45 @@ spec:
name: init-alpine
`)
}
func TestImageTagTransformerEmptyContainers(t *testing.T) {
tc := kusttest_test.NewPluginTestEnv(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
"builtin", "", "ImageTagTransformer")
th := kusttest_test.NewKustTestHarnessAllowPlugins(t, "/app")
rm := th.LoadAndRunTransformer(`
apiVersion: builtin
kind: ImageTagTransformer
metadata:
name: notImportantHere
imageTag:
name: nginx
newTag: v2
`, `
group: apps
apiVersion: v1
kind: Deployment
metadata:
name: deploy1
spec:
template:
spec:
containers:
initContainers:
`)
th.AssertActualEqualsExpected(rm, `
apiVersion: v1
group: apps
kind: Deployment
metadata:
name: deploy1
spec:
template:
spec:
containers: null
initContainers: null
`)
}