Creating extension point for kubernetesServiceLocator
Signed-off-by: Andres Mauricio Gomez P <andmagom@outlook.com>
This commit is contained in:
@@ -14,10 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { createExtensionPoint } from '@backstage/backend-plugin-api';
|
||||
import { KubernetesFetcher } from '@backstage/plugin-kubernetes-backend';
|
||||
import { AuthenticationStrategy } from '@backstage/plugin-kubernetes-node';
|
||||
import { KubernetesClustersSupplier } from '@backstage/plugin-kubernetes-node';
|
||||
import { KubernetesObjectsProvider } from '@backstage/plugin-kubernetes-node';
|
||||
import {
|
||||
AuthenticationStrategy,
|
||||
KubernetesClustersSupplier,
|
||||
KubernetesFetcher,
|
||||
KubernetesObjectsProvider,
|
||||
KubernetesServiceLocator,
|
||||
} from '@backstage/plugin-kubernetes-node';
|
||||
|
||||
/**
|
||||
* The interface for {@link kubernetesObjectsProviderExtensionPoint}.
|
||||
@@ -94,3 +97,22 @@ export const kubernetesFetcherExtensionPoint =
|
||||
createExtensionPoint<KubernetesFetcherExtensionPoint>({
|
||||
id: 'kubernetes.fetcher',
|
||||
});
|
||||
|
||||
/**
|
||||
* The interface for {@link kubernetesServiceLocatorExtensionPoint}.
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export interface KubernetesServiceLocatorExtensionPoint {
|
||||
addServiceLocator(serviceLocator: KubernetesServiceLocator): void;
|
||||
}
|
||||
|
||||
/**
|
||||
* An extension point the exposes the ability to configure a kubernetes service locator.
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export const kubernetesServiceLocatorExtensionPoint =
|
||||
createExtensionPoint<KubernetesServiceLocatorExtensionPoint>({
|
||||
id: 'kubernetes.service-locator',
|
||||
});
|
||||
|
||||
@@ -212,3 +212,21 @@ export interface KubernetesFetcher {
|
||||
labelSelector?: string,
|
||||
): Promise<FetchResponseWrapper>;
|
||||
}
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export interface ServiceLocatorRequestContext {
|
||||
objectTypesToFetch: Set<ObjectToFetch>;
|
||||
customResources: CustomResourceMatcher[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to locate which cluster(s) a service is running on
|
||||
* @public
|
||||
*/
|
||||
export interface KubernetesServiceLocator {
|
||||
getClustersByEntity(
|
||||
entity: Entity,
|
||||
requestContext: ServiceLocatorRequestContext,
|
||||
): Promise<{ clusters: ClusterDetails[] }>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user