diff --git a/plugins/kubernetes/src/api/KubernetesBackendClient.ts b/plugins/kubernetes/src/api/KubernetesBackendClient.ts index dcb2cca142..353f5e8800 100644 --- a/plugins/kubernetes/src/api/KubernetesBackendClient.ts +++ b/plugins/kubernetes/src/api/KubernetesBackendClient.ts @@ -14,23 +14,27 @@ * limitations under the License. */ -import { DiscoveryApi, IdentityApi } from '@backstage/core'; +import { ConfigApi, DiscoveryApi, IdentityApi } from '@backstage/core'; import { KubernetesApi } from './types'; import { KubernetesRequestBody, ObjectsByEntityResponse, } from '@backstage/plugin-kubernetes-backend'; +import { Config } from '@backstage/config'; export class KubernetesBackendClient implements KubernetesApi { private readonly discoveryApi: DiscoveryApi; private readonly identityApi: IdentityApi; + private readonly configApi: ConfigApi; constructor(options: { discoveryApi: DiscoveryApi; identityApi: IdentityApi; + configApi: ConfigApi; }) { this.discoveryApi = options.discoveryApi; this.identityApi = options.identityApi; + this.configApi = options.configApi; } private async getRequired( @@ -73,4 +77,8 @@ export class KubernetesBackendClient implements KubernetesApi { requestBody, ); } + + getClusters(): Config[] { + return this.configApi.getConfigArray('kubernetes.clusters'); + } } diff --git a/plugins/kubernetes/src/api/types.ts b/plugins/kubernetes/src/api/types.ts index 498e74a626..d9ed79e720 100644 --- a/plugins/kubernetes/src/api/types.ts +++ b/plugins/kubernetes/src/api/types.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import { Config } from '@backstage/config'; import { createApiRef } from '@backstage/core'; import { KubernetesRequestBody, @@ -30,4 +31,5 @@ export interface KubernetesApi { getObjectsByEntity( requestBody: KubernetesRequestBody, ): Promise; + getClusters(): Config[]; } diff --git a/plugins/kubernetes/src/components/KubernetesContent/KubernetesContent.tsx b/plugins/kubernetes/src/components/KubernetesContent/KubernetesContent.tsx index 18351c7455..ec08267579 100644 --- a/plugins/kubernetes/src/components/KubernetesContent/KubernetesContent.tsx +++ b/plugins/kubernetes/src/components/KubernetesContent/KubernetesContent.tsx @@ -25,7 +25,6 @@ import { } from '@material-ui/core'; import { Config } from '@backstage/config'; import { - configApiRef, Content, Page, Progress, @@ -169,8 +168,7 @@ export const KubernetesContent = ({ entity }: KubernetesContentProps) => { >(undefined); const [error, setError] = useState(undefined); - const configApi = useApi(configApiRef); - const clusters: Config[] = configApi.getConfigArray('kubernetes.clusters'); + const clusters: Config[] = kubernetesApi.getClusters(); const allAuthProviders: string[] = clusters.map(c => c.getString('authProvider'), ); diff --git a/plugins/kubernetes/src/plugin.ts b/plugins/kubernetes/src/plugin.ts index 24f51fe64a..6da1abb4b6 100644 --- a/plugins/kubernetes/src/plugin.ts +++ b/plugins/kubernetes/src/plugin.ts @@ -21,6 +21,7 @@ import { identityApiRef, googleAuthApiRef, createRoutableExtension, + configApiRef, } from '@backstage/core'; import { KubernetesBackendClient } from './api/KubernetesBackendClient'; import { kubernetesApiRef } from './api/types'; @@ -37,9 +38,13 @@ export const kubernetesPlugin = createPlugin({ apis: [ createApiFactory({ api: kubernetesApiRef, - deps: { discoveryApi: discoveryApiRef, identityApi: identityApiRef }, - factory: ({ discoveryApi, identityApi }) => - new KubernetesBackendClient({ discoveryApi, identityApi }), + deps: { + discoveryApi: discoveryApiRef, + identityApi: identityApiRef, + configApi: configApiRef, + }, + factory: ({ discoveryApi, identityApi, configApi }) => + new KubernetesBackendClient({ discoveryApi, identityApi, configApi }), }), createApiFactory({ api: kubernetesAuthProvidersApiRef,