@@ -13,6 +13,7 @@ import (
1313
1414 promv1 "github.com/coreos/prometheus-operator/pkg/apis/monitoring/v1"
1515 kubeyaml "github.com/ghodss/yaml"
16+ batchv1beta1 "k8s.io/api/batch/v1beta1"
1617 corev1 "k8s.io/api/core/v1"
1718 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1819)
@@ -149,6 +150,15 @@ func getImagesFromResource(resource string) ([]string, error) {
149150 return podImages , nil
150151 }
151152
153+ if typeMeta .Kind == "CronJob" {
154+ cronJobImages , err := getCronJobImages (byteResource )
155+ if err != nil {
156+ return nil , fmt .Errorf ("get cronjob images: %w" , err )
157+ }
158+
159+ return cronJobImages , nil
160+ }
161+
152162 type BaseSpec struct {
153163 Template corev1.PodTemplateSpec `json:"template" protobuf:"bytes,3,opt,name=template"`
154164 }
@@ -224,6 +234,19 @@ func getPodImages(resource []byte) ([]string, error) {
224234 return images , nil
225235}
226236
237+ func getCronJobImages (resource []byte ) ([]string , error ) {
238+ var cj batchv1beta1.CronJob
239+ if err := kubeyaml .Unmarshal (resource , & cj ); err != nil {
240+ return nil , fmt .Errorf ("unmarshal cronjob: %w" , err )
241+ }
242+
243+ var images []string
244+ images = append (images , getImagesFromContainers (cj .Spec .JobTemplate .Spec .Template .Spec .Containers )... )
245+ images = append (images , getImagesFromContainers (cj .Spec .JobTemplate .Spec .Template .Spec .InitContainers )... )
246+
247+ return images , nil
248+ }
249+
227250func getImagesFromContainers (containers []corev1.Container ) []string {
228251 var images []string
229252
0 commit comments