mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
import "./pod-details-tolerations.scss";
|
|
import * as React from "react";
|
|
import { Trans } from "@lingui/macro";
|
|
import { Pod, Deployment, DaemonSet, StatefulSet, ReplicaSet, Job } from "../../api/endpoints";
|
|
import { DrawerParamToggler, DrawerItem } from "../drawer";
|
|
|
|
interface Props {
|
|
workload: Pod | Deployment | DaemonSet | StatefulSet | ReplicaSet | Job;
|
|
}
|
|
|
|
export class PodDetailsTolerations extends React.Component<Props> {
|
|
render() {
|
|
const { workload } = this.props
|
|
const tolerations = workload.getTolerations()
|
|
if (!tolerations.length) return null
|
|
return (
|
|
<DrawerItem name={<Trans>Tolerations</Trans>} className="PodDetailsTolerations">
|
|
<DrawerParamToggler label={tolerations.length}>
|
|
{
|
|
tolerations.map((toleration, index) => {
|
|
const { key, operator, effect, tolerationSeconds } = toleration
|
|
return (
|
|
<div className="toleration" key={index}>
|
|
<DrawerItem name={<Trans>Key</Trans>}>{key}</DrawerItem>
|
|
{operator && <DrawerItem name={<Trans>Operator</Trans>}>{operator}</DrawerItem>}
|
|
{effect && <DrawerItem name={<Trans>Effect</Trans>}>{effect}</DrawerItem>}
|
|
{!!tolerationSeconds && <DrawerItem name={<Trans>Effect</Trans>}>{tolerationSeconds}</DrawerItem>}
|
|
</div>
|
|
)
|
|
})
|
|
}
|
|
</DrawerParamToggler>
|
|
</DrawerItem>
|
|
)
|
|
}
|
|
} |