portainer/app/react/kubernetes/cluster/HomeView/NodesDatatable/utils.ts

21 lines
680 B
TypeScript

import { Node } from 'kubernetes-types/core/v1';
export function getInternalNodeIpAddress(node?: Node) {
return node?.status?.addresses?.find(
(address) => address.type === 'InternalIP'
)?.address;
}
// most kube clusters set control-plane label, older clusters set master, microk8s doesn't have either but instead sets microk8s-controlplane
const masterLabels = [
'node-role.kubernetes.io/control-plane',
'node-role.kubernetes.io/master',
'node.kubernetes.io/microk8s-controlplane',
];
export function getRole(node: Node): 'Control plane' | 'Worker' {
return masterLabels.some((label) => node.metadata?.labels?.[label])
? 'Control plane'
: 'Worker';
}