make KubernetesFanOutHandler params an object

Signed-off-by: Miklos Kiss <miklos.kiss@prezi.com>
This commit is contained in:
Miklos Kiss
2021-07-27 11:38:25 +02:00
parent 638a376f53
commit 07410d1e9b
3 changed files with 22 additions and 12 deletions
+2
View File
@@ -16,3 +16,5 @@
export * from './service/router';
export * from './types/types';
export { DEFAULT_OBJECTS } from './service/KubernetesFanOutHandler';
@@ -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;
@@ -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);
}