mirror of https://github.com/portainer/portainer
				
				
				
			
		
			
				
	
	
		
			21 lines
		
	
	
		
			680 B
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			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';
 | |
| }
 |