Add CronJob as a resource type
parent
3ab1800043
commit
0075a30aea
|
@ -78,4 +78,6 @@ const (
|
||||||
MutatingWebhookConfiguration Kind = "mutating webhook configuration"
|
MutatingWebhookConfiguration Kind = "mutating webhook configuration"
|
||||||
// Node identifies a Kubernetes node object.
|
// Node identifies a Kubernetes node object.
|
||||||
Node Kind = "node"
|
Node Kind = "node"
|
||||||
|
// CronJob identifies Kubernetes objects of kind `cron job`
|
||||||
|
CronJob Kind = "cron job"
|
||||||
)
|
)
|
||||||
|
|
|
@ -21,6 +21,7 @@ import (
|
||||||
|
|
||||||
"golang.org/x/sync/errgroup"
|
"golang.org/x/sync/errgroup"
|
||||||
ar "k8s.io/api/admissionregistration/v1beta1"
|
ar "k8s.io/api/admissionregistration/v1beta1"
|
||||||
|
batchv1beta1 "k8s.io/api/batch/v1beta1"
|
||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
|
@ -55,6 +56,7 @@ type Objects struct {
|
||||||
MutatingWebhookConfigurations *ar.MutatingWebhookConfigurationList
|
MutatingWebhookConfigurations *ar.MutatingWebhookConfigurationList
|
||||||
ValidatingWebhookConfigurations *ar.ValidatingWebhookConfigurationList
|
ValidatingWebhookConfigurations *ar.ValidatingWebhookConfigurationList
|
||||||
Namespaces *corev1.NamespaceList
|
Namespaces *corev1.NamespaceList
|
||||||
|
CronJobs *batchv1beta1.CronJobList
|
||||||
}
|
}
|
||||||
|
|
||||||
// Client encapsulates a client for a Kubernetes cluster.
|
// Client encapsulates a client for a Kubernetes cluster.
|
||||||
|
@ -67,6 +69,7 @@ type Client struct {
|
||||||
func (c *Client) FetchObjects(ctx context.Context, filter ObjectFilter) (*Objects, error) {
|
func (c *Client) FetchObjects(ctx context.Context, filter ObjectFilter) (*Objects, error) {
|
||||||
client := c.KubeClient.CoreV1()
|
client := c.KubeClient.CoreV1()
|
||||||
admissionControllerClient := c.KubeClient.AdmissionregistrationV1beta1()
|
admissionControllerClient := c.KubeClient.AdmissionregistrationV1beta1()
|
||||||
|
batchClient := c.KubeClient.BatchV1beta1()
|
||||||
opts := metav1.ListOptions{}
|
opts := metav1.ListOptions{}
|
||||||
objects := &Objects{}
|
objects := &Objects{}
|
||||||
|
|
||||||
|
@ -135,6 +138,10 @@ func (c *Client) FetchObjects(ctx context.Context, filter ObjectFilter) (*Object
|
||||||
objects.Namespaces, err = client.Namespaces().List(gCtx, opts)
|
objects.Namespaces, err = client.Namespaces().List(gCtx, opts)
|
||||||
return
|
return
|
||||||
})
|
})
|
||||||
|
g.Go(func() (err error) {
|
||||||
|
objects.CronJobs, err = batchClient.CronJobs(corev1.NamespaceAll).List(gCtx, filter.NamespaceOptions(opts))
|
||||||
|
return
|
||||||
|
})
|
||||||
|
|
||||||
err := g.Wait()
|
err := g.Wait()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in New Issue