diff --git a/frontend/src/App.test.tsx b/frontend/src/App.test.tsx index 0f3b83ac4ec..275118a44e7 100644 --- a/frontend/src/App.test.tsx +++ b/frontend/src/App.test.tsx @@ -2,8 +2,7 @@ import { render, waitFor } from '@testing-library/react'; import React from 'react'; import App from './App'; -// todo: enable this after https://github.com/vitest-dev/vitest/issues/4143 is fixed -test.skip('renders without crashing', async () => { +test('renders without crashing', async () => { const { getByText } = render( diff --git a/frontend/src/components/App/RouteSwitcher.tsx b/frontend/src/components/App/RouteSwitcher.tsx index 42858174825..5691475753d 100644 --- a/frontend/src/components/App/RouteSwitcher.tsx +++ b/frontend/src/components/App/RouteSwitcher.tsx @@ -4,9 +4,11 @@ import { useDispatch } from 'react-redux'; import { Redirect, Route, RouteProps, Switch, useHistory } from 'react-router-dom'; import { getToken } from '../../lib/auth'; import { useClustersConf } from '../../lib/k8s'; +import { redirects } from '../../lib/redirects'; import { createRouteURL, getDefaultRoutes, + getRoute, getRoutePath, getRouteUseClusterURL, NotFoundRoute, @@ -38,6 +40,12 @@ export default function RouteSwitcher(props: { requiresToken: () => boolean }) { return ( + {redirects.map(({ fromPath, toRouteName }) => { + const targetRoute = getRoute(toRouteName); + if (!targetRoute) return null; + + return ; + })} {filteredRoutes.map((route, index) => route.name === 'OidcAuth' ? ( imagepullbackoff @@ -533,7 +533,7 @@ > imagepullbackoff @@ -625,7 +625,7 @@ > imagepullbackoff @@ -717,7 +717,7 @@ > imagepullbackoff @@ -809,7 +809,7 @@ > imagepullbackoff diff --git a/frontend/src/components/common/Resource/__snapshots__/ResourceTable.NameSearch.stories.storyshot b/frontend/src/components/common/Resource/__snapshots__/ResourceTable.NameSearch.stories.storyshot index 03ec909262f..5ed5ef46ad7 100644 --- a/frontend/src/components/common/Resource/__snapshots__/ResourceTable.NameSearch.stories.storyshot +++ b/frontend/src/components/common/Resource/__snapshots__/ResourceTable.NameSearch.stories.storyshot @@ -312,7 +312,7 @@ > mypod0 @@ -348,7 +348,7 @@ > mypod1 @@ -384,7 +384,7 @@ > mypod2 @@ -420,7 +420,7 @@ > mypod3 diff --git a/frontend/src/components/common/Resource/__snapshots__/ResourceTable.NoFilter.stories.storyshot b/frontend/src/components/common/Resource/__snapshots__/ResourceTable.NoFilter.stories.storyshot index 03ec909262f..5ed5ef46ad7 100644 --- a/frontend/src/components/common/Resource/__snapshots__/ResourceTable.NoFilter.stories.storyshot +++ b/frontend/src/components/common/Resource/__snapshots__/ResourceTable.NoFilter.stories.storyshot @@ -312,7 +312,7 @@ > mypod0 @@ -348,7 +348,7 @@ > mypod1 @@ -384,7 +384,7 @@ > mypod2 @@ -420,7 +420,7 @@ > mypod3 diff --git a/frontend/src/components/common/Resource/__snapshots__/ResourceTable.WithHiddenCols.stories.storyshot b/frontend/src/components/common/Resource/__snapshots__/ResourceTable.WithHiddenCols.stories.storyshot index 6c31bd86dfa..6a62f6ca57d 100644 --- a/frontend/src/components/common/Resource/__snapshots__/ResourceTable.WithHiddenCols.stories.storyshot +++ b/frontend/src/components/common/Resource/__snapshots__/ResourceTable.WithHiddenCols.stories.storyshot @@ -257,7 +257,7 @@ > mypod0 @@ -283,7 +283,7 @@ > mypod1 @@ -309,7 +309,7 @@ > mypod2 @@ -335,7 +335,7 @@ > mypod3 diff --git a/frontend/src/components/configmap/__snapshots__/List.Items.stories.storyshot b/frontend/src/components/configmap/__snapshots__/List.Items.stories.storyshot index e0398dda9bd..ef0bd6a7cf2 100644 --- a/frontend/src/components/configmap/__snapshots__/List.Items.stories.storyshot +++ b/frontend/src/components/configmap/__snapshots__/List.Items.stories.storyshot @@ -597,7 +597,7 @@ > my-pvc @@ -694,7 +694,7 @@ > my-pvc diff --git a/frontend/src/components/daemonset/__snapshots__/List.DaemonSets.stories.storyshot b/frontend/src/components/daemonset/__snapshots__/List.DaemonSets.stories.storyshot index fe4ef413d60..030b56a4c46 100644 --- a/frontend/src/components/daemonset/__snapshots__/List.DaemonSets.stories.storyshot +++ b/frontend/src/components/daemonset/__snapshots__/List.DaemonSets.stories.storyshot @@ -930,7 +930,7 @@ > gadget diff --git a/frontend/src/components/endpoints/__snapshots__/EndpointList.Items.stories.storyshot b/frontend/src/components/endpoints/__snapshots__/EndpointList.Items.stories.storyshot index a597e85269f..759b04147fb 100644 --- a/frontend/src/components/endpoints/__snapshots__/EndpointList.Items.stories.storyshot +++ b/frontend/src/components/endpoints/__snapshots__/EndpointList.Items.stories.storyshot @@ -597,7 +597,7 @@ > default-gateway-class diff --git a/frontend/src/components/gateway/__snapshots__/GRPCRouteList.Items.stories.storyshot b/frontend/src/components/gateway/__snapshots__/GRPCRouteList.Items.stories.storyshot index 4fab1330fc1..52090b093b4 100644 --- a/frontend/src/components/gateway/__snapshots__/GRPCRouteList.Items.stories.storyshot +++ b/frontend/src/components/gateway/__snapshots__/GRPCRouteList.Items.stories.storyshot @@ -542,7 +542,7 @@ > default-httproute diff --git a/frontend/src/components/gateway/__snapshots__/GatewayList.Items.stories.storyshot b/frontend/src/components/gateway/__snapshots__/GatewayList.Items.stories.storyshot index a9be84e167a..ca5b42d10b4 100644 --- a/frontend/src/components/gateway/__snapshots__/GatewayList.Items.stories.storyshot +++ b/frontend/src/components/gateway/__snapshots__/GatewayList.Items.stories.storyshot @@ -707,7 +707,7 @@ > default-gateway diff --git a/frontend/src/components/gateway/__snapshots__/HTTPRouteList.Items.stories.storyshot b/frontend/src/components/gateway/__snapshots__/HTTPRouteList.Items.stories.storyshot index bb6e218ac18..c1b060d387b 100644 --- a/frontend/src/components/gateway/__snapshots__/HTTPRouteList.Items.stories.storyshot +++ b/frontend/src/components/gateway/__snapshots__/HTTPRouteList.Items.stories.storyshot @@ -652,7 +652,7 @@ > default-httproute diff --git a/frontend/src/components/horizontalPodAutoscaler/__snapshots__/HPADetails.Default.stories.storyshot b/frontend/src/components/horizontalPodAutoscaler/__snapshots__/HPADetails.Default.stories.storyshot index a026353bb3a..598b70df4d0 100644 --- a/frontend/src/components/horizontalPodAutoscaler/__snapshots__/HPADetails.Default.stories.storyshot +++ b/frontend/src/components/horizontalPodAutoscaler/__snapshots__/HPADetails.Default.stories.storyshot @@ -205,7 +205,7 @@ > Deployment / diff --git a/frontend/src/components/horizontalPodAutoscaler/__snapshots__/HPAList.Items.stories.storyshot b/frontend/src/components/horizontalPodAutoscaler/__snapshots__/HPAList.Items.stories.storyshot index fb145e8f13d..4bfe650a734 100644 --- a/frontend/src/components/horizontalPodAutoscaler/__snapshots__/HPAList.Items.stories.storyshot +++ b/frontend/src/components/horizontalPodAutoscaler/__snapshots__/HPAList.Items.stories.storyshot @@ -817,7 +817,7 @@ > php-apache @@ -837,7 +837,7 @@ > Deployment / diff --git a/frontend/src/components/ingress/__snapshots__/ClassList.Items.stories.storyshot b/frontend/src/components/ingress/__snapshots__/ClassList.Items.stories.storyshot index 95b0d7ebb33..705522da33f 100644 --- a/frontend/src/components/ingress/__snapshots__/ClassList.Items.stories.storyshot +++ b/frontend/src/components/ingress/__snapshots__/ClassList.Items.stories.storyshot @@ -478,7 +478,7 @@ > resource-example-ingress @@ -574,7 +574,7 @@ > resource-example-ingress diff --git a/frontend/src/components/ingress/__snapshots__/List.Items.stories.storyshot b/frontend/src/components/ingress/__snapshots__/List.Items.stories.storyshot index 77153112a46..9ddcae494ab 100644 --- a/frontend/src/components/ingress/__snapshots__/List.Items.stories.storyshot +++ b/frontend/src/components/ingress/__snapshots__/List.Items.stories.storyshot @@ -707,7 +707,7 @@ > tls-example-ingress @@ -825,7 +825,7 @@ > resource-example-ingress diff --git a/frontend/src/components/job/__snapshots__/JobList.Items.stories.storyshot b/frontend/src/components/job/__snapshots__/JobList.Items.stories.storyshot index 58037a631bd..4b01b5fec3a 100644 --- a/frontend/src/components/job/__snapshots__/JobList.Items.stories.storyshot +++ b/frontend/src/components/job/__snapshots__/JobList.Items.stories.storyshot @@ -805,7 +805,7 @@ > job-0 @@ -945,7 +945,7 @@ > job-1 @@ -1085,7 +1085,7 @@ > job-2 @@ -1225,7 +1225,7 @@ > job-3 diff --git a/frontend/src/components/lease/__snapshots__/List.Items.stories.storyshot b/frontend/src/components/lease/__snapshots__/List.Items.stories.storyshot index 73f3bd4d2e4..9253113497c 100644 --- a/frontend/src/components/lease/__snapshots__/List.Items.stories.storyshot +++ b/frontend/src/components/lease/__snapshots__/List.Items.stories.storyshot @@ -597,7 +597,7 @@ > lease diff --git a/frontend/src/components/limitRange/__snapshots__/List.Items.stories.storyshot b/frontend/src/components/limitRange/__snapshots__/List.Items.stories.storyshot index b7b9dedede1..faa77305790 100644 --- a/frontend/src/components/limitRange/__snapshots__/List.Items.stories.storyshot +++ b/frontend/src/components/limitRange/__snapshots__/List.Items.stories.storyshot @@ -530,7 +530,7 @@ > limit-range diff --git a/frontend/src/components/namespace/__snapshots__/NamespaceList.Regular.stories.storyshot b/frontend/src/components/namespace/__snapshots__/NamespaceList.Regular.stories.storyshot index ce4b357b1a9..0a65678b88b 100644 --- a/frontend/src/components/namespace/__snapshots__/NamespaceList.Regular.stories.storyshot +++ b/frontend/src/components/namespace/__snapshots__/NamespaceList.Regular.stories.storyshot @@ -453,7 +453,7 @@ > default diff --git a/frontend/src/components/node/__snapshots__/List.Nodes.stories.storyshot b/frontend/src/components/node/__snapshots__/List.Nodes.stories.storyshot index e64462a6074..dfc82a2bf2b 100644 --- a/frontend/src/components/node/__snapshots__/List.Nodes.stories.storyshot +++ b/frontend/src/components/node/__snapshots__/List.Nodes.stories.storyshot @@ -841,7 +841,7 @@ > node @@ -970,7 +970,7 @@ > node-2 diff --git a/frontend/src/components/pod/__snapshots__/PodList.Items.stories.storyshot b/frontend/src/components/pod/__snapshots__/PodList.Items.stories.storyshot index 08b36c6b00b..a57ff8bf5bd 100644 --- a/frontend/src/components/pod/__snapshots__/PodList.Items.stories.storyshot +++ b/frontend/src/components/pod/__snapshots__/PodList.Items.stories.storyshot @@ -805,7 +805,7 @@ > imagepullbackoff @@ -944,7 +944,7 @@ > successful @@ -1081,7 +1081,7 @@ > initializing @@ -1220,7 +1220,7 @@ > liveness-http @@ -1359,7 +1359,7 @@ > terminated @@ -1498,7 +1498,7 @@ > running @@ -1637,7 +1637,7 @@ > nominated-node @@ -1776,7 +1776,7 @@ > readiness-gate diff --git a/frontend/src/components/podDisruptionBudget/__snapshots__/pdbList.Items.stories.storyshot b/frontend/src/components/podDisruptionBudget/__snapshots__/pdbList.Items.stories.storyshot index 52bc07d299a..13f1ec5edb2 100644 --- a/frontend/src/components/podDisruptionBudget/__snapshots__/pdbList.Items.stories.storyshot +++ b/frontend/src/components/podDisruptionBudget/__snapshots__/pdbList.Items.stories.storyshot @@ -707,7 +707,7 @@ > coredns-pdb diff --git a/frontend/src/components/priorityClass/__snapshots__/priorityClassList.Items.stories.storyshot b/frontend/src/components/priorityClass/__snapshots__/priorityClassList.Items.stories.storyshot index 6c6e4365954..9fc319d52ed 100644 --- a/frontend/src/components/priorityClass/__snapshots__/priorityClassList.Items.stories.storyshot +++ b/frontend/src/components/priorityClass/__snapshots__/priorityClassList.Items.stories.storyshot @@ -508,7 +508,7 @@ > high-priority-apps diff --git a/frontend/src/components/replicaset/__snapshots__/List.ReplicaSets.stories.storyshot b/frontend/src/components/replicaset/__snapshots__/List.ReplicaSets.stories.storyshot index 5b6f19d137e..875d2362c00 100644 --- a/frontend/src/components/replicaset/__snapshots__/List.ReplicaSets.stories.storyshot +++ b/frontend/src/components/replicaset/__snapshots__/List.ReplicaSets.stories.storyshot @@ -875,7 +875,7 @@ > headlamp-release-b123456 @@ -1019,7 +1019,7 @@ pod-template-hash=b123456 > headlamp-a123456 diff --git a/frontend/src/components/resourceQuota/__snapshots__/resourceQuotaList.Items.stories.storyshot b/frontend/src/components/resourceQuota/__snapshots__/resourceQuotaList.Items.stories.storyshot index 89704836fef..e4eb581cd35 100644 --- a/frontend/src/components/resourceQuota/__snapshots__/resourceQuotaList.Items.stories.storyshot +++ b/frontend/src/components/resourceQuota/__snapshots__/resourceQuotaList.Items.stories.storyshot @@ -640,7 +640,7 @@ > test-cpu-quota diff --git a/frontend/src/components/runtimeClass/__snapshots__/List.Items.stories.storyshot b/frontend/src/components/runtimeClass/__snapshots__/List.Items.stories.storyshot index 2fefacacd20..c9e7137c200 100644 --- a/frontend/src/components/runtimeClass/__snapshots__/List.Items.stories.storyshot +++ b/frontend/src/components/runtimeClass/__snapshots__/List.Items.stories.storyshot @@ -453,7 +453,7 @@ > runtime-class diff --git a/frontend/src/components/secret/__snapshots__/List.Items.stories.storyshot b/frontend/src/components/secret/__snapshots__/List.Items.stories.storyshot index 28faed4419a..0c11d1226e7 100644 --- a/frontend/src/components/secret/__snapshots__/List.Items.stories.storyshot +++ b/frontend/src/components/secret/__snapshots__/List.Items.stories.storyshot @@ -652,7 +652,7 @@ > my-pvc @@ -754,7 +754,7 @@ > my-pvc diff --git a/frontend/src/components/storage/__snapshots__/ClaimList.Items.stories.storyshot b/frontend/src/components/storage/__snapshots__/ClaimList.Items.stories.storyshot index 23070ad1028..0629c9a6a0f 100644 --- a/frontend/src/components/storage/__snapshots__/ClaimList.Items.stories.storyshot +++ b/frontend/src/components/storage/__snapshots__/ClaimList.Items.stories.storyshot @@ -872,7 +872,7 @@ > my-pvc @@ -1027,7 +1027,7 @@ > no-storage-class-name-pvc @@ -1169,7 +1169,7 @@ > no-volume-name-pvc diff --git a/frontend/src/components/storage/__snapshots__/ClassList.Items.stories.storyshot b/frontend/src/components/storage/__snapshots__/ClassList.Items.stories.storyshot index 8558f89b7b9..cb1c0526a3c 100644 --- a/frontend/src/components/storage/__snapshots__/ClassList.Items.stories.storyshot +++ b/frontend/src/components/storage/__snapshots__/ClassList.Items.stories.storyshot @@ -618,7 +618,7 @@ > my-pvc diff --git a/frontend/src/components/storage/__snapshots__/VolumeList.Items.stories.storyshot b/frontend/src/components/storage/__snapshots__/VolumeList.Items.stories.storyshot index 51e106b4a48..38cea2788a5 100644 --- a/frontend/src/components/storage/__snapshots__/VolumeList.Items.stories.storyshot +++ b/frontend/src/components/storage/__snapshots__/VolumeList.Items.stories.storyshot @@ -618,7 +618,7 @@ > my-pvc diff --git a/frontend/src/components/verticalPodAutoscaler/__snapshots__/VPADetails.Default.stories.storyshot b/frontend/src/components/verticalPodAutoscaler/__snapshots__/VPADetails.Default.stories.storyshot index fc283ff8141..da4f0c5d01c 100644 --- a/frontend/src/components/verticalPodAutoscaler/__snapshots__/VPADetails.Default.stories.storyshot +++ b/frontend/src/components/verticalPodAutoscaler/__snapshots__/VPADetails.Default.stories.storyshot @@ -205,7 +205,7 @@ > Deployment / diff --git a/frontend/src/components/verticalPodAutoscaler/__snapshots__/VPAList.List.stories.storyshot b/frontend/src/components/verticalPodAutoscaler/__snapshots__/VPAList.List.stories.storyshot index 3da5472fd4b..9e352465d63 100644 --- a/frontend/src/components/verticalPodAutoscaler/__snapshots__/VPAList.List.stories.storyshot +++ b/frontend/src/components/verticalPodAutoscaler/__snapshots__/VPAList.List.stories.storyshot @@ -707,7 +707,7 @@ > multi-container-vpa diff --git a/frontend/src/components/webhookconfiguration/__snapshots__/MutatingWebhookConfigList.Items.stories.storyshot b/frontend/src/components/webhookconfiguration/__snapshots__/MutatingWebhookConfigList.Items.stories.storyshot index d161e8a52f5..41068a04cd0 100644 --- a/frontend/src/components/webhookconfiguration/__snapshots__/MutatingWebhookConfigList.Items.stories.storyshot +++ b/frontend/src/components/webhookconfiguration/__snapshots__/MutatingWebhookConfigList.Items.stories.storyshot @@ -456,7 +456,7 @@ > mwc-test-0 @@ -543,7 +543,7 @@ > mwc-test-1 @@ -630,7 +630,7 @@ > mwc-test-2 @@ -717,7 +717,7 @@ > mwc-test-with-service-0 @@ -804,7 +804,7 @@ > mwc-test-with-service-1 @@ -891,7 +891,7 @@ > mwc-test-with-service-2 diff --git a/frontend/src/components/webhookconfiguration/__snapshots__/ValidatingWebhookConfigList.Items.stories.storyshot b/frontend/src/components/webhookconfiguration/__snapshots__/ValidatingWebhookConfigList.Items.stories.storyshot index e206ef08c2f..b01eac4fa74 100644 --- a/frontend/src/components/webhookconfiguration/__snapshots__/ValidatingWebhookConfigList.Items.stories.storyshot +++ b/frontend/src/components/webhookconfiguration/__snapshots__/ValidatingWebhookConfigList.Items.stories.storyshot @@ -456,7 +456,7 @@ > vwc-test-0 @@ -543,7 +543,7 @@ > vwc-test-1 @@ -630,7 +630,7 @@ > vwc-test-2 @@ -717,7 +717,7 @@ > vwc-test-with-service-0 @@ -804,7 +804,7 @@ > vwc-test-with-service-1 @@ -891,7 +891,7 @@ > vwc-test-with-service-2 diff --git a/frontend/src/lib/k8s/KubeObject.ts b/frontend/src/lib/k8s/KubeObject.ts index 17b2c70ef06..fb7600c2e7d 100644 --- a/frontend/src/lib/k8s/KubeObject.ts +++ b/frontend/src/lib/k8s/KubeObject.ts @@ -3,7 +3,6 @@ import { cloneDeep, unset } from 'lodash'; import React, { useMemo } from 'react'; import exportFunctions from '../../helpers'; import { getCluster } from '../cluster'; -import { createRouteURL } from '../router'; import { timeAgo } from '../util'; import { useClusterGroup, useConnectApi } from '.'; import { RecursivePartial } from './api/v1/factories'; @@ -126,12 +125,17 @@ export class KubeObject { namespace: this.getNamespace(), name: this.getName(), }; - const link = createRouteURL(this.detailsRoute, params); - return link; + const cluster = this.cluster ?? getCluster(); + // TODO: Refactor this after #2792 is implemented + if (this.isNamespaced) { + return `/c/${cluster}/${this._class().apiName}/${params.namespace}/${params.name}`; + } + return `/c/${cluster}/${this._class().apiName}/${params.name}`; } getListLink() { - return createRouteURL(this.listRoute); + const cluster = this.cluster ?? getCluster(); + return `/c/${cluster}/${this._class().apiName}`; } getName() { diff --git a/frontend/src/lib/k8s/clusterRole.ts b/frontend/src/lib/k8s/clusterRole.ts index f9f4e040faa..e6de3e4fca7 100644 --- a/frontend/src/lib/k8s/clusterRole.ts +++ b/frontend/src/lib/k8s/clusterRole.ts @@ -1,7 +1,7 @@ -import { makeKubeObject } from './KubeObject'; +import { KubeObject } from './KubeObject'; import { KubeRole } from './role'; -class ClusterRole extends makeKubeObject() { +class ClusterRole extends KubeObject { static kind = 'ClusterRole'; static apiName = 'clusterroles'; static apiVersion = 'rbac.authorization.k8s.io/v1'; diff --git a/frontend/src/lib/k8s/clusterRoleBinding.ts b/frontend/src/lib/k8s/clusterRoleBinding.ts index a1411cd52a4..72325f9343c 100644 --- a/frontend/src/lib/k8s/clusterRoleBinding.ts +++ b/frontend/src/lib/k8s/clusterRoleBinding.ts @@ -1,7 +1,7 @@ -import { makeKubeObject } from './KubeObject'; +import { KubeObject } from './KubeObject'; import { KubeRoleBinding } from './roleBinding'; -class ClusterRoleBinding extends makeKubeObject() { +class ClusterRoleBinding extends KubeObject { static kind = 'ClusterRoleBinding'; static apiName = 'clusterrolebindings'; static apiVersion = 'rbac.authorization.k8s.io/v1'; diff --git a/frontend/src/lib/redirects.tsx b/frontend/src/lib/redirects.tsx new file mode 100644 index 00000000000..0639001c8e9 --- /dev/null +++ b/frontend/src/lib/redirects.tsx @@ -0,0 +1,30 @@ +import { getClusterPrefixedPath } from './cluster'; + +/** Redirect will navigate to new location */ +interface Redirect { + /** Full path to redirect from */ + fromPath: string; + /** Name of the default route to redirect to */ + toRouteName: string; +} + +export const redirects: Redirect[] = [ + { fromPath: getClusterPrefixedPath('/storage/classes'), toRouteName: 'storageClasses' }, + { fromPath: getClusterPrefixedPath('/storage/classes/:name'), toRouteName: 'storageClass' }, + { + fromPath: getClusterPrefixedPath('/storage/persistentvolumes'), + toRouteName: 'persistentVolumes', + }, + { + fromPath: getClusterPrefixedPath('/storage/persistentvolumes/:name'), + toRouteName: 'persistentVolume', + }, + { + fromPath: getClusterPrefixedPath('/storage/persistentvolumeclaims'), + toRouteName: 'persistentVolumeClaims', + }, + { + fromPath: getClusterPrefixedPath('/storage/persistentvolumeclaims/:namespace/:name'), + toRouteName: 'persistentVolumeClaim', + }, +]; diff --git a/frontend/src/lib/router.tsx b/frontend/src/lib/router.tsx index ce8e8d5a099..0e96febfff0 100644 --- a/frontend/src/lib/router.tsx +++ b/frontend/src/lib/router.tsx @@ -182,41 +182,41 @@ const defaultRoutes: { component: () => , }, storageClasses: { - path: '/storage/classes', + path: '/storageclasses', exact: true, sidebar: 'storageClasses', name: 'Storage Classes', component: () => , }, storageClass: { - path: '/storage/classes/:name', + path: '/storageclasses/:name', name: 'Storage Classes', sidebar: 'storageClasses', component: () => , }, persistentVolumes: { - path: '/storage/persistentvolumes', + path: '/persistentvolumes', exact: true, sidebar: 'persistentVolumes', name: 'Persistent Volumes', component: () => , }, persistentVolume: { - path: '/storage/persistentvolumes/:name', + path: '/persistentvolumes/:name', exact: true, sidebar: 'persistentVolumes', name: 'Persistent Volume', component: () => , }, persistentVolumeClaims: { - path: '/storage/persistentvolumeclaims', + path: '/persistentvolumeclaims', exact: true, sidebar: 'persistentVolumeClaims', name: 'Persistent Volume Claims', component: () => , }, persistentVolumeClaim: { - path: '/storage/persistentvolumeclaims/:namespace/:name', + path: '/persistentvolumeclaims/:namespace/:name', sidebar: 'persistentVolumeClaims', exact: true, component: () => ,