From 6184f0a3c01aad298032b8cf124a9f578940baaa Mon Sep 17 00:00:00 2001 From: Andres Mauricio Gomez P Date: Mon, 25 Jul 2022 10:22:03 -0500 Subject: [PATCH] Allow configuring Custom Resources per cluster Co-authored-by: Jamie Klassen Signed-off-by: Andres Mauricio Gomez P --- .../src/service/KubernetesFanOutHandler.ts | 15 +++++++-------- plugins/kubernetes-backend/src/types/types.ts | 5 +++++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts index 67748e1506..3b96dc783f 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts @@ -211,19 +211,14 @@ export class KubernetesFanOutHandler { entity, auth, }: KubernetesObjectsByEntity): Promise { - return this.fanOutRequests( - entity, - auth, - this.objectTypesToFetch, - this.customResources, - ); + return this.fanOutRequests(entity, auth, this.objectTypesToFetch); } private async fanOutRequests( entity: Entity, auth: KubernetesRequestAuth, objectTypesToFetch: Set, - customResources: CustomResourceMatcher[], + customResources?: CustomResourceMatcher[], ) { const entityName = entity.metadata?.annotations?.['backstage.io/kubernetes-id'] || @@ -254,7 +249,11 @@ export class KubernetesFanOutHandler { clusterDetails: clusterDetailsItem, objectTypesToFetch: objectTypesToFetch, labelSelector, - customResources: customResources.map(c => ({ + customResources: ( + customResources || + clusterDetailsItem.customResources || + this.customResources + ).map(c => ({ ...c, objectType: 'customresources', })), diff --git a/plugins/kubernetes-backend/src/types/types.ts b/plugins/kubernetes-backend/src/types/types.ts index 0826c4158c..6bdcfc24da 100644 --- a/plugins/kubernetes-backend/src/types/types.ts +++ b/plugins/kubernetes-backend/src/types/types.ts @@ -193,6 +193,11 @@ export interface ClusterDetails { * @see dashboardApp */ dashboardParameters?: JsonObject; + /** + * Specifies which custom resources to look for when returning an entity's + * Kubernetes resources. + */ + customResources?: CustomResourceMatcher[]; } /**