Add initContainers in imageTagTransformer

This commit is contained in:
Jingfang Liu
2018-07-20 11:30:06 -07:00
parent 5906aaba19
commit 5851f96524
2 changed files with 28 additions and 14 deletions

View File

@@ -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 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 { func (pt *imageTagTransformer) findAndReplaceTag(obj map[string]interface{}) error {
_, found := obj["containers"] paths := []string{"containers", "initContainers"}
if found { found := false
return pt.updateContainers(obj) 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 { func (pt *imageTagTransformer) updateContainers(obj map[string]interface{}, path string) error {
containers := obj["containers"].([]interface{}) containers := obj[path].([]interface{})
for i := range containers { for i := range containers {
container := containers[i].(map[string]interface{}) container := containers[i].(map[string]interface{})
image, found := container["image"] image, found := container["image"]

View File

@@ -39,15 +39,17 @@ func TestImageTagTransformer(t *testing.T) {
"spec": map[string]interface{}{ "spec": map[string]interface{}{
"template": map[string]interface{}{ "template": map[string]interface{}{
"spec": map[string]interface{}{ "spec": map[string]interface{}{
"initContainers": []interface{}{
map[string]interface{}{
"name": "nginx2",
"image": "my-nginx:1.8.0",
},
},
"containers": []interface{}{ "containers": []interface{}{
map[string]interface{}{ map[string]interface{}{
"name": "nginx", "name": "nginx",
"image": "nginx:1.7.9", "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{}{ "spec": map[string]interface{}{
"template": map[string]interface{}{ "template": map[string]interface{}{
"spec": map[string]interface{}{ "spec": map[string]interface{}{
"initContainers": []interface{}{
map[string]interface{}{
"name": "nginx2",
"image": "my-nginx:previous",
},
},
"containers": []interface{}{ "containers": []interface{}{
map[string]interface{}{ map[string]interface{}{
"name": "nginx", "name": "nginx",
"image": "nginx:v2", "image": "nginx:v2",
}, },
map[string]interface{}{
"name": "nginx2",
"image": "my-nginx:previous",
},
}, },
}, },
}, },