1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

added new sidebar item: "Network -> Ingress Classes"

Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
Roman 2022-12-20 15:43:29 +02:00
parent 4940f5dc1a
commit b273de02e2
3 changed files with 25 additions and 9 deletions

View File

@ -5,7 +5,7 @@
export type KubeResource =
"namespaces" | "nodes" | "events" | "resourcequotas" | "services" | "limitranges" | "leases" |
"secrets" | "configmaps" | "ingresses" | "networkpolicies" | "persistentvolumeclaims" | "persistentvolumes" | "storageclasses" |
"secrets" | "configmaps" | "ingresses" | "ingressclasses" | "networkpolicies" | "persistentvolumeclaims" | "persistentvolumes" | "storageclasses" |
"pods" | "daemonsets" | "deployments" | "statefulsets" | "replicasets" | "jobs" | "cronjobs" |
"endpoints" | "customresourcedefinitions" | "horizontalpodautoscalers" | "podsecuritypolicies" | "poddisruptionbudgets" |
"priorityclasses" | "runtimeclasses" |
@ -32,6 +32,7 @@ export const apiResourceRecord: Record<KubeResource, KubeApiResourceData> = {
"events": { kind: "Event" },
"horizontalpodautoscalers": { kind: "HorizontalPodAutoscaler", group: "autoscaling" },
"ingresses": { kind: "Ingress", group: "networking.k8s.io" },
"ingressclasses": { kind: "IngressClass", group: "networking.k8s.io" },
"jobs": { kind: "Job", group: "batch" },
"namespaces": { kind: "Namespace" },
"limitranges": { kind: "LimitRange" },

View File

@ -5,28 +5,42 @@
import { getInjectable } from "@ogre-tools/injectable";
import { computed } from "mobx";
import ingressesRouteInjectable from "../../../common/front-end-routing/routes/cluster/network/ingresses/ingresses-route.injectable";
import ingressesRouteInjectable
from "../../../common/front-end-routing/routes/cluster/network/ingresses/ingresses-route.injectable";
import { sidebarItemsInjectionToken } from "../layout/sidebar-items.injectable";
import { networkSidebarItemId } from "../+network/network-sidebar-items.injectable";
import routeIsActiveInjectable from "../../routes/route-is-active.injectable";
import navigateToIngressesInjectable from "../../../common/front-end-routing/routes/cluster/network/ingresses/navigate-to-ingresses.injectable";
import navigateToIngressesInjectable
from "../../../common/front-end-routing/routes/cluster/network/ingresses/navigate-to-ingresses.injectable";
import ingressClassesesRouteInjectable
from "../../../common/front-end-routing/routes/cluster/network/ingress-class/ingress-classeses-route.injectable";
import navigateToIngressClassesInjectable
from "../../../common/front-end-routing/routes/cluster/network/ingress-class/navigate-to-ingress-classes.injectable";
const ingressesSidebarItemsInjectable = getInjectable({
id: "ingresses-sidebar-items",
instantiate: (di) => {
const route = di.inject(ingressesRouteInjectable);
const navigateToIngresses = di.inject(navigateToIngressesInjectable);
const routeIsActive = di.inject(routeIsActiveInjectable, route);
const ingressRoute = di.inject(ingressesRouteInjectable);
const ingressClassRoute = di.inject(ingressClassesesRouteInjectable);
return computed(() => [
{
id: "ingresses",
parentId: networkSidebarItemId,
title: "Ingresses",
onClick: navigateToIngresses,
isActive: routeIsActive,
isVisible: route.isEnabled,
onClick: di.inject(navigateToIngressesInjectable),
isActive: di.inject(routeIsActiveInjectable, ingressRoute),
isVisible: ingressRoute.isEnabled,
orderNumber: 30,
},
{
id: "ingressclasses",
parentId: networkSidebarItemId,
title: "Ingress Classes",
onClick: di.inject(navigateToIngressClassesInjectable),
isActive: di.inject(routeIsActiveInjectable, ingressClassRoute),
isVisible: ingressClassRoute.isEnabled,
orderNumber: 30,
},
]);

View File

@ -16,6 +16,7 @@ export const ResourceNames: Record<KubeResource, string> = {
"secrets": "Secrets",
"configmaps": "Config Maps",
"ingresses": "Ingresses",
"ingressclasses": "Ingress Classes",
"networkpolicies": "Network Policies",
"persistentvolumeclaims": "Persistent Volume Claims",
"persistentvolumes": "Persistent Volumes",