Add CronJob as a resource type

sdas/webhooks-timeout-seconds
jasimmons 2020-10-26 09:32:01 -04:00
parent 3ab1800043
commit 0075a30aea
2 changed files with 9 additions and 0 deletions

View File

@ -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"
) )

View File

@ -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 {