diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts index e35230f34f..00090e57ac 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts @@ -207,7 +207,7 @@ export class KubernetesFanOutHandler { 'backstage.io/kubernetes-label-selector' ] || `backstage.io/kubernetes-id=${entityName}`; - const namespace = + const namespace = requestBody.entity?.metadata?.annotations?.[ 'backstage.io/kubernetes-namespace' ]; @@ -221,7 +221,7 @@ export class KubernetesFanOutHandler { objectTypesToFetch: this.objectTypesToFetch, labelSelector, customResources: this.customResources, - namespace + namespace, }) .then(result => this.getMetricsForPods(clusterDetailsItem, result)) .then(r => this.toClusterObjects(clusterDetailsItem, r)); @@ -229,16 +229,18 @@ export class KubernetesFanOutHandler { ).then(this.toObjectsByEntityResponse); } - toObjectsByEntityResponse(clusterObjects: ClusterObjects[]):ObjectsByEntityResponse { -return { - items: clusterObjects.filter( - item => - (item.errors !== undefined && item.errors.length >= 1) || - (item.resources !== undefined && - item.resources.length >= 1 && - item.resources.some(fr => fr.resources.length >= 1)), - ), -} + toObjectsByEntityResponse( + clusterObjects: ClusterObjects[], + ): ObjectsByEntityResponse { + return { + items: clusterObjects.filter( + item => + (item.errors !== undefined && item.errors.length >= 1) || + (item.resources !== undefined && + item.resources.length >= 1 && + item.resources.some(fr => fr.resources.length >= 1)), + ), + }; } toClusterObjects( diff --git a/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts b/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts index 5ba64dd53a..25a5c9312b 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts @@ -515,12 +515,12 @@ describe('KubernetesFetcher', () => { }, objectTypesToFetch: OBJECTS_TO_FETCH, labelSelector: '', - namespace: "some-namespace", + namespace: 'some-namespace', customResources: [], }); const mockCall = clientMock.listNamespacedCustomObject.mock.calls[0]; - const namespace = mockCall[2] - expect(namespace).toBe("some-namespace"); + const namespace = mockCall[2]; + expect(namespace).toBe('some-namespace'); }); }); diff --git a/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts b/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts index 0e4f32b0c3..1189dfa390 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts @@ -97,7 +97,7 @@ export class KubernetesClientBasedFetcher implements KubernetesFetcher { params.labelSelector || `backstage.io/kubernetes-id=${params.serviceId}`, toFetch.objectType, - params.namespace + params.namespace, ).catch(this.captureKubernetesErrorsRethrowOthers.bind(this)); }); @@ -139,39 +139,21 @@ export class KubernetesClientBasedFetcher implements KubernetesFetcher { resource: ObjectToFetch, labelSelector: string, objectType: KubernetesObjectTypes, - namespace?: string + namespace?: string, ): Promise { const customObjects = this.kubernetesClientProvider.getCustomObjectsClient(clusterDetails); - customObjects.addInterceptor((requestOptions: any) => { - requestOptions.uri = requestOptions.uri.replace('/apis//v1/', '/api/v1/'); - }); + customObjects.addInterceptor((requestOptions: any) => { + requestOptions.uri = requestOptions.uri.replace('/apis//v1/', '/api/v1/'); + }); - if(namespace){ + if (namespace) { return customObjects - .listNamespacedCustomObject( - resource.group, - resource.apiVersion, - namespace, - resource.plural, - '', - false, - '', - '', - labelSelector, - ) - .then(r => { - return { - type: objectType, - resources: (r.body as any).items, - }; - }); - } else { - return customObjects - .listClusterCustomObject( + .listNamespacedCustomObject( resource.group, resource.apiVersion, + namespace, resource.plural, '', false, @@ -186,5 +168,22 @@ export class KubernetesClientBasedFetcher implements KubernetesFetcher { }; }); } + return customObjects + .listClusterCustomObject( + resource.group, + resource.apiVersion, + resource.plural, + '', + false, + '', + '', + labelSelector, + ) + .then(r => { + return { + type: objectType, + resources: (r.body as any).items, + }; + }); } }