diff --git a/src/extensions/extension-loader.ts b/src/extensions/extension-loader.ts index dc96b892f2..a099af0af9 100644 --- a/src/extensions/extension-loader.ts +++ b/src/extensions/extension-loader.ts @@ -279,6 +279,7 @@ export class ExtensionLoader extends Singleton { registries.kubeObjectMenuRegistry.add(extension.kubeObjectMenuItems), registries.kubeObjectDetailRegistry.add(extension.kubeObjectDetailItems), registries.kubeObjectStatusRegistry.add(extension.kubeObjectStatusTexts), + registries.workloadsOverviewDetailRegistry.add(extension.workloadsOverviewDetailItems), registries.commandRegistry.add(extension.commands), ]; diff --git a/src/extensions/lens-renderer-extension.ts b/src/extensions/lens-renderer-extension.ts index 520ffae05b..1c7e443b29 100644 --- a/src/extensions/lens-renderer-extension.ts +++ b/src/extensions/lens-renderer-extension.ts @@ -21,7 +21,7 @@ import type { AppPreferenceRegistration, ClusterPageMenuRegistration, KubeObjectDetailRegistration, KubeObjectMenuRegistration, - KubeObjectStatusRegistration, PageMenuRegistration, PageRegistration, StatusBarRegistration, WelcomeMenuRegistration, + KubeObjectStatusRegistration, PageMenuRegistration, PageRegistration, StatusBarRegistration, WelcomeMenuRegistration, WorkloadsOverviewDetailRegistration, } from "./registries"; import type { Cluster } from "../main/cluster"; import { LensExtension } from "./lens-extension"; @@ -42,6 +42,7 @@ export class LensRendererExtension extends LensExtension { kubeObjectMenuItems: KubeObjectMenuRegistration[] = []; commands: CommandRegistration[] = []; welcomeMenus: WelcomeMenuRegistration[] = []; + workloadsOverviewDetailItems: WorkloadsOverviewDetailRegistration[] = []; async navigate

(pageId?: string, params?: P) { const { navigate } = await import("../renderer/navigation"); diff --git a/src/extensions/registries/index.ts b/src/extensions/registries/index.ts index 7056206daf..e3a6490d61 100644 --- a/src/extensions/registries/index.ts +++ b/src/extensions/registries/index.ts @@ -33,3 +33,4 @@ export * from "./command-registry"; export * from "./entity-setting-registry"; export * from "./welcome-menu-registry"; export * from "./protocol-handler-registry"; +export * from "./workloads-overview-detail-registry"; diff --git a/src/renderer/components/+workloads-overview/overview.tsx b/src/renderer/components/+workloads-overview/overview.tsx index 82c3549fb1..24331d63a7 100644 --- a/src/renderer/components/+workloads-overview/overview.tsx +++ b/src/renderer/components/+workloads-overview/overview.tsx @@ -38,6 +38,7 @@ import { Events } from "../+events"; import { isAllowedResource } from "../../../common/rbac"; import { kubeWatchApi } from "../../api/kube-watch-api"; import { clusterContext } from "../context"; +import { workloadsOverviewDetailRegistry } from "../../../extensions/registries"; interface Props extends RouteComponentProps { } @@ -57,11 +58,34 @@ export class WorkloadsOverview extends React.Component { } render() { + const items = workloadsOverviewDetailRegistry.getItems().map((item, index) => { + return ( + + ); + }); + return (

- - {isAllowedResource("events") && } + {items}
); } } + +workloadsOverviewDetailRegistry.add([ + { + components: { + Details: (props: any) => , + } + }, + { + priority: 5, + components: { + Details: () => { + return ( + isAllowedResource("events") && + ); + } + } + } +]);