@backstage/plugin-kubernetes 0.5.1 → 0.5.5-next.0
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 +47 -0
- package/dist/assets/emptystate.svg +1 -1
- package/dist/index.d.ts +22 -3
- package/dist/index.esm.js +66 -19
- package/dist/index.esm.js.map +1 -1
- package/package.json +12 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,52 @@
|
|
|
1
1
|
# @backstage/plugin-kubernetes
|
|
2
2
|
|
|
3
|
+
## 0.5.5-next.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 51fbedc445: Migrated usage of deprecated `IdentityApi` methods.
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @backstage/core-components@0.8.5-next.0
|
|
10
|
+
- @backstage/core-plugin-api@0.6.0-next.0
|
|
11
|
+
- @backstage/config@0.1.13-next.0
|
|
12
|
+
- @backstage/plugin-catalog-react@0.6.12-next.0
|
|
13
|
+
- @backstage/catalog-model@0.9.10-next.0
|
|
14
|
+
- @backstage/plugin-kubernetes-common@0.2.2-next.0
|
|
15
|
+
|
|
16
|
+
## 0.5.4
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- 7612e2856b: Clean up emptystate.svg image, removing wrong white artifact from the background
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
- @backstage/config@0.1.12
|
|
23
|
+
- @backstage/core-components@0.8.4
|
|
24
|
+
- @backstage/core-plugin-api@0.5.0
|
|
25
|
+
- @backstage/plugin-catalog-react@0.6.11
|
|
26
|
+
- @backstage/catalog-model@0.9.9
|
|
27
|
+
|
|
28
|
+
## 0.5.3
|
|
29
|
+
|
|
30
|
+
### Patch Changes
|
|
31
|
+
|
|
32
|
+
- 7ac0bd2c66: implement dashboard link formatter for GKE
|
|
33
|
+
- 4ce51ab0f1: Internal refactor of the `react-use` imports to use `react-use/lib/*` instead.
|
|
34
|
+
- Updated dependencies
|
|
35
|
+
- @backstage/core-plugin-api@0.4.1
|
|
36
|
+
- @backstage/plugin-catalog-react@0.6.10
|
|
37
|
+
- @backstage/plugin-kubernetes-common@0.2.1
|
|
38
|
+
- @backstage/core-components@0.8.3
|
|
39
|
+
|
|
40
|
+
## 0.5.2
|
|
41
|
+
|
|
42
|
+
### Patch Changes
|
|
43
|
+
|
|
44
|
+
- 610614a06d: Includes `KubernetesBackendClient` in the export to allow developers to use it externally.
|
|
45
|
+
- Updated dependencies
|
|
46
|
+
- @backstage/core-plugin-api@0.4.0
|
|
47
|
+
- @backstage/plugin-catalog-react@0.6.8
|
|
48
|
+
- @backstage/core-components@0.8.2
|
|
49
|
+
|
|
3
50
|
## 0.5.1
|
|
4
51
|
|
|
5
52
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="282" height="173" fill="none" viewBox="0 0 282 173"><path fill="#000" fill-opacity=".05" fill-rule="evenodd" d="M16.4571 45.1637C11.0514 46.1711 7.48574 51.3699 8.49306 56.7756C9.50039 62.1814 14.6992 65.747 20.105 64.7397L27.5528 63.3518C25.4791 65.5835 24.4525 68.7347 25.0535 71.9596C26.0608 77.3653 31.2596 80.931 36.6654 79.9236L89.691 70.0427C89.7016 70.1067 89.7129 70.1708 89.7249 70.2349C90.3258 73.4598 92.4185 76.0298 95.1569 77.3647L91.9031 77.971C86.4974 78.9784 82.9318 84.1772 83.9391 89.583C84.9464 94.9887 90.1452 98.5543 95.551 97.547L250.098 68.7482C255.504 67.7409 259.069 62.5421 258.062 57.1363C257.461 53.9114 255.368 51.3414 252.63 50.0065L257.835 49.0366C263.241 48.0292 266.807 42.8304 265.799 37.4247C264.792 32.0189 259.593 28.4533 254.187 29.4606L161.492 46.7338C161.481 46.6697 161.47 46.6056 161.458 46.5415C160.857 43.3166 158.764 40.7466 156.026 39.4117L165.025 37.7347C170.431 36.7274 173.997 31.5286 172.989 26.1228C171.982 20.7171 166.783 17.1514 161.378 18.1588L16.4571 45.1637ZM24.3031 122.54C23.2958 117.134 26.8614 111.936 32.2672 110.928L190.856 81.3762C196.262 80.3688 201.461 83.9345 202.468 89.3402C203.476 94.746 199.91 99.9448 194.504 100.952L189.963 101.798C190.493 102.057 190.999 102.362 191.474 102.708L246.43 92.4677C251.835 91.4604 257.034 95.026 258.041 100.432C258.642 103.657 257.616 106.808 255.542 109.04L256.649 108.833C262.055 107.826 267.253 111.392 268.261 116.797C269.268 122.203 265.702 127.402 260.297 128.409L95.5591 159.107C90.1534 160.114 84.9545 156.549 83.9472 151.143C82.9399 145.737 86.5055 140.538 91.9113 139.531L103.94 137.29C103.41 137.031 102.904 136.726 102.429 136.38L29.1002 150.044C23.6944 151.051 18.4956 147.486 17.4882 142.08C16.4809 136.674 20.0465 131.475 25.4523 130.468L29.7352 129.67C26.9967 128.335 24.904 125.765 24.3031 122.54Z" clip-rule="evenodd"/><
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="282" height="173" fill="none" viewBox="0 0 282 173"><path fill="#000" fill-opacity=".05" fill-rule="evenodd" d="M16.4571 45.1637C11.0514 46.1711 7.48574 51.3699 8.49306 56.7756C9.50039 62.1814 14.6992 65.747 20.105 64.7397L27.5528 63.3518C25.4791 65.5835 24.4525 68.7347 25.0535 71.9596C26.0608 77.3653 31.2596 80.931 36.6654 79.9236L89.691 70.0427C89.7016 70.1067 89.7129 70.1708 89.7249 70.2349C90.3258 73.4598 92.4185 76.0298 95.1569 77.3647L91.9031 77.971C86.4974 78.9784 82.9318 84.1772 83.9391 89.583C84.9464 94.9887 90.1452 98.5543 95.551 97.547L250.098 68.7482C255.504 67.7409 259.069 62.5421 258.062 57.1363C257.461 53.9114 255.368 51.3414 252.63 50.0065L257.835 49.0366C263.241 48.0292 266.807 42.8304 265.799 37.4247C264.792 32.0189 259.593 28.4533 254.187 29.4606L161.492 46.7338C161.481 46.6697 161.47 46.6056 161.458 46.5415C160.857 43.3166 158.764 40.7466 156.026 39.4117L165.025 37.7347C170.431 36.7274 173.997 31.5286 172.989 26.1228C171.982 20.7171 166.783 17.1514 161.378 18.1588L16.4571 45.1637ZM24.3031 122.54C23.2958 117.134 26.8614 111.936 32.2672 110.928L190.856 81.3762C196.262 80.3688 201.461 83.9345 202.468 89.3402C203.476 94.746 199.91 99.9448 194.504 100.952L189.963 101.798C190.493 102.057 190.999 102.362 191.474 102.708L246.43 92.4677C251.835 91.4604 257.034 95.026 258.041 100.432C258.642 103.657 257.616 106.808 255.542 109.04L256.649 108.833C262.055 107.826 267.253 111.392 268.261 116.797C269.268 122.203 265.702 127.402 260.297 128.409L95.5591 159.107C90.1534 160.114 84.9545 156.549 83.9472 151.143C82.9399 145.737 86.5055 140.538 91.9113 139.531L103.94 137.29C103.41 137.031 102.904 136.726 102.429 136.38L29.1002 150.044C23.6944 151.051 18.4956 147.486 17.4882 142.08C16.4809 136.674 20.0465 131.475 25.4523 130.468L29.7352 129.67C26.9967 128.335 24.904 125.765 24.3031 122.54Z" clip-rule="evenodd"/><circle cx="188" cy="55" r="6" fill="#69DDC7"/><circle cx="91" cy="92" r="6" fill="#69DDC7"/><path fill="#69DDC7" d="M121 114L95.5 88L86.5 96L121 130L192.5 59L183.5 51L121 114Z"/></svg>
|
package/dist/index.d.ts
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
import * as _backstage_catalog_model from '@backstage/catalog-model';
|
|
3
3
|
import { Entity } from '@backstage/catalog-model';
|
|
4
4
|
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
5
|
-
import { OAuthApi } from '@backstage/core-plugin-api';
|
|
5
|
+
import { DiscoveryApi, IdentityApi, OAuthApi } from '@backstage/core-plugin-api';
|
|
6
6
|
import { KubernetesRequestBody, ObjectsByEntityResponse } from '@backstage/plugin-kubernetes-common';
|
|
7
|
+
import { JsonObject } from '@backstage/types';
|
|
7
8
|
|
|
8
9
|
declare const kubernetesPlugin: _backstage_core_plugin_api.BackstagePlugin<{
|
|
9
10
|
entityContent: _backstage_core_plugin_api.RouteRef<undefined>;
|
|
@@ -28,6 +29,22 @@ interface KubernetesApi {
|
|
|
28
29
|
}[]>;
|
|
29
30
|
}
|
|
30
31
|
|
|
32
|
+
declare class KubernetesBackendClient implements KubernetesApi {
|
|
33
|
+
private readonly discoveryApi;
|
|
34
|
+
private readonly identityApi;
|
|
35
|
+
constructor(options: {
|
|
36
|
+
discoveryApi: DiscoveryApi;
|
|
37
|
+
identityApi: IdentityApi;
|
|
38
|
+
});
|
|
39
|
+
private handleResponse;
|
|
40
|
+
private postRequired;
|
|
41
|
+
getObjectsByEntity(requestBody: KubernetesRequestBody): Promise<ObjectsByEntityResponse>;
|
|
42
|
+
getClusters(): Promise<{
|
|
43
|
+
name: string;
|
|
44
|
+
authProvider: string;
|
|
45
|
+
}[]>;
|
|
46
|
+
}
|
|
47
|
+
|
|
31
48
|
declare const kubernetesAuthProvidersApiRef: _backstage_core_plugin_api.ApiRef<KubernetesAuthProvidersApi>;
|
|
32
49
|
interface KubernetesAuthProvidersApi {
|
|
33
50
|
decorateRequestBodyForAuth(authProvider: string, requestBody: KubernetesRequestBody): Promise<KubernetesRequestBody>;
|
|
@@ -44,13 +61,15 @@ declare class KubernetesAuthProviders implements KubernetesAuthProvidersApi {
|
|
|
44
61
|
declare type FormatClusterLinkOptions = {
|
|
45
62
|
dashboardUrl?: string;
|
|
46
63
|
dashboardApp?: string;
|
|
64
|
+
dashboardParameters?: JsonObject;
|
|
47
65
|
object: any;
|
|
48
66
|
kind: string;
|
|
49
67
|
};
|
|
50
68
|
declare function formatClusterLink(options: FormatClusterLinkOptions): string | undefined;
|
|
51
69
|
|
|
52
70
|
interface ClusterLinksFormatterOptions {
|
|
53
|
-
dashboardUrl
|
|
71
|
+
dashboardUrl?: URL;
|
|
72
|
+
dashboardParameters?: JsonObject;
|
|
54
73
|
object: any;
|
|
55
74
|
kind: string;
|
|
56
75
|
}
|
|
@@ -58,4 +77,4 @@ declare type ClusterLinksFormatter = (options: ClusterLinksFormatterOptions) =>
|
|
|
58
77
|
|
|
59
78
|
declare const clusterLinksFormatters: Record<string, ClusterLinksFormatter>;
|
|
60
79
|
|
|
61
|
-
export { EntityKubernetesContent, KubernetesApi, KubernetesAuthProviders, KubernetesAuthProvidersApi, Router, clusterLinksFormatters, formatClusterLink, isKubernetesAvailable, kubernetesApiRef, kubernetesAuthProvidersApiRef, kubernetesPlugin, kubernetesPlugin as plugin };
|
|
80
|
+
export { EntityKubernetesContent, KubernetesApi, KubernetesAuthProviders, KubernetesAuthProvidersApi, KubernetesBackendClient, Router, clusterLinksFormatters, formatClusterLink, isKubernetesAvailable, kubernetesApiRef, kubernetesAuthProvidersApiRef, kubernetesPlugin, kubernetesPlugin as plugin };
|
package/dist/index.esm.js
CHANGED
|
@@ -11,7 +11,7 @@ import Close from '@material-ui/icons/Close';
|
|
|
11
11
|
import OpenInNewIcon from '@material-ui/icons/OpenInNew';
|
|
12
12
|
import { withStyles } from '@material-ui/core/styles';
|
|
13
13
|
import jsYaml from 'js-yaml';
|
|
14
|
-
import
|
|
14
|
+
import useInterval from 'react-use/lib/useInterval';
|
|
15
15
|
import cronstrue from 'cronstrue';
|
|
16
16
|
import lodash from 'lodash';
|
|
17
17
|
import PauseIcon from '@material-ui/icons/Pause';
|
|
@@ -40,7 +40,7 @@ class KubernetesBackendClient {
|
|
|
40
40
|
}
|
|
41
41
|
async postRequired(path, requestBody) {
|
|
42
42
|
const url = `${await this.discoveryApi.getBaseUrl("kubernetes")}${path}`;
|
|
43
|
-
const idToken = await this.identityApi.
|
|
43
|
+
const { token: idToken } = await this.identityApi.getCredentials();
|
|
44
44
|
const response = await fetch(url, {
|
|
45
45
|
method: "POST",
|
|
46
46
|
headers: {
|
|
@@ -55,7 +55,7 @@ class KubernetesBackendClient {
|
|
|
55
55
|
return await this.postRequired(`/services/${requestBody.entity.metadata.name}`, requestBody);
|
|
56
56
|
}
|
|
57
57
|
async getClusters() {
|
|
58
|
-
const idToken = await this.identityApi.
|
|
58
|
+
const { token: idToken } = await this.identityApi.getCredentials();
|
|
59
59
|
const url = `${await this.discoveryApi.getBaseUrl("kubernetes")}/clusters`;
|
|
60
60
|
const response = await fetch(url, {
|
|
61
61
|
method: "GET",
|
|
@@ -68,13 +68,11 @@ class KubernetesBackendClient {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
const kubernetesApiRef = createApiRef({
|
|
71
|
-
id: "plugin.kubernetes.service"
|
|
72
|
-
description: "Used by the Kubernetes plugin to make requests to accompanying backend"
|
|
71
|
+
id: "plugin.kubernetes.service"
|
|
73
72
|
});
|
|
74
73
|
|
|
75
74
|
const kubernetesAuthProvidersApiRef = createApiRef({
|
|
76
|
-
id: "plugin.kubernetes-auth-providers.service"
|
|
77
|
-
description: "Used by the Kubernetes plugin to fetch KubernetesAuthProviders"
|
|
75
|
+
id: "plugin.kubernetes-auth-providers.service"
|
|
78
76
|
});
|
|
79
77
|
|
|
80
78
|
class GoogleKubernetesAuthProvider {
|
|
@@ -626,18 +624,22 @@ const ClusterContext = React__default.createContext({
|
|
|
626
624
|
name: ""
|
|
627
625
|
});
|
|
628
626
|
|
|
629
|
-
const kindMappings$
|
|
627
|
+
const kindMappings$3 = {
|
|
630
628
|
deployment: "deployment",
|
|
629
|
+
pod: "pod",
|
|
631
630
|
ingress: "ingress",
|
|
632
631
|
service: "service",
|
|
633
632
|
horizontalpodautoscaler: "deployment"
|
|
634
633
|
};
|
|
635
634
|
function standardFormatter(options) {
|
|
636
635
|
var _a, _b, _c, _d;
|
|
636
|
+
if (!options.dashboardUrl) {
|
|
637
|
+
throw new Error("standard dashboard requires a dashboardUrl option");
|
|
638
|
+
}
|
|
637
639
|
const result = new URL(options.dashboardUrl.href);
|
|
638
640
|
const name = encodeURIComponent((_b = (_a = options.object.metadata) == null ? void 0 : _a.name) != null ? _b : "");
|
|
639
641
|
const namespace = encodeURIComponent((_d = (_c = options.object.metadata) == null ? void 0 : _c.namespace) != null ? _d : "");
|
|
640
|
-
const validKind = kindMappings$
|
|
642
|
+
const validKind = kindMappings$3[options.kind.toLocaleLowerCase("en-US")];
|
|
641
643
|
if (!result.pathname.endsWith("/")) {
|
|
642
644
|
result.pathname += "/";
|
|
643
645
|
}
|
|
@@ -652,7 +654,7 @@ function standardFormatter(options) {
|
|
|
652
654
|
return result;
|
|
653
655
|
}
|
|
654
656
|
|
|
655
|
-
const kindMappings$
|
|
657
|
+
const kindMappings$2 = {
|
|
656
658
|
deployment: "apps.deployment",
|
|
657
659
|
ingress: "networking.k8s.io.ingress",
|
|
658
660
|
service: "service",
|
|
@@ -660,10 +662,13 @@ const kindMappings$1 = {
|
|
|
660
662
|
};
|
|
661
663
|
function rancherFormatter(options) {
|
|
662
664
|
var _a, _b, _c, _d;
|
|
665
|
+
if (!options.dashboardUrl) {
|
|
666
|
+
throw new Error("Rancher dashboard requires a dashboardUrl option");
|
|
667
|
+
}
|
|
663
668
|
const basePath = new URL(options.dashboardUrl.href);
|
|
664
669
|
const name = encodeURIComponent((_b = (_a = options.object.metadata) == null ? void 0 : _a.name) != null ? _b : "");
|
|
665
670
|
const namespace = encodeURIComponent((_d = (_c = options.object.metadata) == null ? void 0 : _c.namespace) != null ? _d : "");
|
|
666
|
-
const validKind = kindMappings$
|
|
671
|
+
const validKind = kindMappings$2[options.kind.toLocaleLowerCase("en-US")];
|
|
667
672
|
if (!basePath.pathname.endsWith("/")) {
|
|
668
673
|
basePath.pathname += "/";
|
|
669
674
|
}
|
|
@@ -676,7 +681,7 @@ function rancherFormatter(options) {
|
|
|
676
681
|
return new URL(path, basePath);
|
|
677
682
|
}
|
|
678
683
|
|
|
679
|
-
const kindMappings = {
|
|
684
|
+
const kindMappings$1 = {
|
|
680
685
|
deployment: "deployments",
|
|
681
686
|
ingress: "ingresses",
|
|
682
687
|
service: "services",
|
|
@@ -685,10 +690,13 @@ const kindMappings = {
|
|
|
685
690
|
};
|
|
686
691
|
function openshiftFormatter(options) {
|
|
687
692
|
var _a, _b, _c, _d;
|
|
693
|
+
if (!options.dashboardUrl) {
|
|
694
|
+
throw new Error("OpenShift dashboard requires a dashboardUrl option");
|
|
695
|
+
}
|
|
688
696
|
const basePath = new URL(options.dashboardUrl.href);
|
|
689
697
|
const name = encodeURIComponent((_b = (_a = options.object.metadata) == null ? void 0 : _a.name) != null ? _b : "");
|
|
690
698
|
const namespace = encodeURIComponent((_d = (_c = options.object.metadata) == null ? void 0 : _c.namespace) != null ? _d : "");
|
|
691
|
-
const validKind = kindMappings[options.kind.toLocaleLowerCase("en-US")];
|
|
699
|
+
const validKind = kindMappings$1[options.kind.toLocaleLowerCase("en-US")];
|
|
692
700
|
if (!basePath.pathname.endsWith("/")) {
|
|
693
701
|
basePath.pathname += "/";
|
|
694
702
|
}
|
|
@@ -716,8 +724,45 @@ function eksFormatter(_options) {
|
|
|
716
724
|
throw new Error("EKS formatter is not yet implemented. Please, contribute!");
|
|
717
725
|
}
|
|
718
726
|
|
|
719
|
-
|
|
720
|
-
|
|
727
|
+
const kindMappings = {
|
|
728
|
+
deployment: "deployment",
|
|
729
|
+
pod: "pod",
|
|
730
|
+
ingress: "ingress",
|
|
731
|
+
service: "service",
|
|
732
|
+
horizontalpodautoscaler: "deployment"
|
|
733
|
+
};
|
|
734
|
+
function gkeFormatter(options) {
|
|
735
|
+
var _a, _b, _c, _d;
|
|
736
|
+
if (!options.dashboardParameters) {
|
|
737
|
+
throw new Error("GKE dashboard requires a dashboardParameters option");
|
|
738
|
+
}
|
|
739
|
+
const args = options.dashboardParameters;
|
|
740
|
+
if (typeof args.projectId !== "string") {
|
|
741
|
+
throw new Error('GKE dashboard requires a "projectId" of type string in the dashboardParameters option');
|
|
742
|
+
}
|
|
743
|
+
if (typeof args.region !== "string") {
|
|
744
|
+
throw new Error('GKE dashboard requires a "region" of type string in the dashboardParameters option');
|
|
745
|
+
}
|
|
746
|
+
if (typeof args.clusterName !== "string") {
|
|
747
|
+
throw new Error('GKE dashboard requires a "clusterName" of type string in the dashboardParameters option');
|
|
748
|
+
}
|
|
749
|
+
const basePath = new URL("https://console.cloud.google.com/");
|
|
750
|
+
const region = encodeURIComponent(args.region);
|
|
751
|
+
const clusterName = encodeURIComponent(args.clusterName);
|
|
752
|
+
const name = encodeURIComponent((_b = (_a = options.object.metadata) == null ? void 0 : _a.name) != null ? _b : "");
|
|
753
|
+
const namespace = encodeURIComponent((_d = (_c = options.object.metadata) == null ? void 0 : _c.namespace) != null ? _d : "");
|
|
754
|
+
const validKind = kindMappings[options.kind.toLocaleLowerCase("en-US")];
|
|
755
|
+
let path = "";
|
|
756
|
+
if (namespace && name && validKind) {
|
|
757
|
+
const kindsWithDetails = ["ingress", "pod"];
|
|
758
|
+
const landingPage = kindsWithDetails.includes(validKind) ? "details" : "overview";
|
|
759
|
+
path = `kubernetes/${validKind}/${region}/${clusterName}/${namespace}/${name}/${landingPage}`;
|
|
760
|
+
} else {
|
|
761
|
+
path = `kubernetes/clusters/details/${region}/${clusterName}/details`;
|
|
762
|
+
}
|
|
763
|
+
const result = new URL(path, basePath);
|
|
764
|
+
result.searchParams.set("project", args.projectId);
|
|
765
|
+
return result;
|
|
721
766
|
}
|
|
722
767
|
|
|
723
768
|
const clusterLinksFormatters = {
|
|
@@ -731,10 +776,10 @@ const clusterLinksFormatters = {
|
|
|
731
776
|
const defaultFormatterName = "standard";
|
|
732
777
|
|
|
733
778
|
function formatClusterLink(options) {
|
|
734
|
-
if (!options.dashboardUrl) {
|
|
779
|
+
if (!options.dashboardUrl && !options.dashboardParameters) {
|
|
735
780
|
return void 0;
|
|
736
781
|
}
|
|
737
|
-
if (!options.object) {
|
|
782
|
+
if (options.dashboardUrl && !options.object) {
|
|
738
783
|
return options.dashboardUrl;
|
|
739
784
|
}
|
|
740
785
|
const app = options.dashboardApp || defaultFormatterName;
|
|
@@ -743,7 +788,8 @@ function formatClusterLink(options) {
|
|
|
743
788
|
throw new Error(`Could not find Kubernetes dashboard app named '${app}'`);
|
|
744
789
|
}
|
|
745
790
|
const url = formatter({
|
|
746
|
-
dashboardUrl: new URL(options.dashboardUrl),
|
|
791
|
+
dashboardUrl: options.dashboardUrl ? new URL(options.dashboardUrl) : void 0,
|
|
792
|
+
dashboardParameters: options.dashboardParameters,
|
|
747
793
|
object: options.object,
|
|
748
794
|
kind: options.kind
|
|
749
795
|
});
|
|
@@ -823,6 +869,7 @@ const KubernetesDrawerContent = ({
|
|
|
823
869
|
const { clusterLink, errorMessage } = tryFormatClusterLink({
|
|
824
870
|
dashboardUrl: cluster.dashboardUrl,
|
|
825
871
|
dashboardApp: cluster.dashboardApp,
|
|
872
|
+
dashboardParameters: cluster.dashboardParameters,
|
|
826
873
|
object,
|
|
827
874
|
kind
|
|
828
875
|
});
|
|
@@ -2161,5 +2208,5 @@ var Router$1 = /*#__PURE__*/Object.freeze({
|
|
|
2161
2208
|
Router: Router
|
|
2162
2209
|
});
|
|
2163
2210
|
|
|
2164
|
-
export { EntityKubernetesContent, KubernetesAuthProviders, Router, clusterLinksFormatters, formatClusterLink, isKubernetesAvailable, kubernetesApiRef, kubernetesAuthProvidersApiRef, kubernetesPlugin, kubernetesPlugin as plugin };
|
|
2211
|
+
export { EntityKubernetesContent, KubernetesAuthProviders, KubernetesBackendClient, Router, clusterLinksFormatters, formatClusterLink, isKubernetesAvailable, kubernetesApiRef, kubernetesAuthProvidersApiRef, kubernetesPlugin, kubernetesPlugin as plugin };
|
|
2165
2212
|
//# sourceMappingURL=index.esm.js.map
|