Skip to content

Commit 1b65d1a

Browse files
authored
Merge pull request #413 from replicatedhq/laverya/collect-jobs-and-cronjobs
collect jobs and cronjobs as part of cluster-resources
2 parents 6e09aa6 + 7fcc951 commit 1b65d1a

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

pkg/collect/cluster_resources.go

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
317383
func 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

Comments
 (0)