mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Conditionally render node taints upon value existance
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
e10c13cdf4
commit
2a3802f0ba
@ -56,6 +56,21 @@ export interface INodeMetrics<T = IMetrics> {
|
||||
fsSize: T;
|
||||
}
|
||||
|
||||
export interface NodeTaint {
|
||||
key: string;
|
||||
value?: string;
|
||||
effect: string;
|
||||
timeAdded: string;
|
||||
}
|
||||
|
||||
export function formatNodeTaint(taint: NodeTaint): string {
|
||||
if (taint.value) {
|
||||
return `${taint.key}=${taint.value}:${taint.effect}`;
|
||||
}
|
||||
|
||||
return `${taint.key}:${taint.effect}`;
|
||||
}
|
||||
|
||||
export interface Node {
|
||||
spec: {
|
||||
podCIDR?: string;
|
||||
@ -65,12 +80,7 @@ export interface Node {
|
||||
* @deprecated see https://issues.k8s.io/61966
|
||||
*/
|
||||
externalID?: string;
|
||||
taints?: {
|
||||
key: string;
|
||||
value: string;
|
||||
effect: string;
|
||||
timeAdded: string;
|
||||
}[];
|
||||
taints?: NodeTaint[];
|
||||
unschedulable?: boolean;
|
||||
};
|
||||
status: {
|
||||
|
||||
@ -132,11 +132,7 @@ export class NodeDetails extends React.Component<Props> {
|
||||
/>
|
||||
{taints.length > 0 && (
|
||||
<DrawerItem name="Taints" labelsOnly>
|
||||
{
|
||||
taints.map(({ key, effect, value }) => (
|
||||
<Badge key={key} label={`${key}=${value}:${effect}`} />
|
||||
))
|
||||
}
|
||||
{taints.map(taint => <Badge key={taint.key} label={formatNodeTaint(taint)} />)}
|
||||
</DrawerItem>
|
||||
)}
|
||||
{conditions &&
|
||||
|
||||
@ -227,6 +227,7 @@ export class Nodes extends React.Component<Props> {
|
||||
]}
|
||||
renderTableContents={node => {
|
||||
const tooltipId = `node-taints-${node.getId()}`;
|
||||
const taints = node.getTaints();
|
||||
|
||||
return [
|
||||
<Badge flat key="name" label={node.getName()} tooltip={node.getName()} />,
|
||||
@ -235,9 +236,9 @@ export class Nodes extends React.Component<Props> {
|
||||
this.renderMemoryUsage(node),
|
||||
this.renderDiskUsage(node),
|
||||
<>
|
||||
<span id={tooltipId}>{node.getTaints().length}</span>
|
||||
<span id={tooltipId}>{taints.length}</span>
|
||||
<Tooltip targetId={tooltipId} tooltipOnParentHover={true} style={{ whiteSpace: "pre-line" }}>
|
||||
{node.getTaints().map(({ key, value, effect }) => `${key}=${value}:${effect}`).join("\n")}
|
||||
{taints.map(formatNodeTaint).join("\n")}
|
||||
</Tooltip>
|
||||
</>,
|
||||
node.getRoleLabels(),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user