From da91347121de9bc9671b6cf71887ef9a4b1b6573 Mon Sep 17 00:00:00 2001 From: Piotr Roszatycki Date: Tue, 11 Oct 2022 16:04:08 +0200 Subject: [PATCH] Clickable links in pods details for ServiceAccount, PriorityClass and RuntimeClass (#6352) * Clickable links in pods details Signed-off-by: Piotr Roszatycki * Make linter happy Signed-off-by: Piotr Roszatycki * Use withInjectables Signed-off-by: Piotr Roszatycki * ServiceAccounts are namespaced Signed-off-by: Piotr Roszatycki * Revert legacy APIs Signed-off-by: Piotr Roszatycki * Make linter happy Signed-off-by: Piotr Roszatycki Signed-off-by: Piotr Roszatycki --- .../+workloads-pods/pod-details.tsx | 57 ++++++++++++++++--- 1 file changed, 50 insertions(+), 7 deletions(-) diff --git a/src/renderer/components/+workloads-pods/pod-details.tsx b/src/renderer/components/+workloads-pods/pod-details.tsx index da87515355..726c5326b6 100644 --- a/src/renderer/components/+workloads-pods/pod-details.tsx +++ b/src/renderer/components/+workloads-pods/pod-details.tsx @@ -10,11 +10,11 @@ import kebabCase from "lodash/kebabCase"; import { disposeOnUnmount, observer } from "mobx-react"; import { Link } from "react-router-dom"; import { observable, reaction, makeObservable } from "mobx"; -import type { NodeApi } from "../../../common/k8s-api/endpoints"; import { Pod } from "../../../common/k8s-api/endpoints"; +import type { NodeApi, PriorityClassApi, RuntimeClassApi, ServiceAccountApi } from "../../../common/k8s-api/endpoints"; import { DrawerItem, DrawerTitle } from "../drawer"; import { Badge } from "../badge"; -import { cssNames, toJS } from "../../utils"; +import { cssNames, stopPropagation, toJS } from "../../utils"; import { PodDetailsContainer } from "./pod-details-container"; import { PodDetailsAffinities } from "./pod-details-affinities"; import { PodDetailsTolerations } from "./pod-details-tolerations"; @@ -35,6 +35,9 @@ import type { GetDetailsUrl } from "../kube-detail-params/get-details-url.inject import getActiveClusterEntityInjectable from "../../api/catalog/entity/get-active-cluster-entity.injectable"; import getDetailsUrlInjectable from "../kube-detail-params/get-details-url.injectable"; import nodeApiInjectable from "../../../common/k8s-api/endpoints/node.api.injectable"; +import runtimeClassApiInjectable from "../../../common/k8s-api/endpoints/runtime-class.api.injectable"; +import serviceAccountApiInjectable from "../../../common/k8s-api/endpoints/service-account.api.injectable"; +import priorityClassApiInjectable from "../../../common/k8s-api/endpoints/priority-class.api.injectable"; export interface PodDetailsProps extends KubeObjectDetailsProps { } @@ -44,6 +47,9 @@ interface Dependencies { getActiveClusterEntity: GetActiveClusterEntity; getDetailsUrl: GetDetailsUrl; nodeApi: NodeApi; + priorityClassApi: PriorityClassApi; + runtimeClassApi: RuntimeClassApi; + serviceAccountApi: ServiceAccountApi; } @observer @@ -94,6 +100,22 @@ class NonInjectedPodDetails extends React.Component {!isMetricHidden && ( @@ -130,16 +152,34 @@ class NonInjectedPodDetails extends React.Component )} - {pod.getServiceAccountName()} + + {serviceAccountName} + -