@backstage/plugin-kubernetes-react 0.5.14-next.0 → 0.5.14
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 +22 -0
- package/dist/alpha.d.ts +2 -2
- package/dist/components/Cluster/Cluster.esm.js +2 -0
- package/dist/components/Cluster/Cluster.esm.js.map +1 -1
- package/dist/components/SecretsAccordions/SecretsAccordions.esm.js +77 -0
- package/dist/components/SecretsAccordions/SecretsAccordions.esm.js.map +1 -0
- package/dist/components/SecretsAccordions/SecretsDrawer.esm.js +49 -0
- package/dist/components/SecretsAccordions/SecretsDrawer.esm.js.map +1 -0
- package/dist/hooks/GroupedResponses.esm.js +1 -0
- package/dist/hooks/GroupedResponses.esm.js.map +1 -1
- package/dist/hooks/useIsPodExecTerminalSupported.esm.js +1 -1
- package/dist/hooks/useIsPodExecTerminalSupported.esm.js.map +1 -1
- package/dist/index.d.ts +8 -7
- package/package.json +11 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @backstage/plugin-kubernetes-react
|
|
2
2
|
|
|
3
|
+
## 0.5.14
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- f966a85: Enabled a pod terminal at GKE
|
|
8
|
+
- 8fa8d87: Add Kubernetes Plugin Secrets Accordion with masked secret datas
|
|
9
|
+
- f15d5f1: add missing i18n support for kubernetes and kubernetes-react
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
- @backstage/core-components@0.18.4
|
|
12
|
+
- @backstage/plugin-kubernetes-common@0.9.9
|
|
13
|
+
- @backstage/core-plugin-api@1.12.1
|
|
14
|
+
|
|
15
|
+
## 0.5.14-next.1
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- f966a85: Enabled a pod terminal at GKE
|
|
20
|
+
- 8fa8d87: Add Kubernetes Plugin Secrets Accordion with masked secret datas
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
- @backstage/core-components@0.18.4-next.1
|
|
23
|
+
- @backstage/plugin-kubernetes-common@0.9.9-next.0
|
|
24
|
+
|
|
3
25
|
## 0.5.14-next.0
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
package/dist/alpha.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
|
|
2
2
|
|
|
3
3
|
/** @alpha */
|
|
4
|
-
declare const kubernetesReactTranslationRef:
|
|
4
|
+
declare const kubernetesReactTranslationRef: _backstage_frontend_plugin_api.TranslationRef<"kubernetes-react", {
|
|
5
5
|
readonly "namespace.label": "namespace:";
|
|
6
6
|
readonly "namespace.labelWithValue": "namespace: {{namespace}}";
|
|
7
7
|
readonly "events.noEventsFound": "No events found";
|
|
@@ -30,6 +30,7 @@ import '../../hooks/useMatchingErrors.esm.js';
|
|
|
30
30
|
import { StatusOK, StatusError } from '@backstage/core-components';
|
|
31
31
|
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
32
32
|
import { kubernetesReactTranslationRef } from '../../translation.esm.js';
|
|
33
|
+
import { SecretsAccordions } from '../SecretsAccordions/SecretsAccordions.esm.js';
|
|
33
34
|
|
|
34
35
|
const ClusterSummary = ({
|
|
35
36
|
clusterName,
|
|
@@ -103,6 +104,7 @@ const Cluster = ({ clusterObjects, podsWithErrors }) => {
|
|
|
103
104
|
groupedResponses.ingresses.length > 0 ? /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(IngressesAccordions, {}) }) : void 0,
|
|
104
105
|
groupedResponses.services.length > 0 ? /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(ServicesAccordions, {}) }) : void 0,
|
|
105
106
|
groupedResponses.configMaps.length > 0 ? /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(ConfigmapsAccordions, {}) }) : void 0,
|
|
107
|
+
groupedResponses.secrets.length > 0 ? /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(SecretsAccordions, {}) }) : void 0,
|
|
106
108
|
groupedResponses.cronJobs.length > 0 ? /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(CronJobsAccordions, {}) }) : void 0
|
|
107
109
|
] }) })
|
|
108
110
|
] }) }) }) }) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cluster.esm.js","sources":["../../../src/components/Cluster/Cluster.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ReactNode } from 'react';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport {\n ClientPodStatus,\n ClusterObjects,\n groupResponses,\n} from '@backstage/plugin-kubernetes-common';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { DeploymentsAccordions } from '../DeploymentsAccordions';\nimport { StatefulSetsAccordions } from '../StatefulSetsAccordions';\nimport { IngressesAccordions } from '../IngressesAccordions';\nimport { ServicesAccordions } from '../ServicesAccordions';\nimport { ConfigmapsAccordions } from '../ConfigmapsAccordions';\nimport { CronJobsAccordions } from '../CronJobsAccordions';\nimport { CustomResources } from '../CustomResources';\nimport { DaemonSetsAccordions } from '../DaemonSetsAccordions';\nimport {\n ClusterContext,\n GroupedResponsesContext,\n PodNamesWithErrorsContext,\n} from '../../hooks';\n\nimport { StatusError, StatusOK } from '@backstage/core-components';\nimport { PodMetricsContext } from '../../hooks/usePodMetrics';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { kubernetesReactTranslationRef } from '../../translation';\n\ntype ClusterSummaryProps = {\n clusterName: string;\n totalNumberOfPods: number;\n numberOfPodsWithErrors: number;\n children?: ReactNode;\n};\n\nconst ClusterSummary = ({\n clusterName,\n totalNumberOfPods,\n numberOfPodsWithErrors,\n}: ClusterSummaryProps) => {\n const { t } = useTranslationRef(kubernetesReactTranslationRef);\n return (\n <Grid\n container\n direction=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n spacing={0}\n >\n <Grid\n xs={6}\n item\n container\n direction=\"column\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n spacing={0}\n >\n <Grid item xs>\n <Typography variant=\"body1\">{clusterName}</Typography>\n <Typography color=\"textSecondary\" variant=\"subtitle1\">\n {t('cluster.label')}\n </Typography>\n </Grid>\n </Grid>\n <Grid\n item\n container\n xs={3}\n direction=\"column\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-end\"\n spacing={0}\n >\n <Grid item>\n <StatusOK>{t('cluster.pods', { count: totalNumberOfPods })}</StatusOK>\n </Grid>\n <Grid item>\n {numberOfPodsWithErrors > 0 ? (\n <StatusError>\n {t('cluster.podsWithErrors', { count: numberOfPodsWithErrors })}\n </StatusError>\n ) : (\n <StatusOK>{t('cluster.noPodsWithErrors')}</StatusOK>\n )}\n </Grid>\n </Grid>\n </Grid>\n );\n};\n\n/**\n * Props for Cluster\n *\n * @public\n */\nexport type ClusterProps = {\n clusterObjects: ClusterObjects;\n podsWithErrors: Set<string>;\n children?: ReactNode;\n};\n\n/**\n * Component for rendering Kubernetes resources in a cluster\n *\n * @public\n */\nexport const Cluster = ({ clusterObjects, podsWithErrors }: ClusterProps) => {\n const groupedResponses = groupResponses(clusterObjects.resources);\n\n const podMetricsMap = new Map<string, ClientPodStatus[]>();\n podMetricsMap.set(clusterObjects.cluster.name, clusterObjects.podMetrics);\n return (\n <ClusterContext.Provider value={clusterObjects.cluster}>\n <GroupedResponsesContext.Provider value={groupedResponses}>\n <PodMetricsContext.Provider value={podMetricsMap}>\n <PodNamesWithErrorsContext.Provider value={podsWithErrors}>\n <Accordion TransitionProps={{ unmountOnExit: true }}>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <ClusterSummary\n clusterName={\n clusterObjects.cluster.title || clusterObjects.cluster.name\n }\n totalNumberOfPods={groupedResponses.pods.length}\n numberOfPodsWithErrors={podsWithErrors.size}\n />\n </AccordionSummary>\n <AccordionDetails>\n <Grid container direction=\"column\">\n {groupedResponses.customResources.length > 0 ? (\n <Grid item>\n <CustomResources />\n </Grid>\n ) : undefined}\n {groupedResponses.deployments.length > 0 ? (\n <Grid item>\n <DeploymentsAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.daemonSets.length > 0 ? (\n <Grid item>\n <DaemonSetsAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.statefulsets.length > 0 ? (\n <Grid item>\n <StatefulSetsAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.ingresses.length > 0 ? (\n <Grid item>\n <IngressesAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.services.length > 0 ? (\n <Grid item>\n <ServicesAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.configMaps.length > 0 ? (\n <Grid item>\n <ConfigmapsAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.cronJobs.length > 0 ? (\n <Grid item>\n <CronJobsAccordions />\n </Grid>\n ) : undefined}\n </Grid>\n </AccordionDetails>\n </Accordion>\n </PodNamesWithErrorsContext.Provider>\n </PodMetricsContext.Provider>\n </GroupedResponsesContext.Provider>\n </ClusterContext.Provider>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Cluster.esm.js","sources":["../../../src/components/Cluster/Cluster.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ReactNode } from 'react';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport {\n ClientPodStatus,\n ClusterObjects,\n groupResponses,\n} from '@backstage/plugin-kubernetes-common';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { DeploymentsAccordions } from '../DeploymentsAccordions';\nimport { StatefulSetsAccordions } from '../StatefulSetsAccordions';\nimport { IngressesAccordions } from '../IngressesAccordions';\nimport { ServicesAccordions } from '../ServicesAccordions';\nimport { ConfigmapsAccordions } from '../ConfigmapsAccordions';\nimport { CronJobsAccordions } from '../CronJobsAccordions';\nimport { CustomResources } from '../CustomResources';\nimport { DaemonSetsAccordions } from '../DaemonSetsAccordions';\nimport {\n ClusterContext,\n GroupedResponsesContext,\n PodNamesWithErrorsContext,\n} from '../../hooks';\n\nimport { StatusError, StatusOK } from '@backstage/core-components';\nimport { PodMetricsContext } from '../../hooks/usePodMetrics';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { kubernetesReactTranslationRef } from '../../translation';\nimport { SecretsAccordions } from '../SecretsAccordions';\n\ntype ClusterSummaryProps = {\n clusterName: string;\n totalNumberOfPods: number;\n numberOfPodsWithErrors: number;\n children?: ReactNode;\n};\n\nconst ClusterSummary = ({\n clusterName,\n totalNumberOfPods,\n numberOfPodsWithErrors,\n}: ClusterSummaryProps) => {\n const { t } = useTranslationRef(kubernetesReactTranslationRef);\n return (\n <Grid\n container\n direction=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n spacing={0}\n >\n <Grid\n xs={6}\n item\n container\n direction=\"column\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n spacing={0}\n >\n <Grid item xs>\n <Typography variant=\"body1\">{clusterName}</Typography>\n <Typography color=\"textSecondary\" variant=\"subtitle1\">\n {t('cluster.label')}\n </Typography>\n </Grid>\n </Grid>\n <Grid\n item\n container\n xs={3}\n direction=\"column\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-end\"\n spacing={0}\n >\n <Grid item>\n <StatusOK>{t('cluster.pods', { count: totalNumberOfPods })}</StatusOK>\n </Grid>\n <Grid item>\n {numberOfPodsWithErrors > 0 ? (\n <StatusError>\n {t('cluster.podsWithErrors', { count: numberOfPodsWithErrors })}\n </StatusError>\n ) : (\n <StatusOK>{t('cluster.noPodsWithErrors')}</StatusOK>\n )}\n </Grid>\n </Grid>\n </Grid>\n );\n};\n\n/**\n * Props for Cluster\n *\n * @public\n */\nexport type ClusterProps = {\n clusterObjects: ClusterObjects;\n podsWithErrors: Set<string>;\n children?: ReactNode;\n};\n\n/**\n * Component for rendering Kubernetes resources in a cluster\n *\n * @public\n */\nexport const Cluster = ({ clusterObjects, podsWithErrors }: ClusterProps) => {\n const groupedResponses = groupResponses(clusterObjects.resources);\n\n const podMetricsMap = new Map<string, ClientPodStatus[]>();\n podMetricsMap.set(clusterObjects.cluster.name, clusterObjects.podMetrics);\n return (\n <ClusterContext.Provider value={clusterObjects.cluster}>\n <GroupedResponsesContext.Provider value={groupedResponses}>\n <PodMetricsContext.Provider value={podMetricsMap}>\n <PodNamesWithErrorsContext.Provider value={podsWithErrors}>\n <Accordion TransitionProps={{ unmountOnExit: true }}>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <ClusterSummary\n clusterName={\n clusterObjects.cluster.title || clusterObjects.cluster.name\n }\n totalNumberOfPods={groupedResponses.pods.length}\n numberOfPodsWithErrors={podsWithErrors.size}\n />\n </AccordionSummary>\n <AccordionDetails>\n <Grid container direction=\"column\">\n {groupedResponses.customResources.length > 0 ? (\n <Grid item>\n <CustomResources />\n </Grid>\n ) : undefined}\n {groupedResponses.deployments.length > 0 ? (\n <Grid item>\n <DeploymentsAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.daemonSets.length > 0 ? (\n <Grid item>\n <DaemonSetsAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.statefulsets.length > 0 ? (\n <Grid item>\n <StatefulSetsAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.ingresses.length > 0 ? (\n <Grid item>\n <IngressesAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.services.length > 0 ? (\n <Grid item>\n <ServicesAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.configMaps.length > 0 ? (\n <Grid item>\n <ConfigmapsAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.secrets.length > 0 ? (\n <Grid item>\n <SecretsAccordions />\n </Grid>\n ) : undefined}\n {groupedResponses.cronJobs.length > 0 ? (\n <Grid item>\n <CronJobsAccordions />\n </Grid>\n ) : undefined}\n </Grid>\n </AccordionDetails>\n </Accordion>\n </PodNamesWithErrorsContext.Provider>\n </PodMetricsContext.Provider>\n </GroupedResponsesContext.Provider>\n </ClusterContext.Provider>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
import Accordion from '@material-ui/core/Accordion';
|
|
4
|
+
import AccordionDetails from '@material-ui/core/AccordionDetails';
|
|
5
|
+
import AccordionSummary from '@material-ui/core/AccordionSummary';
|
|
6
|
+
import Grid from '@material-ui/core/Grid';
|
|
7
|
+
import Typography from '@material-ui/core/Typography';
|
|
8
|
+
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
|
|
9
|
+
import { SecretsDrawer } from './SecretsDrawer.esm.js';
|
|
10
|
+
import '@backstage/core-plugin-api';
|
|
11
|
+
import 'react-use/esm/useAsync';
|
|
12
|
+
import '../../api/types.esm.js';
|
|
13
|
+
import 'react-use/esm/useInterval';
|
|
14
|
+
import 'react-use/esm/useAsyncRetry';
|
|
15
|
+
import '../../kubernetes-auth-provider/types.esm.js';
|
|
16
|
+
import '../../hooks/PodNamesWithErrors.esm.js';
|
|
17
|
+
import '../../hooks/PodNamesWithMetrics.esm.js';
|
|
18
|
+
import { GroupedResponsesContext } from '../../hooks/GroupedResponses.esm.js';
|
|
19
|
+
import '../../hooks/Cluster.esm.js';
|
|
20
|
+
import '../../hooks/usePodMetrics.esm.js';
|
|
21
|
+
import '../../hooks/useMatchingErrors.esm.js';
|
|
22
|
+
import { StructuredMetadataTable } from '@backstage/core-components';
|
|
23
|
+
|
|
24
|
+
const SecretSummary = ({ secret }) => {
|
|
25
|
+
return /* @__PURE__ */ jsxs(
|
|
26
|
+
Grid,
|
|
27
|
+
{
|
|
28
|
+
container: true,
|
|
29
|
+
direction: "row",
|
|
30
|
+
justifyContent: "space-between",
|
|
31
|
+
alignItems: "center",
|
|
32
|
+
spacing: 0,
|
|
33
|
+
children: [
|
|
34
|
+
/* @__PURE__ */ jsx(Grid, { xs: 8, item: true, children: /* @__PURE__ */ jsx(SecretsDrawer, { secret }) }),
|
|
35
|
+
/* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsxs(Typography, { variant: "subtitle2", children: [
|
|
36
|
+
"Data Count: ",
|
|
37
|
+
secret.data ? Object.keys(secret.data).length : 0
|
|
38
|
+
] }) })
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
};
|
|
43
|
+
const SecretCard = ({ secret }) => {
|
|
44
|
+
const metadata = {};
|
|
45
|
+
metadata.data = secret.data;
|
|
46
|
+
return /* @__PURE__ */ jsx(
|
|
47
|
+
StructuredMetadataTable,
|
|
48
|
+
{
|
|
49
|
+
metadata: {
|
|
50
|
+
...metadata
|
|
51
|
+
},
|
|
52
|
+
options: { nestedValuesAsYaml: true }
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
};
|
|
56
|
+
const SecretsAccordion = ({ secret }) => {
|
|
57
|
+
return /* @__PURE__ */ jsxs(Accordion, { TransitionProps: { unmountOnExit: true }, variant: "outlined", children: [
|
|
58
|
+
/* @__PURE__ */ jsx(AccordionSummary, { expandIcon: /* @__PURE__ */ jsx(ExpandMoreIcon, {}), children: /* @__PURE__ */ jsx(SecretSummary, { secret }) }),
|
|
59
|
+
/* @__PURE__ */ jsx(AccordionDetails, { children: /* @__PURE__ */ jsx(SecretCard, { secret }) })
|
|
60
|
+
] });
|
|
61
|
+
};
|
|
62
|
+
const SecretsAccordions = ({}) => {
|
|
63
|
+
const groupedResponses = useContext(GroupedResponsesContext);
|
|
64
|
+
return /* @__PURE__ */ jsx(
|
|
65
|
+
Grid,
|
|
66
|
+
{
|
|
67
|
+
container: true,
|
|
68
|
+
direction: "row",
|
|
69
|
+
justifyContent: "flex-start",
|
|
70
|
+
alignItems: "flex-start",
|
|
71
|
+
children: groupedResponses.secrets.map((secret, i) => /* @__PURE__ */ jsx(Grid, { item: true, xs: true, children: /* @__PURE__ */ jsx(SecretsAccordion, { secret }) }, i))
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export { SecretsAccordions };
|
|
77
|
+
//# sourceMappingURL=SecretsAccordions.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecretsAccordions.esm.js","sources":["../../../src/components/SecretsAccordions/SecretsAccordions.tsx"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useContext } from 'react';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport type { V1Secret } from '@kubernetes/client-node';\nimport { SecretsDrawer } from './SecretsDrawer.tsx';\nimport { GroupedResponsesContext } from '../../hooks';\nimport { StructuredMetadataTable } from '@backstage/core-components';\n\ntype SecretSummaryProps = {\n secret: V1Secret;\n};\n\nconst SecretSummary = ({ secret }: SecretSummaryProps) => {\n return (\n <Grid\n container\n direction=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n spacing={0}\n >\n <Grid xs={8} item>\n <SecretsDrawer secret={secret} />\n </Grid>\n\n <Grid item>\n <Typography variant=\"subtitle2\">\n Data Count: {secret.data ? Object.keys(secret.data).length : 0}\n </Typography>\n </Grid>\n </Grid>\n );\n};\n\ntype SecretsCardProps = {\n secret: V1Secret;\n};\n\nconst SecretCard = ({ secret }: SecretsCardProps) => {\n const metadata: any = {};\n\n metadata.data = secret.data;\n\n return (\n <StructuredMetadataTable\n metadata={{\n ...metadata,\n }}\n options={{ nestedValuesAsYaml: true }}\n />\n );\n};\n\nexport type SecretsAccordionsProps = {};\n\ntype SecretsAccordionProps = {\n secret: V1Secret;\n};\n\nconst SecretsAccordion = ({ secret }: SecretsAccordionProps) => {\n return (\n <Accordion TransitionProps={{ unmountOnExit: true }} variant=\"outlined\">\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <SecretSummary secret={secret} />\n </AccordionSummary>\n <AccordionDetails>\n <SecretCard secret={secret} />\n </AccordionDetails>\n </Accordion>\n );\n};\n\nexport const SecretsAccordions = ({}: SecretsAccordionsProps) => {\n const groupedResponses = useContext(GroupedResponsesContext);\n return (\n <Grid\n container\n direction=\"row\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {groupedResponses.secrets.map((secret, i) => (\n <Grid item key={i} xs>\n <SecretsAccordion secret={secret} />\n </Grid>\n ))}\n </Grid>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAM,aAAA,GAAgB,CAAC,EAAE,MAAA,EAAO,KAA0B;AACxD,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAS,IAAA;AAAA,MACT,SAAA,EAAU,KAAA;AAAA,MACV,cAAA,EAAe,eAAA;AAAA,MACf,UAAA,EAAW,QAAA;AAAA,MACX,OAAA,EAAS,CAAA;AAAA,MAET,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAI,CAAA,EAAG,IAAA,EAAI,MACf,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,QAAgB,CAAA,EACjC,CAAA;AAAA,4BAEC,IAAA,EAAA,EAAK,IAAA,EAAI,MACR,QAAA,kBAAA,IAAA,CAAC,UAAA,EAAA,EAAW,SAAQ,WAAA,EAAY,QAAA,EAAA;AAAA,UAAA,cAAA;AAAA,UACjB,OAAO,IAAA,GAAO,MAAA,CAAO,KAAK,MAAA,CAAO,IAAI,EAAE,MAAA,GAAS;AAAA,SAAA,EAC/D,CAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ,CAAA;AAMA,MAAM,UAAA,GAAa,CAAC,EAAE,MAAA,EAAO,KAAwB;AACnD,EAAA,MAAM,WAAgB,EAAC;AAEvB,EAAA,QAAA,CAAS,OAAO,MAAA,CAAO,IAAA;AAEvB,EAAA,uBACE,GAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAU;AAAA,QACR,GAAG;AAAA,OACL;AAAA,MACA,OAAA,EAAS,EAAE,kBAAA,EAAoB,IAAA;AAAK;AAAA,GACtC;AAEJ,CAAA;AAQA,MAAM,gBAAA,GAAmB,CAAC,EAAE,MAAA,EAAO,KAA6B;AAC9D,EAAA,uBACE,IAAA,CAAC,aAAU,eAAA,EAAiB,EAAE,eAAe,IAAA,EAAK,EAAG,SAAQ,UAAA,EAC3D,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,gBAAA,EAAA,EAAiB,4BAAY,GAAA,CAAC,cAAA,EAAA,EAAe,GAC5C,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,QAAgB,CAAA,EACjC,CAAA;AAAA,oBACA,GAAA,CAAC,gBAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,QAAgB,CAAA,EAC9B;AAAA,GAAA,EACF,CAAA;AAEJ,CAAA;AAEO,MAAM,iBAAA,GAAoB,CAAC,EAAC,KAA8B;AAC/D,EAAA,MAAM,gBAAA,GAAmB,WAAW,uBAAuB,CAAA;AAC3D,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAS,IAAA;AAAA,MACT,SAAA,EAAU,KAAA;AAAA,MACV,cAAA,EAAe,YAAA;AAAA,MACf,UAAA,EAAW,YAAA;AAAA,MAEV,2BAAiB,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,EAAQ,sBACrC,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAS,IAAE,IAAA,EACnB,QAAA,kBAAA,GAAA,CAAC,oBAAiB,MAAA,EAAgB,CAAA,EAAA,EADpB,CAEhB,CACD;AAAA;AAAA,GACH;AAEJ;;;;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { KubernetesStructuredMetadataTableDrawer } from '../KubernetesDrawer/KubernetesStructuredMetadataTableDrawer.esm.js';
|
|
3
|
+
import '../KubernetesDrawer/KubernetesDrawer.esm.js';
|
|
4
|
+
import '@backstage/core-components';
|
|
5
|
+
import '@material-ui/core/FormControlLabel';
|
|
6
|
+
import '@material-ui/core/Switch';
|
|
7
|
+
import 'js-yaml';
|
|
8
|
+
import 'react';
|
|
9
|
+
import '@backstage/core-plugin-api/alpha';
|
|
10
|
+
import '../../translation.esm.js';
|
|
11
|
+
import Typography from '@material-ui/core/Typography';
|
|
12
|
+
import Grid from '@material-ui/core/Grid';
|
|
13
|
+
import Chip from '@material-ui/core/Chip';
|
|
14
|
+
|
|
15
|
+
const SecretsDrawer = ({
|
|
16
|
+
secret,
|
|
17
|
+
expanded
|
|
18
|
+
}) => {
|
|
19
|
+
const namespace = secret.metadata?.namespace;
|
|
20
|
+
return /* @__PURE__ */ jsx(
|
|
21
|
+
KubernetesStructuredMetadataTableDrawer,
|
|
22
|
+
{
|
|
23
|
+
object: secret,
|
|
24
|
+
expanded,
|
|
25
|
+
kind: "Secret",
|
|
26
|
+
renderObject: (secretObject) => {
|
|
27
|
+
return secretObject || {};
|
|
28
|
+
},
|
|
29
|
+
children: /* @__PURE__ */ jsxs(
|
|
30
|
+
Grid,
|
|
31
|
+
{
|
|
32
|
+
container: true,
|
|
33
|
+
direction: "column",
|
|
34
|
+
justifyContent: "flex-start",
|
|
35
|
+
alignItems: "flex-start",
|
|
36
|
+
spacing: 0,
|
|
37
|
+
children: [
|
|
38
|
+
/* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(Typography, { variant: "body1", children: secret.metadata?.name ?? "unknown object" }) }),
|
|
39
|
+
/* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(Typography, { color: "textSecondary", variant: "subtitle1", children: "Secret" }) }),
|
|
40
|
+
namespace && /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(Chip, { size: "small", label: `namespace: ${namespace}` }) })
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export { SecretsDrawer };
|
|
49
|
+
//# sourceMappingURL=SecretsDrawer.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecretsDrawer.esm.js","sources":["../../../src/components/SecretsAccordions/SecretsDrawer.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { KubernetesStructuredMetadataTableDrawer } from '../KubernetesDrawer';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from '@material-ui/core/Grid';\nimport Chip from '@material-ui/core/Chip';\nimport type { V1Secret } from '@kubernetes/client-node';\n\nexport const SecretsDrawer = ({\n secret,\n expanded,\n}: {\n secret: V1Secret;\n expanded?: boolean;\n}) => {\n const namespace = secret.metadata?.namespace;\n return (\n <KubernetesStructuredMetadataTableDrawer\n object={secret}\n expanded={expanded}\n kind=\"Secret\"\n renderObject={(secretObject: V1Secret) => {\n return secretObject || {};\n }}\n >\n <Grid\n container\n direction=\"column\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n spacing={0}\n >\n <Grid item>\n <Typography variant=\"body1\">\n {secret.metadata?.name ?? 'unknown object'}\n </Typography>\n </Grid>\n <Grid item>\n <Typography color=\"textSecondary\" variant=\"subtitle1\">\n Secret\n </Typography>\n </Grid>\n {namespace && (\n <Grid item>\n <Chip size=\"small\" label={`namespace: ${namespace}`} />\n </Grid>\n )}\n </Grid>\n </KubernetesStructuredMetadataTableDrawer>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAqBO,MAAM,gBAAgB,CAAC;AAAA,EAC5B,MAAA;AAAA,EACA;AACF,CAAA,KAGM;AACJ,EAAA,MAAM,SAAA,GAAY,OAAO,QAAA,EAAU,SAAA;AACnC,EAAA,uBACE,GAAA;AAAA,IAAC,uCAAA;AAAA,IAAA;AAAA,MACC,MAAA,EAAQ,MAAA;AAAA,MACR,QAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAc,CAAC,YAAA,KAA2B;AACxC,QAAA,OAAO,gBAAgB,EAAC;AAAA,MAC1B,CAAA;AAAA,MAEA,QAAA,kBAAA,IAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAS,IAAA;AAAA,UACT,SAAA,EAAU,QAAA;AAAA,UACV,cAAA,EAAe,YAAA;AAAA,UACf,UAAA,EAAW,YAAA;AAAA,UACX,OAAA,EAAS,CAAA;AAAA,UAET,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EACR,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAQ,OAAA,EACjB,QAAA,EAAA,MAAA,CAAO,QAAA,EAAU,IAAA,IAAQ,gBAAA,EAC5B,CAAA,EACF,CAAA;AAAA,4BACA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EACR,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,KAAA,EAAM,eAAA,EAAgB,OAAA,EAAQ,WAAA,EAAY,QAAA,EAAA,QAAA,EAEtD,CAAA,EACF,CAAA;AAAA,YACC,SAAA,oBACC,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EACR,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAK,OAAA,EAAQ,KAAA,EAAO,CAAA,WAAA,EAAc,SAAS,IAAI,CAAA,EACvD;AAAA;AAAA;AAAA;AAEJ;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupedResponses.esm.js","sources":["../../src/hooks/GroupedResponses.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createContext } from 'react';\nimport { GroupedResponses } from '@backstage/plugin-kubernetes-common';\n\n/**\n *\n *\n * @public\n */\nexport const GroupedResponsesContext = createContext<GroupedResponses>({\n pods: [],\n replicaSets: [],\n deployments: [],\n daemonSets: [],\n services: [],\n configMaps: [],\n horizontalPodAutoscalers: [],\n ingresses: [],\n jobs: [],\n cronJobs: [],\n customResources: [],\n statefulsets: [],\n});\n"],"names":[],"mappings":";;AAuBO,MAAM,0BAA0B,aAAA,CAAgC;AAAA,EACrE,MAAM,EAAC;AAAA,EACP,aAAa,EAAC;AAAA,EACd,aAAa,EAAC;AAAA,EACd,YAAY,EAAC;AAAA,EACb,UAAU,EAAC;AAAA,EACX,YAAY,EAAC;AAAA,EACb,0BAA0B,EAAC;AAAA,EAC3B,WAAW,EAAC;AAAA,EACZ,MAAM,EAAC;AAAA,EACP,UAAU,EAAC;AAAA,EACX,iBAAiB,EAAC;AAAA,EAClB,cAAc;AAChB,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"GroupedResponses.esm.js","sources":["../../src/hooks/GroupedResponses.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createContext } from 'react';\nimport { GroupedResponses } from '@backstage/plugin-kubernetes-common';\n\n/**\n *\n *\n * @public\n */\nexport const GroupedResponsesContext = createContext<GroupedResponses>({\n pods: [],\n replicaSets: [],\n deployments: [],\n daemonSets: [],\n services: [],\n configMaps: [],\n secrets: [],\n horizontalPodAutoscalers: [],\n ingresses: [],\n jobs: [],\n cronJobs: [],\n customResources: [],\n statefulsets: [],\n});\n"],"names":[],"mappings":";;AAuBO,MAAM,0BAA0B,aAAA,CAAgC;AAAA,EACrE,MAAM,EAAC;AAAA,EACP,aAAa,EAAC;AAAA,EACd,aAAa,EAAC;AAAA,EACd,YAAY,EAAC;AAAA,EACb,UAAU,EAAC;AAAA,EACX,YAAY,EAAC;AAAA,EACb,SAAS,EAAC;AAAA,EACV,0BAA0B,EAAC;AAAA,EAC3B,WAAW,EAAC;AAAA,EACZ,MAAM,EAAC;AAAA,EACP,UAAU,EAAC;AAAA,EACX,iBAAiB,EAAC;AAAA,EAClB,cAAc;AAChB,CAAC;;;;"}
|
|
@@ -10,7 +10,7 @@ const useIsPodExecTerminalSupported = () => {
|
|
|
10
10
|
return false;
|
|
11
11
|
}
|
|
12
12
|
const { authProvider } = clusters[0];
|
|
13
|
-
const isClientAuthProvider = ["aks", "
|
|
13
|
+
const isClientAuthProvider = ["aks", "oidc"].some(
|
|
14
14
|
(authProviderName) => authProvider.includes(authProviderName)
|
|
15
15
|
);
|
|
16
16
|
return !isClientAuthProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsPodExecTerminalSupported.esm.js","sources":["../../src/hooks/useIsPodExecTerminalSupported.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useApi } from '@backstage/core-plugin-api';\nimport useAsync, { AsyncState } from 'react-use/esm/useAsync';\n\nimport { kubernetesApiRef } from '../api/types';\n\n/**\n * Check if conditions for a pod exec call through the proxy endpoint are met\n *\n * @internal\n */\nexport const useIsPodExecTerminalSupported = (): AsyncState<boolean> => {\n const kubernetesApi = useApi(kubernetesApiRef);\n\n return useAsync(async () => {\n const clusters = await kubernetesApi.getClusters();\n\n if (clusters.length !== 1) {\n return false;\n }\n\n const { authProvider } = clusters[0];\n const isClientAuthProvider = ['aks', '
|
|
1
|
+
{"version":3,"file":"useIsPodExecTerminalSupported.esm.js","sources":["../../src/hooks/useIsPodExecTerminalSupported.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useApi } from '@backstage/core-plugin-api';\nimport useAsync, { AsyncState } from 'react-use/esm/useAsync';\n\nimport { kubernetesApiRef } from '../api/types';\n\n/**\n * Check if conditions for a pod exec call through the proxy endpoint are met\n *\n * @internal\n */\nexport const useIsPodExecTerminalSupported = (): AsyncState<boolean> => {\n const kubernetesApi = useApi(kubernetesApiRef);\n\n return useAsync(async () => {\n const clusters = await kubernetesApi.getClusters();\n\n if (clusters.length !== 1) {\n return false;\n }\n\n const { authProvider } = clusters[0];\n const isClientAuthProvider = ['aks', 'oidc'].some(authProviderName =>\n authProvider.includes(authProviderName),\n );\n\n return !isClientAuthProvider;\n });\n};\n"],"names":[],"mappings":";;;;AAyBO,MAAM,gCAAgC,MAA2B;AACtE,EAAA,MAAM,aAAA,GAAgB,OAAO,gBAAgB,CAAA;AAE7C,EAAA,OAAO,SAAS,YAAY;AAC1B,IAAA,MAAM,QAAA,GAAW,MAAM,aAAA,CAAc,WAAA,EAAY;AAEjD,IAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACzB,MAAA,OAAO,KAAA;AAAA,IACT;AAEA,IAAA,MAAM,EAAE,YAAA,EAAa,GAAI,QAAA,CAAS,CAAC,CAAA;AACnC,IAAA,MAAM,oBAAA,GAAuB,CAAC,KAAA,EAAO,MAAM,CAAA,CAAE,IAAA;AAAA,MAAK,CAAA,gBAAA,KAChD,YAAA,CAAa,QAAA,CAAS,gBAAgB;AAAA,KACxC;AAEA,IAAA,OAAO,CAAC,oBAAA;AAAA,EACV,CAAC,CAAA;AACH;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,11 +4,11 @@ import * as react from 'react';
|
|
|
4
4
|
import { ReactNode, FC } from 'react';
|
|
5
5
|
import { IObjectMeta, IIoK8sApimachineryPkgApisMetaV1ObjectMeta } from '@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta';
|
|
6
6
|
import { TypeMeta } from '@kubernetes-models/base';
|
|
7
|
-
import * as
|
|
8
|
-
import { OAuthApi, OpenIdConnectApi, DiscoveryApi, FetchApi, ProfileInfoApi } from '@backstage/core-plugin-api';
|
|
7
|
+
import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
|
|
9
8
|
import * as kubernetes_models_v1 from 'kubernetes-models/v1';
|
|
10
9
|
import { Event, Pod, IContainer, IContainerStatus } from 'kubernetes-models/v1';
|
|
11
10
|
import { JsonObject } from '@backstage/types';
|
|
11
|
+
import { OAuthApi, OpenIdConnectApi, DiscoveryApi, FetchApi, ProfileInfoApi } from '@backstage/core-plugin-api';
|
|
12
12
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
13
13
|
import { V2HorizontalPodAutoscaler, V1Job, V1ObjectMeta, V1Pod } from '@kubernetes/client-node';
|
|
14
14
|
import * as react_use_esm_useAsyncFn from 'react-use/esm/useAsyncFn';
|
|
@@ -98,11 +98,11 @@ type ErrorMatcher = {
|
|
|
98
98
|
declare const useMatchingErrors: (matcher: ErrorMatcher) => DetectedError[];
|
|
99
99
|
|
|
100
100
|
/** @public */
|
|
101
|
-
declare const kubernetesApiRef:
|
|
101
|
+
declare const kubernetesApiRef: _backstage_frontend_plugin_api.ApiRef<KubernetesApi>;
|
|
102
102
|
/** @public */
|
|
103
|
-
declare const kubernetesProxyApiRef:
|
|
103
|
+
declare const kubernetesProxyApiRef: _backstage_frontend_plugin_api.ApiRef<KubernetesProxyApi>;
|
|
104
104
|
/** @public */
|
|
105
|
-
declare const kubernetesClusterLinkFormatterApiRef:
|
|
105
|
+
declare const kubernetesClusterLinkFormatterApiRef: _backstage_frontend_plugin_api.ApiRef<KubernetesClusterLinkFormatterApi>;
|
|
106
106
|
/** @public */
|
|
107
107
|
interface KubernetesApi {
|
|
108
108
|
getObjectsByEntity(requestBody: KubernetesRequestBody): Promise<ObjectsByEntityResponse>;
|
|
@@ -172,7 +172,7 @@ interface KubernetesAuthProvider {
|
|
|
172
172
|
}>;
|
|
173
173
|
}
|
|
174
174
|
/** @public */
|
|
175
|
-
declare const kubernetesAuthProvidersApiRef:
|
|
175
|
+
declare const kubernetesAuthProvidersApiRef: _backstage_frontend_plugin_api.ApiRef<KubernetesAuthProvidersApi>;
|
|
176
176
|
/** @public */
|
|
177
177
|
interface KubernetesAuthProvidersApi {
|
|
178
178
|
decorateRequestBodyForAuth(authProvider: string, requestBody: KubernetesRequestBody): Promise<KubernetesRequestBody>;
|
|
@@ -885,4 +885,5 @@ declare const PodExecTerminal: (props: PodExecTerminalProps) => react_jsx_runtim
|
|
|
885
885
|
*/
|
|
886
886
|
declare const PodExecTerminalDialog: (props: PodExecTerminalProps) => false | react_jsx_runtime.JSX.Element | undefined;
|
|
887
887
|
|
|
888
|
-
export { AksClusterLinksFormatter, AksKubernetesAuthProvider, Cluster, ClusterContext,
|
|
888
|
+
export { AksClusterLinksFormatter, AksKubernetesAuthProvider, Cluster, ClusterContext, ContainerCard, CronJobsAccordions, CustomResources, DEFAULT_FORMATTER_NAME, DetectedErrorsContext, EksClusterLinksFormatter, ErrorList, ErrorPanel, ErrorReporting, Events, EventsContent, FixDialog, GkeClusterLinksFormatter, GoogleKubernetesAuthProvider, GroupedResponsesContext, HeadlampClusterLinksFormatter, HorizontalPodAutoscalerDrawer, IngressesAccordions, JobsAccordions, KubernetesAuthProviders, KubernetesBackendClient, KubernetesClusterLinkFormatter, KubernetesDrawer, KubernetesProxyClient, KubernetesStructuredMetadataTableDrawer, LinkErrorPanel, ManifestYaml, OidcKubernetesAuthProvider, OpenshiftClusterLinksFormatter, PendingPodContent, PodDrawer, PodExecTerminal, PodExecTerminalDialog, PodLogs, PodLogsDialog, PodMetricsContext, PodNamesWithErrorsContext, PodNamesWithMetricsContext, PodsTable, READY_COLUMNS, RESOURCE_COLUMNS, RancherClusterLinksFormatter, ResourceUtilization, ServerSideKubernetesAuthProvider, ServicesAccordions, StandardClusterLinksFormatter, getDefaultFormatters, kubernetesApiRef, kubernetesAuthProvidersApiRef, kubernetesClusterLinkFormatterApiRef, kubernetesProxyApiRef, useCustomResources, useEvents, useKubernetesObjects, useMatchingErrors, usePodLogs, usePodMetrics };
|
|
889
|
+
export type { ClusterLinksFormatter, ClusterLinksFormatterOptions, ClusterProps, ContainerCardProps, ContainerScope, CronJobsAccordionsProps, CustomResourcesProps, ErrorListProps, ErrorMatcher, ErrorPanelProps, ErrorReportingProps, EventsContentProps, EventsOptions, EventsProps, FixDialogProps, FormatClusterLinkOptions, IngressesAccordionsProps, JobsAccordionsProps, KubernetesApi, KubernetesAuthProvider, KubernetesAuthProvidersApi, KubernetesClusterLinkFormatterApi, KubernetesDrawerProps, KubernetesDrawerable, KubernetesObject, KubernetesObjects, KubernetesProxyApi, KubernetesStructuredMetadataTableDrawerProps, LinkErrorPanelProps, ManifestYamlProps, PendingPodContentProps, PodAndErrors, PodColumns, PodDrawerProps, PodExecTerminalProps, PodLogsDialogProps, PodLogsOptions, PodLogsProps, PodMetricsMatcher, PodScope, PodsTablesProps, ResourceUtilizationProps, ServicesAccordionsProps };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-kubernetes-react",
|
|
3
|
-
"version": "0.5.14
|
|
3
|
+
"version": "0.5.14",
|
|
4
4
|
"description": "Web library for the kubernetes-react plugin",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "web-library",
|
|
@@ -62,12 +62,12 @@
|
|
|
62
62
|
"test": "backstage-cli package test"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@backstage/catalog-model": "1.7.6",
|
|
66
|
-
"@backstage/core-components": "0.18.4
|
|
67
|
-
"@backstage/core-plugin-api": "1.12.1
|
|
68
|
-
"@backstage/errors": "1.2.7",
|
|
69
|
-
"@backstage/plugin-kubernetes-common": "0.9.
|
|
70
|
-
"@backstage/types": "1.2.2",
|
|
65
|
+
"@backstage/catalog-model": "^1.7.6",
|
|
66
|
+
"@backstage/core-components": "^0.18.4",
|
|
67
|
+
"@backstage/core-plugin-api": "^1.12.1",
|
|
68
|
+
"@backstage/errors": "^1.2.7",
|
|
69
|
+
"@backstage/plugin-kubernetes-common": "^0.9.9",
|
|
70
|
+
"@backstage/types": "^1.2.2",
|
|
71
71
|
"@kubernetes-models/apimachinery": "^2.0.0",
|
|
72
72
|
"@kubernetes-models/base": "^5.0.0",
|
|
73
73
|
"@kubernetes/client-node": "1.4.0",
|
|
@@ -85,14 +85,14 @@
|
|
|
85
85
|
"react-use": "^17.4.0"
|
|
86
86
|
},
|
|
87
87
|
"devDependencies": {
|
|
88
|
-
"@backstage/cli": "0.
|
|
89
|
-
"@backstage/core-app-api": "1.19.3
|
|
90
|
-
"@backstage/test-utils": "1.7.14
|
|
88
|
+
"@backstage/cli": "^0.35.0",
|
|
89
|
+
"@backstage/core-app-api": "^1.19.3",
|
|
90
|
+
"@backstage/test-utils": "^1.7.14",
|
|
91
91
|
"@testing-library/jest-dom": "^6.0.0",
|
|
92
92
|
"@testing-library/react": "^16.0.0",
|
|
93
93
|
"@types/react": "^18.0.0",
|
|
94
94
|
"jest-websocket-mock": "^2.5.0",
|
|
95
|
-
"msw": "^
|
|
95
|
+
"msw": "^2.0.0",
|
|
96
96
|
"react": "^18.0.2",
|
|
97
97
|
"react-dom": "^18.0.2",
|
|
98
98
|
"react-router-dom": "^6.3.0"
|