From 07410d1e9b4bcaa07c2922dfdaf04810827b41c3 Mon Sep 17 00:00:00 2001 From: Miklos Kiss Date: Tue, 27 Jul 2021 11:38:25 +0200 Subject: [PATCH] make KubernetesFanOutHandler params an object Signed-off-by: Miklos Kiss --- plugins/kubernetes-backend/src/index.ts | 2 ++ .../src/service/KubernetesFanOutHandler.ts | 24 ++++++++++++------- .../kubernetes-backend/src/service/router.ts | 8 +++---- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/plugins/kubernetes-backend/src/index.ts b/plugins/kubernetes-backend/src/index.ts index 155c4967d5..e5eb5e7c62 100644 --- a/plugins/kubernetes-backend/src/index.ts +++ b/plugins/kubernetes-backend/src/index.ts @@ -16,3 +16,5 @@ export * from './service/router'; export * from './types/types'; + +export { DEFAULT_OBJECTS } from './service/KubernetesFanOutHandler'; diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts index 5e27dac770..0774a015a1 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts @@ -26,7 +26,7 @@ import { KubernetesRequestBody } from '@backstage/plugin-kubernetes-common'; import { KubernetesAuthTranslator } from '../kubernetes-auth-translator/types'; import { KubernetesAuthTranslatorGenerator } from '../kubernetes-auth-translator/KubernetesAuthTranslatorGenerator'; -const DEFAULT_OBJECTS: KubernetesObjectTypes[] = [ +export const DEFAULT_OBJECTS: KubernetesObjectTypes[] = [ 'pods', 'services', 'configmaps', @@ -36,6 +36,14 @@ const DEFAULT_OBJECTS: KubernetesObjectTypes[] = [ 'ingresses', ]; +export interface KubernetesFanOutHandlerOptions { + logger: Logger; + fetcher: KubernetesFetcher; + serviceLocator: KubernetesServiceLocator; + customResources: CustomResource[]; + objectTypesToFetch: KubernetesObjectTypes[]; +} + export class KubernetesFanOutHandler { private readonly logger: Logger; private readonly fetcher: KubernetesFetcher; @@ -43,13 +51,13 @@ export class KubernetesFanOutHandler { private readonly customResources: CustomResource[]; private readonly objectTypesToFetch: KubernetesObjectTypes[]; - constructor( - logger: Logger, - fetcher: KubernetesFetcher, - serviceLocator: KubernetesServiceLocator, - customResources: CustomResource[], - objectTypesToFetch: KubernetesObjectTypes[] = DEFAULT_OBJECTS, - ) { + constructor({ + logger, + fetcher, + serviceLocator, + customResources, + objectTypesToFetch = DEFAULT_OBJECTS, + }: KubernetesFanOutHandlerOptions) { this.logger = logger; this.fetcher = fetcher; this.serviceLocator = serviceLocator; diff --git a/plugins/kubernetes-backend/src/service/router.ts b/plugins/kubernetes-backend/src/service/router.ts index 13094cf6ed..8a1f2fe627 100644 --- a/plugins/kubernetes-backend/src/service/router.ts +++ b/plugins/kubernetes-backend/src/service/router.ts @@ -134,17 +134,17 @@ export async function createRouter( ); const serviceLocator = getServiceLocator(options.config, clusterDetails); - const objectTypes = options.config.getOptionalStringArray( + const objectTypesToFetch = options.config.getOptionalStringArray( 'kubernetes.objectTypes', ) as KubernetesObjectTypes[]; - const kubernetesFanOutHandler = new KubernetesFanOutHandler( + const kubernetesFanOutHandler = new KubernetesFanOutHandler({ logger, fetcher, serviceLocator, customResources, - objectTypes, - ); + objectTypesToFetch, + }); return makeRouter(logger, kubernetesFanOutHandler, clusterDetails); }