@backstage/plugin-kubernetes-react 0.1.0-next.0 → 0.1.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/index.d.ts +14 -2
- package/dist/index.esm.js +28 -6
- package/dist/index.esm.js.map +1 -1
- package/package.json +9 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @backstage/plugin-kubernetes-react
|
|
2
2
|
|
|
3
|
+
## 0.1.0-next.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 95518765ee: Add Kubernetes cluster plugin. Viewing Kubernetes clusters as an Admin from Backstage
|
|
8
|
+
- 5dac12e435: The kubernetes APIs invokes Authentication Strategies when Backstage-Kubernetes-Authorization-X-X headers are provided, this enable the possibility to invoke strategies that executes additional steps to get a kubernetes token like on pinniped or custom strategies
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
- @backstage/core-components@0.13.6-next.2
|
|
11
|
+
- @backstage/core-plugin-api@1.7.0-next.1
|
|
12
|
+
- @backstage/catalog-model@1.4.3-next.0
|
|
13
|
+
- @backstage/errors@1.2.3-next.0
|
|
14
|
+
- @backstage/plugin-kubernetes-common@0.7.0-next.1
|
|
15
|
+
- @backstage/types@1.1.1
|
|
16
|
+
|
|
3
17
|
## 0.1.0-next.0
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -105,8 +105,14 @@ interface KubernetesApi {
|
|
|
105
105
|
getClusters(): Promise<{
|
|
106
106
|
name: string;
|
|
107
107
|
authProvider: string;
|
|
108
|
-
oidcTokenProvider?: string
|
|
108
|
+
oidcTokenProvider?: string;
|
|
109
109
|
}[]>;
|
|
110
|
+
getCluster(clusterName: string): Promise<{
|
|
111
|
+
name: string;
|
|
112
|
+
authProvider: string;
|
|
113
|
+
oidcTokenProvider?: string;
|
|
114
|
+
dashboardUrl?: string;
|
|
115
|
+
} | undefined>;
|
|
110
116
|
getWorkloadsByEntity(request: WorkloadsByEntityRequest): Promise<ObjectsByEntityResponse>;
|
|
111
117
|
getCustomObjectsByEntity(request: CustomObjectsByEntityRequest): Promise<ObjectsByEntityResponse>;
|
|
112
118
|
proxy(options: {
|
|
@@ -219,7 +225,11 @@ declare class KubernetesBackendClient implements KubernetesApi {
|
|
|
219
225
|
});
|
|
220
226
|
private handleResponse;
|
|
221
227
|
private postRequired;
|
|
222
|
-
|
|
228
|
+
getCluster(clusterName: string): Promise<{
|
|
229
|
+
name: string;
|
|
230
|
+
authProvider: string;
|
|
231
|
+
oidcTokenProvider?: string;
|
|
232
|
+
}>;
|
|
223
233
|
private getCredentials;
|
|
224
234
|
getObjectsByEntity(requestBody: KubernetesRequestBody): Promise<ObjectsByEntityResponse>;
|
|
225
235
|
getWorkloadsByEntity(request: WorkloadsByEntityRequest): Promise<ObjectsByEntityResponse>;
|
|
@@ -233,6 +243,8 @@ declare class KubernetesBackendClient implements KubernetesApi {
|
|
|
233
243
|
path: string;
|
|
234
244
|
init?: RequestInit;
|
|
235
245
|
}): Promise<Response>;
|
|
246
|
+
private static getKubernetesHeaders;
|
|
247
|
+
private static getKubernetesAuthHeaderByAuthProvider;
|
|
236
248
|
}
|
|
237
249
|
|
|
238
250
|
/**
|
package/dist/index.esm.js
CHANGED
|
@@ -453,22 +453,44 @@ class KubernetesBackendClient {
|
|
|
453
453
|
return (await this.handleResponse(response)).items;
|
|
454
454
|
}
|
|
455
455
|
async proxy(options) {
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
456
|
+
const { authProvider, oidcTokenProvider } = await this.getCluster(
|
|
457
|
+
options.clusterName
|
|
458
|
+
);
|
|
459
|
+
const kubernetesCredentials = await this.getCredentials(authProvider);
|
|
459
460
|
const url = `${await this.discoveryApi.getBaseUrl("kubernetes")}/proxy${options.path}`;
|
|
460
461
|
const identityResponse = await this.identityApi.getCredentials();
|
|
461
|
-
const headers =
|
|
462
|
+
const headers = KubernetesBackendClient.getKubernetesHeaders(
|
|
463
|
+
options,
|
|
464
|
+
kubernetesCredentials == null ? void 0 : kubernetesCredentials.token,
|
|
465
|
+
identityResponse,
|
|
466
|
+
authProvider,
|
|
467
|
+
oidcTokenProvider
|
|
468
|
+
);
|
|
469
|
+
return await fetch(url, { ...options.init, headers });
|
|
470
|
+
}
|
|
471
|
+
static getKubernetesHeaders(options, k8sToken, identityResponse, authProvider, oidcTokenProvider) {
|
|
472
|
+
var _a;
|
|
473
|
+
const kubernetesAuthHeader = KubernetesBackendClient.getKubernetesAuthHeaderByAuthProvider(
|
|
474
|
+
authProvider,
|
|
475
|
+
oidcTokenProvider
|
|
476
|
+
);
|
|
477
|
+
return {
|
|
462
478
|
...(_a = options.init) == null ? void 0 : _a.headers,
|
|
463
479
|
[`Backstage-Kubernetes-Cluster`]: options.clusterName,
|
|
464
480
|
...k8sToken && {
|
|
465
|
-
[
|
|
481
|
+
[kubernetesAuthHeader]: k8sToken
|
|
466
482
|
},
|
|
467
483
|
...identityResponse.token && {
|
|
468
484
|
Authorization: `Bearer ${identityResponse.token}`
|
|
469
485
|
}
|
|
470
486
|
};
|
|
471
|
-
|
|
487
|
+
}
|
|
488
|
+
static getKubernetesAuthHeaderByAuthProvider(authProvider, oidcTokenProvider) {
|
|
489
|
+
let header = "Backstage-Kubernetes-Authorization";
|
|
490
|
+
header = header.concat("-", authProvider);
|
|
491
|
+
if (oidcTokenProvider)
|
|
492
|
+
header = header.concat("-", oidcTokenProvider);
|
|
493
|
+
return header;
|
|
472
494
|
}
|
|
473
495
|
}
|
|
474
496
|
|