mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +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
|
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"]
|
||||||
|
|||||||
@@ -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",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user