@@ -87,6 +87,26 @@ func ClusterResources(c *Collector) (map[string][]byte, error) {
8787 return nil , err
8888 }
8989
90+ // jobs
91+ jobs , jobsErrors := jobs (ctx , client , namespaceNames )
92+ for k , v := range jobs {
93+ clusterResourcesOutput [path .Join ("cluster-resources/jobs" , k )] = v
94+ }
95+ clusterResourcesOutput ["cluster-resources/jobs-errors.json" ], err = marshalNonNil (jobsErrors )
96+ if err != nil {
97+ return nil , err
98+ }
99+
100+ // cronJobs
101+ cronJobs , cronJobsErrors := cronJobs (ctx , client , namespaceNames )
102+ for k , v := range cronJobs {
103+ clusterResourcesOutput [path .Join ("cluster-resources/cronjobs" , k )] = v
104+ }
105+ clusterResourcesOutput ["cluster-resources/cronjobs-errors.json" ], err = marshalNonNil (cronJobsErrors )
106+ if err != nil {
107+ return nil , err
108+ }
109+
90110 // ingress
91111 ingress , ingressErrors := ingress (ctx , client , namespaceNames )
92112 for k , v := range ingress {
@@ -314,6 +334,52 @@ func statefulsets(ctx context.Context, client *kubernetes.Clientset, namespaces
314334 return statefulsetsByNamespace , errorsByNamespace
315335}
316336
337+ func jobs (ctx context.Context , client * kubernetes.Clientset , namespaces []string ) (map [string ][]byte , map [string ]string ) {
338+ jobsByNamespace := make (map [string ][]byte )
339+ errorsByNamespace := make (map [string ]string )
340+
341+ for _ , namespace := range namespaces {
342+ nsJobs , err := client .BatchV1 ().Jobs (namespace ).List (ctx , metav1.ListOptions {})
343+ if err != nil {
344+ errorsByNamespace [namespace ] = err .Error ()
345+ continue
346+ }
347+
348+ b , err := json .MarshalIndent (nsJobs .Items , "" , " " )
349+ if err != nil {
350+ errorsByNamespace [namespace ] = err .Error ()
351+ continue
352+ }
353+
354+ jobsByNamespace [namespace + ".json" ] = b
355+ }
356+
357+ return jobsByNamespace , errorsByNamespace
358+ }
359+
360+ func cronJobs (ctx context.Context , client * kubernetes.Clientset , namespaces []string ) (map [string ][]byte , map [string ]string ) {
361+ cronJobsByNamespace := make (map [string ][]byte )
362+ errorsByNamespace := make (map [string ]string )
363+
364+ for _ , namespace := range namespaces {
365+ nsCronJobs , err := client .BatchV1beta1 ().CronJobs (namespace ).List (ctx , metav1.ListOptions {})
366+ if err != nil {
367+ errorsByNamespace [namespace ] = err .Error ()
368+ continue
369+ }
370+
371+ b , err := json .MarshalIndent (nsCronJobs .Items , "" , " " )
372+ if err != nil {
373+ errorsByNamespace [namespace ] = err .Error ()
374+ continue
375+ }
376+
377+ cronJobsByNamespace [namespace + ".json" ] = b
378+ }
379+
380+ return cronJobsByNamespace , errorsByNamespace
381+ }
382+
317383func ingress (ctx context.Context , client * kubernetes.Clientset , namespaces []string ) (map [string ][]byte , map [string ]string ) {
318384 ingressByNamespace := make (map [string ][]byte )
319385 errorsByNamespace := make (map [string ]string )
0 commit comments