From ae943c3bb1e471afe3b92ab07aa7215936f2729a Mon Sep 17 00:00:00 2001 From: Tomasz Szuba Date: Wed, 11 Oct 2023 16:53:49 +0200 Subject: [PATCH] Allow passing undefined labelSelector to KubernetesFetcher Signed-off-by: Tomasz Szuba --- .changeset/silent-years-marry.md | 8 ++++++ plugins/kubernetes-backend/api-report.md | 2 +- .../src/service/KubernetesFetcher.test.ts | 26 +++++++++---------- .../src/service/KubernetesFetcher.ts | 3 +-- plugins/kubernetes-backend/src/types/types.ts | 2 +- 5 files changed, 24 insertions(+), 17 deletions(-) create mode 100644 .changeset/silent-years-marry.md diff --git a/.changeset/silent-years-marry.md b/.changeset/silent-years-marry.md new file mode 100644 index 0000000000..6053261784 --- /dev/null +++ b/.changeset/silent-years-marry.md @@ -0,0 +1,8 @@ +--- +'@backstage/plugin-kubernetes-backend': minor +--- + +**BREAKING** Allow passing undefined `labelSelector` to `KubernetesFetcher` + +`KubernetesFetch` no longer auto-adds `labelSelector` when empty string was passed. +This is only applicable if you have custom ObjectProvider implementation, as build-in `KubernetesFanOutHandler` already does this diff --git a/plugins/kubernetes-backend/api-report.md b/plugins/kubernetes-backend/api-report.md index 3828cdf19f..a6fa50848d 100644 --- a/plugins/kubernetes-backend/api-report.md +++ b/plugins/kubernetes-backend/api-report.md @@ -391,7 +391,7 @@ export interface ObjectFetchParams { // (undocumented) customResources: CustomResource[]; // (undocumented) - labelSelector: string; + labelSelector?: string; // (undocumented) namespace?: string; // (undocumented) diff --git a/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts b/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts index 574a1475fd..e388589e74 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts @@ -165,7 +165,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'pod-name', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], @@ -226,7 +226,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'pod-name', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], @@ -237,7 +237,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'service-name', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], @@ -289,7 +289,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'service-name', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], @@ -339,7 +339,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'pod-name', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], @@ -350,7 +350,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'service-name', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], @@ -420,7 +420,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'pod-name', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], @@ -431,7 +431,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'service-name', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], @@ -443,7 +443,7 @@ describe('KubernetesFetcher', () => { kind: 'Thing', metadata: { name: 'something-else', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], @@ -511,7 +511,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'pod-name', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], @@ -861,7 +861,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'pod-name', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], @@ -872,7 +872,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'service-name', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], @@ -956,7 +956,7 @@ describe('KubernetesFetcher', () => { { metadata: { name: 'pod-name', - labels: { 'backstage.io/kubernetes-id': 'some-service' }, + labels: {}, }, }, ], diff --git a/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts b/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts index e514f5fe0b..d5c945a864 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts @@ -101,8 +101,7 @@ export class KubernetesClientBasedFetcher implements KubernetesFetcher { apiVersion, plural, params.namespace, - params.labelSelector || - `backstage.io/kubernetes-id=${params.serviceId}`, + params.labelSelector, ).then( (r: Response): Promise => r.ok diff --git a/plugins/kubernetes-backend/src/types/types.ts b/plugins/kubernetes-backend/src/types/types.ts index 9236711758..fa7d4f9e60 100644 --- a/plugins/kubernetes-backend/src/types/types.ts +++ b/plugins/kubernetes-backend/src/types/types.ts @@ -35,7 +35,7 @@ export interface ObjectFetchParams { clusterDetails: ClusterDetails; credential: KubernetesCredential; objectTypesToFetch: Set; - labelSelector: string; + labelSelector?: string; customResources: CustomResource[]; namespace?: string; }