diff --git a/pkg/transformers/imagetag.go b/pkg/transformers/imagetag.go index fcea93a95..5764bfd43 100644 --- a/pkg/transformers/imagetag.go +++ b/pkg/transformers/imagetag.go @@ -55,15 +55,25 @@ func (pt *imageTagTransformer) Transform(resources resmap.ResMap) error { then loops though all images inside containers session, finds matched ones and update the tag name */ func (pt *imageTagTransformer) findAndReplaceTag(obj map[string]interface{}) error { - _, found := obj["containers"] - if found { - return pt.updateContainers(obj) + paths := []string{"containers", "initContainers"} + found := false + for _, path := range paths { + _, found = obj[path] + if found { + err := pt.updateContainers(obj, path) + if err != nil { + return err + } + } } - return pt.findContainers(obj) + if !found { + return pt.findContainers(obj) + } + return nil } -func (pt *imageTagTransformer) updateContainers(obj map[string]interface{}) error { - containers := obj["containers"].([]interface{}) +func (pt *imageTagTransformer) updateContainers(obj map[string]interface{}, path string) error { + containers := obj[path].([]interface{}) for i := range containers { container := containers[i].(map[string]interface{}) image, found := container["image"] diff --git a/pkg/transformers/imagetag_test.go b/pkg/transformers/imagetag_test.go index f9723839a..4f5960772 100644 --- a/pkg/transformers/imagetag_test.go +++ b/pkg/transformers/imagetag_test.go @@ -39,15 +39,17 @@ func TestImageTagTransformer(t *testing.T) { "spec": map[string]interface{}{ "template": map[string]interface{}{ "spec": map[string]interface{}{ + "initContainers": []interface{}{ + map[string]interface{}{ + "name": "nginx2", + "image": "my-nginx:1.8.0", + }, + }, "containers": []interface{}{ map[string]interface{}{ "name": "nginx", "image": "nginx:1.7.9", }, - map[string]interface{}{ - "name": "nginx2", - "image": "my-nginx:1.8.0", - }, }, }, }, @@ -101,15 +103,17 @@ func TestImageTagTransformer(t *testing.T) { "spec": map[string]interface{}{ "template": map[string]interface{}{ "spec": map[string]interface{}{ + "initContainers": []interface{}{ + map[string]interface{}{ + "name": "nginx2", + "image": "my-nginx:previous", + }, + }, "containers": []interface{}{ map[string]interface{}{ "name": "nginx", "image": "nginx:v2", }, - map[string]interface{}{ - "name": "nginx2", - "image": "my-nginx:previous", - }, }, }, },