From 361aad1a0ff1192a864683a7b0b501e1ae8b718c Mon Sep 17 00:00:00 2001 From: Andrew Tran Date: Fri, 19 Nov 2021 11:29:11 -0600 Subject: [PATCH] add cronjobs and jobs to k8s backend Signed-off-by: Andrew Tran --- .../src/service/KubernetesClientProvider.ts | 7 +++++++ .../src/service/KubernetesFanOutHandler.ts | 12 ++++++++++++ .../src/service/KubernetesFetcher.ts | 2 ++ plugins/kubernetes-backend/src/types/types.ts | 2 ++ plugins/kubernetes-common/src/types.ts | 14 ++++++++++++++ 5 files changed, 37 insertions(+) diff --git a/plugins/kubernetes-backend/src/service/KubernetesClientProvider.ts b/plugins/kubernetes-backend/src/service/KubernetesClientProvider.ts index 4b2848508e..5f6825ada9 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesClientProvider.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesClientProvider.ts @@ -16,6 +16,7 @@ import { AppsV1Api, + BatchV1Api, AutoscalingV1Api, CoreV1Api, KubeConfig, @@ -74,6 +75,12 @@ export class KubernetesClientProvider { return kc.makeApiClient(AutoscalingV1Api); } + getBatchClientByClusterDetails(clusterDetails: ClusterDetails) { + const kc = this.getKubeConfig(clusterDetails); + + return kc.makeApiClient(BatchV1Api); + } + getNetworkingBeta1Client(clusterDetails: ClusterDetails) { const kc = this.getKubeConfig(clusterDetails); diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts index 1f856e90a9..41d75a9835 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts @@ -68,6 +68,18 @@ export const DEFAULT_OBJECTS: ObjectToFetch[] = [ plural: 'horizontalpodautoscalers', objectType: 'horizontalpodautoscalers', }, + { + group: 'batch', + apiVersion: 'v1', + plural: 'jobs', + objectType: 'jobs', + }, + { + group: 'batch', + apiVersion: 'v1', + plural: 'cronjobs', + objectType: 'cronjobs', + }, { group: 'networking.k8s.io', apiVersion: 'v1', diff --git a/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts b/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts index 308b7a10be..e845ebeaeb 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts @@ -17,6 +17,7 @@ import { AppsV1Api, AutoscalingV1Api, + BatchV1Api, CoreV1Api, NetworkingV1beta1Api, } from '@kubernetes/client-node'; @@ -41,6 +42,7 @@ export interface Clients { core: CoreV1Api; apps: AppsV1Api; autoscaling: AutoscalingV1Api; + batch: BatchV1Api; networkingBeta1: NetworkingV1beta1Api; } diff --git a/plugins/kubernetes-backend/src/types/types.ts b/plugins/kubernetes-backend/src/types/types.ts index 90485fcaee..b8aa482e47 100644 --- a/plugins/kubernetes-backend/src/types/types.ts +++ b/plugins/kubernetes-backend/src/types/types.ts @@ -67,6 +67,8 @@ export type KubernetesObjectTypes = | 'deployments' | 'replicasets' | 'horizontalpodautoscalers' + | 'jobs' + | 'cronjobs' | 'ingresses' | 'customresources'; diff --git a/plugins/kubernetes-common/src/types.ts b/plugins/kubernetes-common/src/types.ts index add661a5f8..8f4daa111b 100644 --- a/plugins/kubernetes-common/src/types.ts +++ b/plugins/kubernetes-common/src/types.ts @@ -17,8 +17,10 @@ import { ExtensionsV1beta1Ingress, V1ConfigMap, + V1CronJob, V1Deployment, V1HorizontalPodAutoscaler, + V1Job, V1Pod, V1ReplicaSet, V1Service, @@ -83,6 +85,8 @@ export type FetchResponse = | DeploymentFetchResponse | ReplicaSetsFetchResponse | HorizontalPodAutoscalersFetchResponse + | JobsFetchResponse + | CronJobsFetchResponse | IngressesFetchResponse | CustomResourceFetchResponse; @@ -116,6 +120,16 @@ export interface HorizontalPodAutoscalersFetchResponse { resources: Array; } +export interface JobsFetchResponse { + type: 'jobs'; + resources: Array; +} + +export interface CronJobsFetchResponse { + type: 'cronjobs'; + resources: Array; +} + export interface IngressesFetchResponse { type: 'ingresses'; resources: Array;