From 3b3d549a5f9fd563493b8c1470bf1f587358aee4 Mon Sep 17 00:00:00 2001 From: Jamie Klassen Date: Mon, 22 Jan 2024 11:35:28 -0500 Subject: [PATCH] KubernetesFanOutHandler surfaces title Signed-off-by: Jamie Klassen --- .changeset/new-plants-rhyme.md | 5 ++++ .../service/KubernetesFanOutHandler.test.ts | 27 ++++++++++--------- .../src/service/KubernetesFanOutHandler.ts | 1 + 3 files changed, 20 insertions(+), 13 deletions(-) create mode 100644 .changeset/new-plants-rhyme.md diff --git a/.changeset/new-plants-rhyme.md b/.changeset/new-plants-rhyme.md new file mode 100644 index 0000000000..c901754069 --- /dev/null +++ b/.changeset/new-plants-rhyme.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +--- + +Responses from the `/api/kubernetes/services/:serviceId` endpoint now include the cluster title. diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts index a50d0b37a2..5c4534d61b 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts @@ -29,6 +29,7 @@ import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; import { + FetchResponse, KubernetesRequestAuth, ObjectsByEntityResponse, } from '@backstage/plugin-kubernetes-common'; @@ -104,7 +105,7 @@ describe('KubernetesFanOutHandler', () => { ], }; - const mockClusterResourceMap = { + const mockClusterResourceMap: Record = { 'test-cluster': [ { resources: [ @@ -358,17 +359,16 @@ describe('KubernetesFanOutHandler', () => { describe('getKubernetesObjectsByEntity', () => { it('retrieve objects for one cluster', async () => { - getClustersByEntity.mockImplementation(() => - Promise.resolve({ - clusters: [ - { - name: 'test-cluster', - url: '', - authMetadata: {}, - }, - ], - }), - ); + getClustersByEntity.mockResolvedValue({ + clusters: [ + { + name: 'test-cluster', + title: 'cluster-title', + url: '', + authMetadata: {}, + }, + ], + }); sut = getKubernetesFanOutHandler([]); @@ -386,11 +386,12 @@ describe('KubernetesFanOutHandler', () => { new Set(['ns-test-component-test-cluster']), expect.anything(), ); - expect(result).toStrictEqual({ + expect(result).toStrictEqual({ items: [ { cluster: { name: 'test-cluster', + title: 'cluster-title', }, errors: [], podMetrics: [POD_METRICS_FIXTURE], diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts index 7a8ff1bf2d..4df60bc8da 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts @@ -335,6 +335,7 @@ export class KubernetesFanOutHandler { const objects: ClusterObjects = { cluster: { name: clusterDetails.name, + ...(clusterDetails.title && { title: clusterDetails.title }), }, podMetrics: toClientSafePodMetrics(metrics), resources: result.responses,