mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
chore: Fix type errors with KubeObjectDetails
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
d8d6403b32
commit
f3b1bc565c
@ -9,17 +9,10 @@ import React from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import { DrawerItem } from "../drawer";
|
||||
import type { KubeObjectDetailsProps } from "../kube-object-details";
|
||||
import { Lease } from "@k8slens/kube-object";
|
||||
import type { Lease } from "@k8slens/kube-object";
|
||||
|
||||
@observer
|
||||
export class LeaseDetails extends React.Component<KubeObjectDetailsProps> {
|
||||
|
||||
render() {
|
||||
const { object: lease } = this.props;
|
||||
|
||||
if (!(lease instanceof Lease)) {
|
||||
return null;
|
||||
}
|
||||
export const LeaseDetails = observer((props: KubeObjectDetailsProps) => {
|
||||
const lease = props.object as Lease;
|
||||
|
||||
return (
|
||||
<div className="LeaseDetails">
|
||||
@ -42,8 +35,6 @@ export class LeaseDetails extends React.Component<KubeObjectDetailsProps> {
|
||||
<DrawerItem name="Renew Time">
|
||||
{lease.getRenewTime()}
|
||||
</DrawerItem>
|
||||
|
||||
</div >
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -6,17 +6,11 @@ import React from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import { DrawerItem, DrawerTitle } from "../drawer";
|
||||
import type { KubeObjectDetailsProps } from "../kube-object-details";
|
||||
import { MutatingWebhookConfiguration } from "@k8slens/kube-object";
|
||||
import type { MutatingWebhookConfiguration } from "@k8slens/kube-object";
|
||||
import { WebhookConfig } from "./webhook-config";
|
||||
|
||||
@observer
|
||||
export class MutatingWebhookDetails extends React.Component<KubeObjectDetailsProps> {
|
||||
render() {
|
||||
const { object: webhookConfig } = this.props;
|
||||
|
||||
if (!(webhookConfig instanceof MutatingWebhookConfiguration)) {
|
||||
return null;
|
||||
}
|
||||
export const MutatingWebhookDetails = observer((props: KubeObjectDetailsProps) => {
|
||||
const webhookConfig = props.object as MutatingWebhookConfiguration;
|
||||
|
||||
return (
|
||||
<div className="MutatingWebhookDetails">
|
||||
@ -32,5 +26,4 @@ export class MutatingWebhookDetails extends React.Component<KubeObjectDetailsPro
|
||||
))}
|
||||
</div >
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -10,20 +10,11 @@ import { observer } from "mobx-react";
|
||||
import { DrawerItem } from "../drawer";
|
||||
import { Badge } from "../badge";
|
||||
import type { KubeObjectDetailsProps } from "../kube-object-details";
|
||||
import { PodDisruptionBudget } from "@k8slens/kube-object";
|
||||
import type { PodDisruptionBudget } from "@k8slens/kube-object";
|
||||
|
||||
export const PodDisruptionBudgetDetails = observer((props: KubeObjectDetailsProps) => {
|
||||
const { object: pdb } = props;
|
||||
|
||||
if (!pdb) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!(pdb instanceof PodDisruptionBudget)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const selectors = pdb.getSelectors();
|
||||
const podDisruptionBudget = props.object as PodDisruptionBudget;
|
||||
const selectors = podDisruptionBudget.getSelectors();
|
||||
|
||||
return (
|
||||
<div className="PdbDetails">
|
||||
@ -34,21 +25,20 @@ export const PodDisruptionBudgetDetails = observer((props: KubeObjectDetailsProp
|
||||
)}
|
||||
|
||||
<DrawerItem name="Min Available">
|
||||
{pdb.getMinAvailable()}
|
||||
{podDisruptionBudget.getMinAvailable()}
|
||||
</DrawerItem>
|
||||
|
||||
<DrawerItem name="Max Unavailable">
|
||||
{pdb.getMaxUnavailable()}
|
||||
{podDisruptionBudget.getMaxUnavailable()}
|
||||
</DrawerItem>
|
||||
|
||||
<DrawerItem name="Current Healthy">
|
||||
{pdb.getCurrentHealthy()}
|
||||
{podDisruptionBudget.getCurrentHealthy()}
|
||||
</DrawerItem>
|
||||
|
||||
<DrawerItem name="Desired Healthy">
|
||||
{pdb.getDesiredHealthy()}
|
||||
{podDisruptionBudget.getDesiredHealthy()}
|
||||
</DrawerItem>
|
||||
|
||||
</div>
|
||||
);
|
||||
});
|
||||
|
||||
@ -9,35 +9,24 @@ import React from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import { DrawerItem } from "../drawer";
|
||||
import type { KubeObjectDetailsProps } from "../kube-object-details";
|
||||
import { PriorityClass } from "@k8slens/kube-object";
|
||||
import type { PriorityClass } from "@k8slens/kube-object";
|
||||
|
||||
@observer
|
||||
export class PriorityClassesDetails extends React.Component<KubeObjectDetailsProps> {
|
||||
render() {
|
||||
const { object: pc } = this.props;
|
||||
|
||||
if (!pc) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!(pc instanceof PriorityClass)) {
|
||||
return null;
|
||||
}
|
||||
export const PriorityClassesDetails = observer((props: KubeObjectDetailsProps) => {
|
||||
const priorityClass = props.object as PriorityClass;
|
||||
|
||||
return (
|
||||
<div className="PriorityClassesDetails">
|
||||
<DrawerItem name="Description">
|
||||
{pc.getDescription()}
|
||||
{priorityClass.getDescription()}
|
||||
</DrawerItem>
|
||||
|
||||
<DrawerItem name="Value">
|
||||
{pc.getValue()}
|
||||
{priorityClass.getValue()}
|
||||
</DrawerItem>
|
||||
|
||||
<DrawerItem name="Global Default">
|
||||
{pc.getGlobalDefault()}
|
||||
{priorityClass.getGlobalDefault()}
|
||||
</DrawerItem>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -9,43 +9,31 @@ import React from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import { DrawerItem } from "../drawer";
|
||||
import type { KubeObjectDetailsProps } from "../kube-object-details";
|
||||
import { RuntimeClass } from "@k8slens/kube-object";
|
||||
import type { RuntimeClass } from "@k8slens/kube-object";
|
||||
import { Badge } from "../badge";
|
||||
import { RuntimeClassDetailsTolerations } from "./runtime-classes-details-tolerations";
|
||||
|
||||
@observer
|
||||
export class RuntimeClassesDetails extends React.Component<KubeObjectDetailsProps> {
|
||||
export type RuntimeClassesDetailsProps = KubeObjectDetailsProps<RuntimeClass>;
|
||||
|
||||
render() {
|
||||
const { object: rc } = this.props;
|
||||
|
||||
if (!rc) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!(rc instanceof RuntimeClass)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const nodeSelector = rc.getNodeSelectors();
|
||||
export const RuntimeClassesDetails = observer((props: KubeObjectDetailsProps) => {
|
||||
const runtimeClass = props.object as RuntimeClass;
|
||||
const nodeSelector = runtimeClass.getNodeSelectors();
|
||||
|
||||
return (
|
||||
<div className="RuntimeClassesDetails">
|
||||
<DrawerItem name="Handler">
|
||||
{rc.getHandler()}
|
||||
{runtimeClass.getHandler()}
|
||||
</DrawerItem>
|
||||
|
||||
<DrawerItem name="Pod Fixed" hidden={rc.getPodFixed() === ""}>
|
||||
{rc.getPodFixed()}
|
||||
<DrawerItem name="Pod Fixed" hidden={runtimeClass.getPodFixed() === ""}>
|
||||
{runtimeClass.getPodFixed()}
|
||||
</DrawerItem>
|
||||
|
||||
<DrawerItem name="Node Selector" hidden={nodeSelector.length === 0}>
|
||||
{nodeSelector.map(label => <Badge key={label} label={label} />)}
|
||||
</DrawerItem>
|
||||
|
||||
<RuntimeClassDetailsTolerations runtimeClass={rc} />
|
||||
|
||||
<RuntimeClassDetailsTolerations runtimeClass={runtimeClass} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -2,20 +2,14 @@
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { RuntimeClasses } from "./runtime-classes";
|
||||
import runtimeClassesRouteInjectable from "../../../common/front-end-routing/routes/cluster/config/runtime-classes/runtime-classes-route.injectable";
|
||||
import { routeSpecificComponentInjectionToken } from "../../routes/route-specific-component-injection-token";
|
||||
import { getRouteSpecificComponentInjectable } from "../../routes/route-specific-component-injection-token";
|
||||
|
||||
const runtimeClassesRouteComponentInjectable = getInjectable({
|
||||
const runtimeClassesRouteComponentInjectable = getRouteSpecificComponentInjectable({
|
||||
id: "runtime-classes-route-component",
|
||||
|
||||
instantiate: (di) => ({
|
||||
route: di.inject(runtimeClassesRouteInjectable),
|
||||
routeInjectable: runtimeClassesRouteInjectable,
|
||||
Component: RuntimeClasses,
|
||||
}),
|
||||
|
||||
injectionToken: routeSpecificComponentInjectionToken,
|
||||
});
|
||||
|
||||
export default runtimeClassesRouteComponentInjectable;
|
||||
|
||||
@ -7,20 +7,10 @@ import { observer } from "mobx-react";
|
||||
import { DrawerItem, DrawerTitle } from "../drawer";
|
||||
import type { KubeObjectDetailsProps } from "../kube-object-details";
|
||||
import { WebhookConfig } from "../config-mutating-webhook-configurations/webhook-config";
|
||||
import { ValidatingWebhookConfiguration } from "@k8slens/kube-object";
|
||||
import type { ValidatingWebhookConfiguration } from "@k8slens/kube-object";
|
||||
|
||||
@observer
|
||||
export class ValidatingWebhookDetails extends React.Component<KubeObjectDetailsProps> {
|
||||
render() {
|
||||
const { object: webhookConfig } = this.props;
|
||||
|
||||
if (!webhookConfig) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!(webhookConfig instanceof ValidatingWebhookConfiguration)) {
|
||||
return null;
|
||||
}
|
||||
export const ValidatingWebhookDetails = observer((props: KubeObjectDetailsProps) => {
|
||||
const webhookConfig = props.object as ValidatingWebhookConfiguration;
|
||||
|
||||
return (
|
||||
<div className="ValidatingWebhookDetails">
|
||||
@ -36,5 +26,4 @@ export class ValidatingWebhookDetails extends React.Component<KubeObjectDetailsP
|
||||
))}
|
||||
</div >
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { ClusterRoleBindingDetails } from "../../../user-management/cluster-role-bindings";
|
||||
@ -19,7 +20,7 @@ const clusterRoleBindingDetailItemInjectable = getInjectable({
|
||||
Component: ClusterRoleBindingDetails,
|
||||
enabled: computed(() => isClusterRoleBinding(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { ConfigMapDetails } from "../../../config-maps";
|
||||
@ -19,7 +20,7 @@ const configMapDetailItemInjectable = getInjectable({
|
||||
Component: ConfigMapDetails,
|
||||
enabled: computed(() => isConfigMap(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { CronJobDetails } from "../../../workloads-cronjobs";
|
||||
@ -19,7 +20,7 @@ const cronJobDetailItemInjectable = getInjectable({
|
||||
Component: CronJobDetails,
|
||||
enabled: computed(() => isCronJob(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { CustomResourceDefinitionDetails } from "../../../custom-resource-definitions/details";
|
||||
@ -19,7 +20,7 @@ const customResourceDefinitionsDetailItemInjectable = getInjectable({
|
||||
Component: CustomResourceDefinitionDetails,
|
||||
enabled: computed(() => isCustomResourceDefinition(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { DaemonSetDetails } from "../../../workloads-daemonsets";
|
||||
@ -19,7 +20,7 @@ const daemonSetDetailItemInjectable = getInjectable({
|
||||
Component: DaemonSetDetails,
|
||||
enabled: computed(() => isDaemonSet(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { DeploymentDetails } from "../../../workloads-deployments";
|
||||
@ -19,7 +20,7 @@ const deploymentDetailItemInjectable = getInjectable({
|
||||
Component: DeploymentDetails,
|
||||
enabled: computed(() => isDeployment(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { EndpointsDetails } from "../../../network-endpoints";
|
||||
@ -19,7 +20,7 @@ const endpointsDetailItemInjectable = getInjectable({
|
||||
Component: EndpointsDetails,
|
||||
enabled: computed(() => isEndpoint(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { EventDetails } from "../../../events";
|
||||
@ -19,7 +20,7 @@ const eventsDetailItemInjectable = getInjectable({
|
||||
Component: EventDetails,
|
||||
enabled: computed(() => isEvent(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { HorizontalPodAutoscalerDetails } from "../../../config-horizontal-pod-autoscalers";
|
||||
import { computed } from "mobx";
|
||||
@ -19,7 +20,7 @@ const horizontalPodAutoscalerDetailItemInjectable = getInjectable({
|
||||
Component: HorizontalPodAutoscalerDetails,
|
||||
enabled: computed(() => isHorizontalPodAutoscaler(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { IngressDetails } from "../../../network-ingresses";
|
||||
@ -19,7 +20,7 @@ const ingressDetailItemInjectable = getInjectable({
|
||||
Component: IngressDetails,
|
||||
enabled: computed(() => isIngress(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { JobDetails } from "../../../workloads-jobs";
|
||||
@ -19,7 +20,7 @@ const jobDetailItemInjectable = getInjectable({
|
||||
Component: JobDetails,
|
||||
enabled: computed(() => isJob(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { LimitRangeDetails } from "../../../config-limit-ranges";
|
||||
@ -19,7 +20,7 @@ const limitRangeDetailItemInjectable = getInjectable({
|
||||
Component: LimitRangeDetails,
|
||||
enabled: computed(() => isLimitRange(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { NamespaceDetails } from "../../../namespaces";
|
||||
@ -19,7 +20,7 @@ const namespacesDetailItemInjectable = getInjectable({
|
||||
Component: NamespaceDetails,
|
||||
enabled: computed(() => isNamespace(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { NetworkPolicyDetails } from "../../../network-policies";
|
||||
@ -19,7 +20,7 @@ const networkPolicyDetailItemInjectable = getInjectable({
|
||||
Component: NetworkPolicyDetails,
|
||||
enabled: computed(() => isNetworkPolicy(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { NodeDetails } from "../../../nodes/details";
|
||||
@ -19,7 +20,7 @@ const nodeDetailItemInjectable = getInjectable({
|
||||
Component: NodeDetails,
|
||||
enabled: computed(() => isNode(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { PersistentVolumeClaimDetails } from "../../../storage-volume-claims";
|
||||
@ -19,7 +20,7 @@ const persistentVolumeClaimDetailItemInjectable = getInjectable({
|
||||
Component: PersistentVolumeClaimDetails,
|
||||
enabled: computed(() => isPersistentVolumeClaim(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { PersistentVolumeDetails } from "../../../storage-volumes";
|
||||
@ -19,7 +20,7 @@ const persistentVolumeDetailItemInjectable = getInjectable({
|
||||
Component: PersistentVolumeDetails,
|
||||
enabled: computed(() => isPersistentVolume(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { PodDetails } from "../../../workloads-pods";
|
||||
@ -19,7 +20,7 @@ const podDetailItemInjectable = getInjectable({
|
||||
Component: PodDetails,
|
||||
enabled: computed(() => isPod(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { PodSecurityPolicyDetails } from "../../../pod-security-policies";
|
||||
@ -19,7 +20,7 @@ const podSecurityPolicyDetailItemInjectable = getInjectable({
|
||||
Component: PodSecurityPolicyDetails,
|
||||
enabled: computed(() => isPodSecurityPolicy(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { ReplicaSetDetails } from "../../../workloads-replicasets";
|
||||
@ -19,7 +20,7 @@ const replicaSetDetailItemInjectable = getInjectable({
|
||||
Component: ReplicaSetDetails,
|
||||
enabled: computed(() => isReplicaSet(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version";
|
||||
@ -19,7 +20,7 @@ const replicationControllerDetailItemInjectable = getInjectable({
|
||||
Component: ReplicationControllerDetails,
|
||||
enabled: computed(() => isReplicationController(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { ResourceQuotaDetails } from "../../../config-resource-quotas";
|
||||
@ -19,7 +20,7 @@ const resourceQuotaDetailItemInjectable = getInjectable({
|
||||
Component: ResourceQuotaDetails,
|
||||
enabled: computed(() => isResourceQuota(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { RoleBindingDetails } from "../../../user-management/role-bindings";
|
||||
@ -19,7 +20,7 @@ const roleBindingDetailItemInjectable = getInjectable({
|
||||
Component: RoleBindingDetails,
|
||||
enabled: computed(() => isRoleBinding(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { SecretDetails } from "../../../config-secrets";
|
||||
@ -19,7 +20,7 @@ const secretsDetailItemInjectable = getInjectable({
|
||||
Component: SecretDetails,
|
||||
enabled: computed(() => isSecret(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { ServiceAccountsDetails } from "../../../user-management/service-accounts";
|
||||
@ -19,7 +20,7 @@ const serviceAccountDetailItemInjectable = getInjectable({
|
||||
Component: ServiceAccountsDetails,
|
||||
enabled: computed(() => isServiceAccount(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { ServiceDetails } from "../../../network-services";
|
||||
@ -19,7 +20,7 @@ const serviceDetailItemInjectable = getInjectable({
|
||||
Component: ServiceDetails,
|
||||
enabled: computed(() => isService(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { StatefulSetDetails } from "../../../workloads-statefulsets";
|
||||
@ -19,7 +20,7 @@ const statefulSetDetailItemInjectable = getInjectable({
|
||||
Component: StatefulSetDetails,
|
||||
enabled: computed(() => isStatefulSet(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { computed } from "mobx";
|
||||
import { StorageClassDetails } from "../../../storage-classes";
|
||||
@ -19,7 +20,7 @@ const storageClassDetailItemInjectable = getInjectable({
|
||||
Component: StorageClassDetails,
|
||||
enabled: computed(() => isStorageClass(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { KubeObjectDetailItem } from "../kube-object-detail-item-injection-token";
|
||||
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
|
||||
import { VpaDetails } from "../../../config-vertical-pod-autoscalers";
|
||||
import { computed } from "mobx";
|
||||
@ -19,7 +20,7 @@ const verticalPodAutoscalerDetailItemInjectable = getInjectable({
|
||||
Component: VpaDetails,
|
||||
enabled: computed(() => isVerticalPodAutoscaler(kubeObject.value.get()?.object)),
|
||||
orderNumber: 10,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
},
|
||||
|
||||
injectionToken: kubeObjectDetailItemInjectionToken,
|
||||
|
||||
@ -28,7 +28,7 @@ export const getMetricsKubeObjectDetailItemInjectable = getInjectable({
|
||||
Component: (props) => <DetailsMetricsContainer metrics={metrics} {...props} />,
|
||||
enabled: di.inject(metricsDetailsComponentEnabledInjectable, metricResourceType),
|
||||
orderNumber: -1,
|
||||
};
|
||||
} as KubeObjectDetailItem;
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@ -53,7 +53,7 @@ class NonInjectedClusterRoleBindingDetails extends React.Component<KubeObjectDet
|
||||
const { selectedSubjects } = this;
|
||||
|
||||
openConfirmDialog({
|
||||
ok: () => clusterRoleBindingStore.removeSubjects(clusterRoleBinding, selectedSubjects),
|
||||
ok: () => void clusterRoleBindingStore.removeSubjects(clusterRoleBinding, selectedSubjects),
|
||||
labelOk: `Remove`,
|
||||
message: (
|
||||
<p>
|
||||
|
||||
@ -10,28 +10,16 @@ import React from "react";
|
||||
|
||||
import { DrawerTitle } from "../../drawer";
|
||||
import type { KubeObjectDetailsProps } from "../../kube-object-details";
|
||||
import { ClusterRole } from "@k8slens/kube-object";
|
||||
|
||||
@observer
|
||||
export class ClusterRoleDetails extends React.Component<KubeObjectDetailsProps> {
|
||||
render() {
|
||||
const { object: clusterRole } = this.props;
|
||||
|
||||
if (!clusterRole) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!(clusterRole instanceof ClusterRole)) {
|
||||
return null;
|
||||
}
|
||||
import type { ClusterRole } from "@k8slens/kube-object";
|
||||
|
||||
export const ClusterRoleDetails = observer((props: KubeObjectDetailsProps) => {
|
||||
const clusterRole = props.object as ClusterRole;
|
||||
const rules = clusterRole.getRules();
|
||||
|
||||
return (
|
||||
<div className="ClusterRoleDetails">
|
||||
<DrawerTitle>Rules</DrawerTitle>
|
||||
{rules.map(({ resourceNames, apiGroups, resources, verbs }, index) => {
|
||||
return (
|
||||
{rules.map(({ resourceNames, apiGroups, resources, verbs }, index) => (
|
||||
<div className="rule" key={index}>
|
||||
{resources && (
|
||||
<>
|
||||
@ -51,8 +39,7 @@ export class ClusterRoleDetails extends React.Component<KubeObjectDetailsProps>
|
||||
<div className="value">
|
||||
{apiGroups
|
||||
.map(apiGroup => apiGroup === "" ? `'${apiGroup}'` : apiGroup)
|
||||
.join(", ")
|
||||
}
|
||||
.join(", ")}
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
@ -63,9 +50,7 @@ export class ClusterRoleDetails extends React.Component<KubeObjectDetailsProps>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -46,7 +46,7 @@ class NonInjectedRoleBindingDetails extends React.Component<KubeObjectDetailsPro
|
||||
const { selectedSubjects } = this;
|
||||
|
||||
openConfirmDialog({
|
||||
ok: () => roleBindingStore.removeSubjects(roleBinding, selectedSubjects.toJSON()),
|
||||
ok: () => void roleBindingStore.removeSubjects(roleBinding, selectedSubjects.toJSON()),
|
||||
labelOk: `Remove`,
|
||||
message: (
|
||||
<p>
|
||||
|
||||
@ -8,30 +8,19 @@ import "./details.scss";
|
||||
import { observer } from "mobx-react";
|
||||
import React from "react";
|
||||
|
||||
import { Role } from "@k8slens/kube-object";
|
||||
import type { Role } from "@k8slens/kube-object";
|
||||
import { DrawerTitle } from "../../drawer";
|
||||
import type { KubeObjectDetailsProps } from "../../kube-object-details";
|
||||
|
||||
@observer
|
||||
export class RoleDetails extends React.Component<KubeObjectDetailsProps> {
|
||||
render() {
|
||||
const { object: role } = this.props;
|
||||
|
||||
if (!role) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!(role instanceof Role)) {
|
||||
return null;
|
||||
}
|
||||
export const RoleDetails = observer((props: KubeObjectDetailsProps) => {
|
||||
const role = props.object as Role;
|
||||
|
||||
const rules = role.getRules();
|
||||
|
||||
return (
|
||||
<div className="RoleDetails">
|
||||
<DrawerTitle>Rules</DrawerTitle>
|
||||
{rules.map(({ resourceNames, apiGroups, resources, verbs }, index) => {
|
||||
return (
|
||||
{rules.map(({ resourceNames, apiGroups, resources, verbs }, index) => (
|
||||
<div className="rule" key={index}>
|
||||
{resources && (
|
||||
<>
|
||||
@ -51,8 +40,7 @@ export class RoleDetails extends React.Component<KubeObjectDetailsProps> {
|
||||
<div className="value">
|
||||
{apiGroups
|
||||
.map(apiGroup => apiGroup === "" ? `'${apiGroup}'` : apiGroup)
|
||||
.join(", ")
|
||||
}
|
||||
.join(", ")}
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
@ -63,9 +51,8 @@ export class RoleDetails extends React.Component<KubeObjectDetailsProps> {
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user