From b273de02e2cbcc362168efd2c2889c64cf4c11f2 Mon Sep 17 00:00:00 2001 From: Roman Date: Tue, 20 Dec 2022 15:43:29 +0200 Subject: [PATCH] added new sidebar item: "Network -> Ingress Classes" Signed-off-by: Roman --- src/common/rbac.ts | 3 +- .../ingresses-sidebar-items.injectable.tsx | 30 ++++++++++++++----- src/renderer/utils/rbac.ts | 1 + 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/common/rbac.ts b/src/common/rbac.ts index bfa04ef46b..b1784312a6 100644 --- a/src/common/rbac.ts +++ b/src/common/rbac.ts @@ -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 = { "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" }, diff --git a/src/renderer/components/+network-ingresses/ingresses-sidebar-items.injectable.tsx b/src/renderer/components/+network-ingresses/ingresses-sidebar-items.injectable.tsx index 80e9a7939c..8e4f219634 100644 --- a/src/renderer/components/+network-ingresses/ingresses-sidebar-items.injectable.tsx +++ b/src/renderer/components/+network-ingresses/ingresses-sidebar-items.injectable.tsx @@ -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, }, ]); diff --git a/src/renderer/utils/rbac.ts b/src/renderer/utils/rbac.ts index 46219febf6..1db77a0656 100644 --- a/src/renderer/utils/rbac.ts +++ b/src/renderer/utils/rbac.ts @@ -16,6 +16,7 @@ export const ResourceNames: Record = { "secrets": "Secrets", "configmaps": "Config Maps", "ingresses": "Ingresses", + "ingressclasses": "Ingress Classes", "networkpolicies": "Network Policies", "persistentvolumeclaims": "Persistent Volume Claims", "persistentvolumes": "Persistent Volumes",