mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-10 08:20:59 +00:00
Add initContainers in imageTagTransformer
This commit is contained in:
@@ -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"]
|
||||
|
||||
@@ -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",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user