Moving KubernetesObjectsProvider interface to kubernetes-node to avoid a cyclic dependency
Signed-off-by: Andres Mauricio Gomez P <andmagom@outlook.com>
This commit is contained in:
committed by
blam
parent
99c1ef9c26
commit
6b044e8840
@@ -6,16 +6,18 @@
|
||||
import { CatalogApi } from '@backstage/catalog-client';
|
||||
import { Config } from '@backstage/config';
|
||||
import type { CustomResourceMatcher } from '@backstage/plugin-kubernetes-common';
|
||||
import { CustomResourcesByEntity } from '@backstage/plugin-kubernetes-node';
|
||||
import { Duration } from 'luxon';
|
||||
import { Entity } from '@backstage/catalog-model';
|
||||
import express from 'express';
|
||||
import type { FetchResponse } from '@backstage/plugin-kubernetes-common';
|
||||
import type { JsonObject } from '@backstage/types';
|
||||
import type { KubernetesFetchError } from '@backstage/plugin-kubernetes-common';
|
||||
import { KubernetesObjectsByEntity } from '@backstage/plugin-kubernetes-node';
|
||||
import { KubernetesObjectsProvider } from '@backstage/plugin-kubernetes-node';
|
||||
import { KubernetesRequestAuth } from '@backstage/plugin-kubernetes-common';
|
||||
import type { KubernetesRequestBody } from '@backstage/plugin-kubernetes-common';
|
||||
import { Logger } from 'winston';
|
||||
import type { ObjectsByEntityResponse } from '@backstage/plugin-kubernetes-common';
|
||||
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
|
||||
import { PluginEndpointDiscovery } from '@backstage/backend-common';
|
||||
import { RequestHandler } from 'http-proxy-middleware';
|
||||
@@ -101,11 +103,7 @@ export interface CustomResource extends ObjectToFetch {
|
||||
objectType: 'customresources';
|
||||
}
|
||||
|
||||
// @public (undocumented)
|
||||
export interface CustomResourcesByEntity extends KubernetesObjectsByEntity {
|
||||
// (undocumented)
|
||||
customResources: CustomResourceMatcher[];
|
||||
}
|
||||
export { CustomResourcesByEntity };
|
||||
|
||||
// @public (undocumented)
|
||||
export const DEFAULT_OBJECTS: ObjectToFetch[];
|
||||
@@ -316,25 +314,9 @@ export interface KubernetesFetcher {
|
||||
): Promise<FetchResponseWrapper>;
|
||||
}
|
||||
|
||||
// @public (undocumented)
|
||||
export interface KubernetesObjectsByEntity {
|
||||
// (undocumented)
|
||||
auth: KubernetesRequestAuth;
|
||||
// (undocumented)
|
||||
entity: Entity;
|
||||
}
|
||||
export { KubernetesObjectsByEntity };
|
||||
|
||||
// @public (undocumented)
|
||||
export interface KubernetesObjectsProvider {
|
||||
// (undocumented)
|
||||
getCustomResourcesByEntity(
|
||||
customResourcesByEntity: CustomResourcesByEntity,
|
||||
): Promise<ObjectsByEntityResponse>;
|
||||
// (undocumented)
|
||||
getKubernetesObjectsByEntity(
|
||||
kubernetesObjectsByEntity: KubernetesObjectsByEntity,
|
||||
): Promise<ObjectsByEntityResponse>;
|
||||
}
|
||||
export { KubernetesObjectsProvider };
|
||||
|
||||
// @public (undocumented)
|
||||
export interface KubernetesObjectsProviderOptions {
|
||||
|
||||
@@ -21,13 +21,11 @@ import {
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { catalogServiceRef } from '@backstage/plugin-catalog-node/alpha';
|
||||
|
||||
import {
|
||||
KubernetesBuilder,
|
||||
KubernetesObjectsProvider,
|
||||
} from '@backstage/plugin-kubernetes-backend';
|
||||
import { KubernetesBuilder } from '@backstage/plugin-kubernetes-backend';
|
||||
import {
|
||||
KubernetesObjectsProviderExtensionPoint,
|
||||
kubernetesObjectsProviderExtensionPoint,
|
||||
KubernetesObjectsProvider,
|
||||
} from '@backstage/plugin-kubernetes-node';
|
||||
|
||||
class ObjectsProvider implements KubernetesObjectsProviderExtensionPoint {
|
||||
|
||||
@@ -21,7 +21,7 @@ import {
|
||||
import { CatalogApi } from '@backstage/catalog-client';
|
||||
import { InputError, AuthenticationError } from '@backstage/errors';
|
||||
import express, { Request } from 'express';
|
||||
import { KubernetesObjectsProvider } from '../types/types';
|
||||
import { KubernetesObjectsProvider } from '@backstage/plugin-kubernetes-node';
|
||||
import { getBearerTokenFromAuthorizationHeader } from '@backstage/plugin-auth-node';
|
||||
|
||||
export const addResourceRoutesToRouter = (
|
||||
|
||||
@@ -47,13 +47,13 @@ import {
|
||||
CustomResource,
|
||||
KubernetesClustersSupplier,
|
||||
KubernetesFetcher,
|
||||
KubernetesObjectsProvider,
|
||||
KubernetesObjectsProviderOptions,
|
||||
KubernetesObjectTypes,
|
||||
KubernetesServiceLocator,
|
||||
ObjectsByEntityRequest,
|
||||
ServiceLocatorMethod,
|
||||
} from '../types/types';
|
||||
import { KubernetesObjectsProvider } from '@backstage/plugin-kubernetes-node';
|
||||
import {
|
||||
DEFAULT_OBJECTS,
|
||||
KubernetesFanOutHandler,
|
||||
|
||||
@@ -25,8 +25,6 @@ import {
|
||||
FetchResponseWrapper,
|
||||
ObjectToFetch,
|
||||
CustomResource,
|
||||
CustomResourcesByEntity,
|
||||
KubernetesObjectsByEntity,
|
||||
} from '../types/types';
|
||||
import { AuthenticationStrategy, KubernetesCredential } from '../auth/types';
|
||||
import {
|
||||
@@ -46,6 +44,10 @@ import {
|
||||
CurrentResourceUsage,
|
||||
PodStatus,
|
||||
} from '@kubernetes/client-node';
|
||||
import {
|
||||
CustomResourcesByEntity,
|
||||
KubernetesObjectsByEntity,
|
||||
} from '@backstage/plugin-kubernetes-node';
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -15,3 +15,9 @@
|
||||
*/
|
||||
|
||||
export * from './types';
|
||||
|
||||
export type {
|
||||
CustomResourcesByEntity,
|
||||
KubernetesObjectsByEntity,
|
||||
KubernetesObjectsProvider,
|
||||
} from '@backstage/plugin-kubernetes-node';
|
||||
|
||||
@@ -21,9 +21,7 @@ import type {
|
||||
CustomResourceMatcher,
|
||||
FetchResponse,
|
||||
KubernetesFetchError,
|
||||
KubernetesRequestAuth,
|
||||
KubernetesRequestBody,
|
||||
ObjectsByEntityResponse,
|
||||
} from '@backstage/plugin-kubernetes-common';
|
||||
import { Config } from '@backstage/config';
|
||||
import { KubernetesCredential } from '../auth/types';
|
||||
@@ -229,33 +227,3 @@ export interface KubernetesObjectsProviderOptions {
|
||||
* @public
|
||||
*/
|
||||
export type ObjectsByEntityRequest = KubernetesRequestBody;
|
||||
|
||||
/**
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export interface KubernetesObjectsByEntity {
|
||||
entity: Entity;
|
||||
auth: KubernetesRequestAuth;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export interface CustomResourcesByEntity extends KubernetesObjectsByEntity {
|
||||
customResources: CustomResourceMatcher[];
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export interface KubernetesObjectsProvider {
|
||||
getKubernetesObjectsByEntity(
|
||||
kubernetesObjectsByEntity: KubernetesObjectsByEntity,
|
||||
): Promise<ObjectsByEntityResponse>;
|
||||
getCustomResourcesByEntity(
|
||||
customResourcesByEntity: CustomResourcesByEntity,
|
||||
): Promise<ObjectsByEntityResponse>;
|
||||
}
|
||||
|
||||
@@ -3,13 +3,43 @@
|
||||
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
||||
|
||||
```ts
|
||||
import { CustomResourceMatcher } from '@backstage/plugin-kubernetes-common';
|
||||
import { Entity } from '@backstage/catalog-model';
|
||||
import { ExtensionPoint } from '@backstage/backend-plugin-api';
|
||||
import { KubernetesObjectsProvider } from '@backstage/plugin-kubernetes-backend';
|
||||
import { KubernetesObjectsProvider as KubernetesObjectsProvider_2 } from '@backstage/plugin-kubernetes-node';
|
||||
import { KubernetesRequestAuth } from '@backstage/plugin-kubernetes-common';
|
||||
import { ObjectsByEntityResponse } from '@backstage/plugin-kubernetes-common';
|
||||
|
||||
// @public (undocumented)
|
||||
export interface CustomResourcesByEntity extends KubernetesObjectsByEntity {
|
||||
// (undocumented)
|
||||
customResources: CustomResourceMatcher[];
|
||||
}
|
||||
|
||||
// @public (undocumented)
|
||||
export interface KubernetesObjectsByEntity {
|
||||
// (undocumented)
|
||||
auth: KubernetesRequestAuth;
|
||||
// (undocumented)
|
||||
entity: Entity;
|
||||
}
|
||||
|
||||
// @public (undocumented)
|
||||
export interface KubernetesObjectsProvider {
|
||||
// (undocumented)
|
||||
getCustomResourcesByEntity(
|
||||
customResourcesByEntity: CustomResourcesByEntity,
|
||||
): Promise<ObjectsByEntityResponse>;
|
||||
// (undocumented)
|
||||
getKubernetesObjectsByEntity(
|
||||
kubernetesObjectsByEntity: KubernetesObjectsByEntity,
|
||||
): Promise<ObjectsByEntityResponse>;
|
||||
}
|
||||
|
||||
// @public
|
||||
export interface KubernetesObjectsProviderExtensionPoint {
|
||||
// (undocumented)
|
||||
addObjectsProvider(provider: KubernetesObjectsProvider): void;
|
||||
addObjectsProvider(provider: KubernetesObjectsProvider_2): void;
|
||||
}
|
||||
|
||||
// @public
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
],
|
||||
"dependencies": {
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/plugin-kubernetes-backend": "workspace:^"
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/plugin-kubernetes-common": "workspace:^"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { createExtensionPoint } from '@backstage/backend-plugin-api';
|
||||
import { KubernetesObjectsProvider } from '@backstage/plugin-kubernetes-backend';
|
||||
import { KubernetesObjectsProvider } from '@backstage/plugin-kubernetes-node';
|
||||
|
||||
/**
|
||||
* The interface for {@link kubernetesObjectsProviderExtensionPoint}.
|
||||
|
||||
@@ -33,3 +33,5 @@ export {
|
||||
kubernetesObjectsProviderExtensionPoint,
|
||||
type KubernetesObjectsProviderExtensionPoint,
|
||||
} from './extensions';
|
||||
|
||||
export * from './types';
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* Copyright 2023 The Backstage Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export * from './types';
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright 2023 The Backstage Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { Entity } from '@backstage/catalog-model';
|
||||
import {
|
||||
CustomResourceMatcher,
|
||||
KubernetesRequestAuth,
|
||||
ObjectsByEntityResponse,
|
||||
} from '@backstage/plugin-kubernetes-common';
|
||||
|
||||
/**
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
|
||||
export interface KubernetesObjectsProvider {
|
||||
getKubernetesObjectsByEntity(
|
||||
kubernetesObjectsByEntity: KubernetesObjectsByEntity,
|
||||
): Promise<ObjectsByEntityResponse>;
|
||||
getCustomResourcesByEntity(
|
||||
customResourcesByEntity: CustomResourcesByEntity,
|
||||
): Promise<ObjectsByEntityResponse>;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
|
||||
export interface KubernetesObjectsByEntity {
|
||||
entity: Entity;
|
||||
auth: KubernetesRequestAuth;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
|
||||
export interface CustomResourcesByEntity extends KubernetesObjectsByEntity {
|
||||
customResources: CustomResourceMatcher[];
|
||||
}
|
||||
@@ -7665,6 +7665,17 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@backstage/plugin-kubernetes-node@workspace:^, @backstage/plugin-kubernetes-node@workspace:plugins/kubernetes-node":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@backstage/plugin-kubernetes-node@workspace:plugins/kubernetes-node"
|
||||
dependencies:
|
||||
"@backstage/backend-plugin-api": "workspace:^"
|
||||
"@backstage/catalog-model": "workspace:^"
|
||||
"@backstage/cli": "workspace:^"
|
||||
"@backstage/plugin-kubernetes-common": "workspace:^"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@backstage/plugin-kubernetes-react@workspace:^, @backstage/plugin-kubernetes-react@workspace:plugins/kubernetes-react":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@backstage/plugin-kubernetes-react@workspace:plugins/kubernetes-react"
|
||||
@@ -7704,16 +7715,6 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@backstage/plugin-kubernetes-node@workspace:^, @backstage/plugin-kubernetes-node@workspace:plugins/kubernetes-node":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@backstage/plugin-kubernetes-node@workspace:plugins/kubernetes-node"
|
||||
dependencies:
|
||||
"@backstage/backend-plugin-api": "workspace:^"
|
||||
"@backstage/cli": "workspace:^"
|
||||
"@backstage/plugin-kubernetes-backend": "workspace:^"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@backstage/plugin-kubernetes@workspace:^, @backstage/plugin-kubernetes@workspace:plugins/kubernetes":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@backstage/plugin-kubernetes@workspace:plugins/kubernetes"
|
||||
|
||||
Reference in New Issue
Block a user