fix: localKubectlProxy auth provider throwing error (#17139)
* fix: localKubectlProxy auth provider throwing error Signed-off-by: Matthew Clarke <mclarke@spotify.com> * docs: changeset Signed-off-by: Matthew Clarke <mclarke@spotify.com> --------- Signed-off-by: Matthew Clarke <mclarke@spotify.com>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
fix localKubectlProxy auth provider fetching
|
||||
@@ -235,6 +235,55 @@ describe('KubernetesFetcher', () => {
|
||||
],
|
||||
});
|
||||
});
|
||||
it('localKubectlProxy authProvider fetches resources correctly', async () => {
|
||||
worker.use(
|
||||
rest.get(
|
||||
'http://localhost:9999/k8s/clusters/1234/api/v1/services',
|
||||
(req, res, ctx) =>
|
||||
res(
|
||||
withLabels(req, ctx, {
|
||||
items: [{ metadata: { name: 'service-name' } }],
|
||||
}),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
const result = await sut.fetchObjectsForService({
|
||||
serviceId: 'some-service',
|
||||
clusterDetails: {
|
||||
name: 'cluster1',
|
||||
url: 'http://localhost:9999/k8s/clusters/1234',
|
||||
authProvider: 'localKubectlProxy',
|
||||
},
|
||||
objectTypesToFetch: new Set([
|
||||
{
|
||||
group: '',
|
||||
apiVersion: 'v1',
|
||||
plural: 'services',
|
||||
objectType: 'services',
|
||||
},
|
||||
]),
|
||||
labelSelector: '',
|
||||
customResources: [],
|
||||
});
|
||||
|
||||
expect(result).toStrictEqual({
|
||||
errors: [],
|
||||
responses: [
|
||||
{
|
||||
type: 'services',
|
||||
resources: [
|
||||
{
|
||||
metadata: {
|
||||
name: 'service-name',
|
||||
labels: { 'backstage.io/kubernetes-id': 'some-service' },
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
});
|
||||
});
|
||||
it('should return pods, services', async () => {
|
||||
worker.use(
|
||||
rest.get('http://localhost:9999/api/v1/pods', (req, res, ctx) =>
|
||||
|
||||
@@ -191,7 +191,10 @@ export class KubernetesClientBasedFetcher implements KubernetesFetcher {
|
||||
|
||||
let url: URL;
|
||||
let requestInit: RequestInit;
|
||||
if (clusterDetails.serviceAccountToken) {
|
||||
if (
|
||||
clusterDetails.serviceAccountToken ||
|
||||
clusterDetails.authProvider === 'localKubectlProxy'
|
||||
) {
|
||||
[url, requestInit] = this.fetchArgsFromClusterDetails(clusterDetails);
|
||||
} else if (fs.pathExistsSync(Config.SERVICEACCOUNT_TOKEN_PATH)) {
|
||||
[url, requestInit] = this.fetchArgsInCluster();
|
||||
|
||||
Reference in New Issue
Block a user