mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-09-15 04:12:43 +00:00
Merge pull request #6239 from superbrothers/feat/image-volume-cronjob
fix: add CronJob Image Volume support to images transformer
This commit is contained in:
@@ -957,6 +957,50 @@ spec:
|
||||
},
|
||||
},
|
||||
},
|
||||
"update image volume in cronjob": {
|
||||
input: `
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: imagevolume
|
||||
spec:
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
volumes:
|
||||
- name: volume
|
||||
image:
|
||||
reference: nginx
|
||||
`,
|
||||
expectedOutput: `
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: imagevolume
|
||||
spec:
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
volumes:
|
||||
- name: volume
|
||||
image:
|
||||
reference: apache@12345
|
||||
`,
|
||||
filter: Filter{
|
||||
ImageTag: types.Image{
|
||||
Name: "nginx",
|
||||
NewName: "apache",
|
||||
Digest: "12345",
|
||||
},
|
||||
},
|
||||
fsSlice: []types.FieldSpec{
|
||||
{
|
||||
Path: "spec/jobTemplate/spec/template/spec/volumes[]/image/reference",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for tn, tc := range testCases {
|
||||
|
||||
@@ -18,5 +18,7 @@ images:
|
||||
create: true
|
||||
- path: spec/template/spec/volumes[]/image/reference
|
||||
create: true
|
||||
- path: spec/jobTemplate/spec/template/spec/volumes[]/image/reference
|
||||
create: true
|
||||
`
|
||||
)
|
||||
|
||||
@@ -440,3 +440,97 @@ spec:
|
||||
name: nginx
|
||||
`)
|
||||
}
|
||||
|
||||
// Image Volume (KEP-4639, spec.volumes[].image) references should be
|
||||
// rewritten by the default images config wherever kustomize also rewrites
|
||||
// container images: bare Pods, PodTemplate-based workloads, and CronJob,
|
||||
// whose containers live one level deeper under spec.jobTemplate.
|
||||
func TestTransfomersImageVolumeDefaultConfig(t *testing.T) {
|
||||
th := kusttest_test.MakeHarness(t)
|
||||
th.WriteK(".", `
|
||||
resources:
|
||||
- pod.yaml
|
||||
- deploy.yaml
|
||||
- cronjob.yaml
|
||||
images:
|
||||
- name: nginx
|
||||
newTag: v2
|
||||
`)
|
||||
th.WriteF("pod.yaml", `
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: pod
|
||||
spec:
|
||||
volumes:
|
||||
- name: volume
|
||||
image:
|
||||
reference: nginx
|
||||
`)
|
||||
th.WriteF("deploy.yaml", `
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: deploy
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
volumes:
|
||||
- name: volume
|
||||
image:
|
||||
reference: nginx
|
||||
`)
|
||||
th.WriteF("cronjob.yaml", `
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: cronjob
|
||||
spec:
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
volumes:
|
||||
- name: volume
|
||||
image:
|
||||
reference: nginx
|
||||
`)
|
||||
m := th.Run(".", th.MakeDefaultOptions())
|
||||
th.AssertActualEqualsExpected(m, `
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: pod
|
||||
spec:
|
||||
volumes:
|
||||
- image:
|
||||
reference: nginx:v2
|
||||
name: volume
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: deploy
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
volumes:
|
||||
- image:
|
||||
reference: nginx:v2
|
||||
name: volume
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: cronjob
|
||||
spec:
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
volumes:
|
||||
- image:
|
||||
reference: nginx:v2
|
||||
name: volume
|
||||
`)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user