Merge pull request #31349 from IlyaSavich/kubernetes-router-extension
Add Kubernetes Router extension point, add fetcher to custom objects provider
This commit is contained in:
@@ -43,6 +43,7 @@
|
||||
"@backstage/plugin-kubernetes-common": "workspace:^",
|
||||
"@backstage/types": "workspace:^",
|
||||
"@kubernetes/client-node": "1.4.0",
|
||||
"@types/express": "^4.17.6",
|
||||
"node-fetch": "^2.7.0",
|
||||
"winston": "^3.2.1"
|
||||
},
|
||||
|
||||
@@ -8,6 +8,7 @@ import { BackstageCredentials } from '@backstage/backend-plugin-api';
|
||||
import { CustomResource as CustomResource_2 } from '@backstage/plugin-kubernetes-node';
|
||||
import { CustomResourceMatcher } from '@backstage/plugin-kubernetes-common';
|
||||
import { Entity } from '@backstage/catalog-model';
|
||||
import type express from 'express';
|
||||
import { ExtensionPoint } from '@backstage/backend-plugin-api';
|
||||
import { FetchResponse } from '@backstage/plugin-kubernetes-common';
|
||||
import { JsonObject } from '@backstage/types';
|
||||
@@ -198,6 +199,7 @@ export type KubernetesObjectsProviderFactory = (opts: {
|
||||
getDefault: () => Promise<KubernetesObjectsProvider_2>;
|
||||
clusterSupplier: KubernetesClustersSupplier_2;
|
||||
serviceLocator: KubernetesServiceLocator_2;
|
||||
fetcher: KubernetesFetcher_2;
|
||||
customResources: CustomResource_2[];
|
||||
objectTypesToFetch?: ObjectToFetch_2[];
|
||||
authStrategy: AuthenticationStrategy_2;
|
||||
@@ -221,6 +223,25 @@ export type KubernetesObjectTypes =
|
||||
| 'daemonsets'
|
||||
| 'secrets';
|
||||
|
||||
// @public
|
||||
export interface KubernetesRouterExtensionPoint {
|
||||
// (undocumented)
|
||||
addRouter(router: KubernetesRouterFactory): void;
|
||||
}
|
||||
|
||||
// @public
|
||||
export const kubernetesRouterExtensionPoint: ExtensionPoint<KubernetesRouterExtensionPoint>;
|
||||
|
||||
// @public
|
||||
export type KubernetesRouterFactory = (opts: {
|
||||
getDefault: () => express.Router;
|
||||
objectsProvider: KubernetesObjectsProvider_2;
|
||||
clusterSupplier: KubernetesClustersSupplier_2;
|
||||
authStrategyMap: {
|
||||
[key: string]: AuthenticationStrategy_2;
|
||||
};
|
||||
}) => express.Router;
|
||||
|
||||
// @public
|
||||
export interface KubernetesServiceLocator {
|
||||
// (undocumented)
|
||||
|
||||
@@ -23,6 +23,7 @@ import {
|
||||
KubernetesObjectsProvider,
|
||||
KubernetesServiceLocator,
|
||||
} from '@backstage/plugin-kubernetes-node';
|
||||
import type express from 'express';
|
||||
|
||||
/**
|
||||
* A factory function for creating a KubernetesObjectsProvider.
|
||||
@@ -33,6 +34,7 @@ export type KubernetesObjectsProviderFactory = (opts: {
|
||||
getDefault: () => Promise<KubernetesObjectsProvider>;
|
||||
clusterSupplier: KubernetesClustersSupplier;
|
||||
serviceLocator: KubernetesServiceLocator;
|
||||
fetcher: KubernetesFetcher;
|
||||
customResources: CustomResource[];
|
||||
objectTypesToFetch?: ObjectToFetch[];
|
||||
authStrategy: AuthenticationStrategy;
|
||||
@@ -168,3 +170,34 @@ export const kubernetesServiceLocatorExtensionPoint =
|
||||
createExtensionPoint<KubernetesServiceLocatorExtensionPoint>({
|
||||
id: 'kubernetes.service-locator',
|
||||
});
|
||||
|
||||
/**
|
||||
* A factory function for creating a kubernetes router.
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export type KubernetesRouterFactory = (opts: {
|
||||
getDefault: () => express.Router;
|
||||
objectsProvider: KubernetesObjectsProvider;
|
||||
clusterSupplier: KubernetesClustersSupplier;
|
||||
authStrategyMap: { [key: string]: AuthenticationStrategy };
|
||||
}) => express.Router;
|
||||
|
||||
/**
|
||||
* The interface for {@link kubernetesRouterExtensionPoint}.
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export interface KubernetesRouterExtensionPoint {
|
||||
addRouter(router: KubernetesRouterFactory): void;
|
||||
}
|
||||
|
||||
/**
|
||||
* An extension point the exposes the ability to configure a kubernetes service locator.
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export const kubernetesRouterExtensionPoint =
|
||||
createExtensionPoint<KubernetesRouterExtensionPoint>({
|
||||
id: 'kubernetes.router',
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user