[kubernetes-backend plugin] fix undefined kind for custom resources (#19421)
* [kubernetes-backend plugin] fix undefined kind for custom resources Signed-off-by: Eric Yang <weityang@ebay.com> * [kubernetes-backend plugin] fix typescript typing Signed-off-by: Eric Yang <weityang@ebay.com> * [kubernetes-backend plugin] update package.json Signed-off-by: Eric Yang <weityang@ebay.com> --------- Signed-off-by: Eric Yang <weityang@ebay.com>
This commit is contained in:
@@ -351,6 +351,7 @@ describe('KubernetesFetcher', () => {
|
||||
res(
|
||||
checkToken(req, ctx, 'token'),
|
||||
withLabels(req, ctx, {
|
||||
kind: 'PodList',
|
||||
items: [{ metadata: { name: 'pod-name' } }],
|
||||
}),
|
||||
),
|
||||
@@ -359,6 +360,7 @@ describe('KubernetesFetcher', () => {
|
||||
res(
|
||||
checkToken(req, ctx, 'token'),
|
||||
withLabels(req, ctx, {
|
||||
kind: 'ServiceList',
|
||||
items: [{ metadata: { name: 'service-name' } }],
|
||||
}),
|
||||
),
|
||||
@@ -369,6 +371,7 @@ describe('KubernetesFetcher', () => {
|
||||
res(
|
||||
checkToken(req, ctx, 'token'),
|
||||
withLabels(req, ctx, {
|
||||
kind: 'ThingList',
|
||||
items: [{ metadata: { name: 'something-else' } }],
|
||||
}),
|
||||
),
|
||||
@@ -424,6 +427,7 @@ describe('KubernetesFetcher', () => {
|
||||
type: 'customresources',
|
||||
resources: [
|
||||
{
|
||||
kind: 'Thing',
|
||||
metadata: {
|
||||
name: 'something-else',
|
||||
labels: { 'backstage.io/kubernetes-id': 'some-service' },
|
||||
|
||||
@@ -41,6 +41,7 @@ import {
|
||||
import fetch, { RequestInit, Response } from 'node-fetch';
|
||||
import * as https from 'https';
|
||||
import fs from 'fs-extra';
|
||||
import { JsonObject } from '@backstage/types';
|
||||
|
||||
export interface KubernetesClientBasedFetcherOptions {
|
||||
logger: Logger;
|
||||
@@ -104,9 +105,15 @@ export class KubernetesClientBasedFetcher implements KubernetesFetcher {
|
||||
(r: Response): Promise<FetchResult> =>
|
||||
r.ok
|
||||
? r.json().then(
|
||||
({ items }): FetchResponse => ({
|
||||
({ kind, items }): FetchResponse => ({
|
||||
type: objectType,
|
||||
resources: items,
|
||||
resources:
|
||||
objectType === 'customresources'
|
||||
? items.map((item: JsonObject) => ({
|
||||
...item,
|
||||
kind: kind.replace(/(List)$/, ''),
|
||||
}))
|
||||
: items,
|
||||
}),
|
||||
)
|
||||
: this.handleUnsuccessfulResponse(params.clusterDetails.name, r),
|
||||
|
||||
Reference in New Issue
Block a user