diff --git a/plugins/kubernetes-react/src/components/Cluster/Cluster.tsx b/plugins/kubernetes-react/src/components/Cluster/Cluster.tsx
index 642ed642a4..4e8c4a1947 100644
--- a/plugins/kubernetes-react/src/components/Cluster/Cluster.tsx
+++ b/plugins/kubernetes-react/src/components/Cluster/Cluster.tsx
@@ -30,6 +30,7 @@ import { DeploymentsAccordions } from '../DeploymentsAccordions';
import { StatefulSetsAccordions } from '../StatefulSetsAccordions';
import { IngressesAccordions } from '../IngressesAccordions';
import { ServicesAccordions } from '../ServicesAccordions';
+import { ConfigmapsAccordions } from '../ConfigmapsAccordions';
import { CronJobsAccordions } from '../CronJobsAccordions';
import { CustomResources } from '../CustomResources';
import { DaemonSetsAccordions } from '../DaemonSetsAccordions';
@@ -170,6 +171,11 @@ export const Cluster = ({ clusterObjects, podsWithErrors }: ClusterProps) => {
) : undefined}
+ {groupedResponses.configMaps.length > 0 ? (
+
+
+
+ ) : undefined}
{groupedResponses.cronJobs.length > 0 ? (
diff --git a/plugins/kubernetes-react/src/components/ConfigmapsAccordions/ConfigmapsAccordions.tsx b/plugins/kubernetes-react/src/components/ConfigmapsAccordions/ConfigmapsAccordions.tsx
new file mode 100644
index 0000000000..81ab874737
--- /dev/null
+++ b/plugins/kubernetes-react/src/components/ConfigmapsAccordions/ConfigmapsAccordions.tsx
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2021 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { useContext } from 'react';
+import Accordion from '@material-ui/core/Accordion';
+import AccordionDetails from '@material-ui/core/AccordionDetails';
+import AccordionSummary from '@material-ui/core/AccordionSummary';
+import Grid from '@material-ui/core/Grid';
+import Typography from '@material-ui/core/Typography';
+import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
+import type { V1ConfigMap } from '@kubernetes/client-node';
+import { ConfigmapsDrawer } from './ConfigmapsDrawer.tsx';
+import { GroupedResponsesContext } from '../../hooks';
+import { StructuredMetadataTable } from '@backstage/core-components';
+
+type ConfigmapSummaryProps = {
+ configmap: V1ConfigMap;
+};
+
+const ConfigmapSummary = ({ configmap }: ConfigmapSummaryProps) => {
+ return (
+
+
+
+
+
+
+
+ Data Count: {configmap.data ? Object.keys(configmap.data).length : 0}
+
+
+
+ );
+};
+
+type ConfigmapsCardProps = {
+ configmap: V1ConfigMap;
+};
+
+const ConfigmapCard = ({ configmap }: ConfigmapsCardProps) => {
+ const metadata: any = {};
+
+ metadata.data = configmap.data;
+
+ return (
+
+ );
+};
+
+/**
+ *
+ *
+ * @public
+ */
+export type ConfigmapsAccordionsProps = {};
+
+type ConfigmapsAccordionProps = {
+ configmap: V1ConfigMap;
+};
+
+const ConfigmapsAccordion = ({ configmap }: ConfigmapsAccordionProps) => {
+ return (
+
+ }>
+
+
+
+
+
+
+ );
+};
+
+/**
+ *
+ *
+ * @public
+ */
+export const ConfigmapsAccordions = ({}: ConfigmapsAccordionsProps) => {
+ const groupedResponses = useContext(GroupedResponsesContext);
+ return (
+
+ {groupedResponses.configMaps.map((configmap, i) => (
+
+
+
+ ))}
+
+ );
+};
diff --git a/plugins/kubernetes-react/src/components/ConfigmapsAccordions/ConfigmapsDrawer.tsx b/plugins/kubernetes-react/src/components/ConfigmapsAccordions/ConfigmapsDrawer.tsx
new file mode 100644
index 0000000000..97e8aab723
--- /dev/null
+++ b/plugins/kubernetes-react/src/components/ConfigmapsAccordions/ConfigmapsDrawer.tsx
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2020 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { KubernetesStructuredMetadataTableDrawer } from '../KubernetesDrawer';
+import Typography from '@material-ui/core/Typography';
+import Grid from '@material-ui/core/Grid';
+import Chip from '@material-ui/core/Chip';
+import type { V1ConfigMap } from '@kubernetes/client-node';
+
+export const ConfigmapsDrawer = ({
+ configmap,
+ expanded,
+}: {
+ configmap: V1ConfigMap;
+ expanded?: boolean;
+}) => {
+ const namespace = configmap.metadata?.namespace;
+ return (
+ {
+ return configmapObject || {};
+ }}
+ >
+
+
+
+ {configmap.metadata?.name ?? 'unknown object'}
+
+
+
+
+ ConfigMap
+
+
+ {namespace && (
+
+
+
+ )}
+
+
+ );
+};
diff --git a/plugins/kubernetes-react/src/components/ConfigmapsAccordions/index.ts b/plugins/kubernetes-react/src/components/ConfigmapsAccordions/index.ts
new file mode 100644
index 0000000000..25a1578a79
--- /dev/null
+++ b/plugins/kubernetes-react/src/components/ConfigmapsAccordions/index.ts
@@ -0,0 +1,16 @@
+/*
+ * Copyright 2021 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export * from './ConfigmapsAccordions.tsx';