mirror of
				https://github.com/edgelesssys/constellation.git
				synced 2025-10-31 03:39:04 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			811 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			811 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package controlplane
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"fmt"
 | |
| 
 | |
| 	corev1 "k8s.io/api/core/v1"
 | |
| 	"sigs.k8s.io/controller-runtime/pkg/client"
 | |
| 
 | |
| 	nodeutil "github.com/edgelesssys/constellation/operators/constellation-node-operator/internal/node"
 | |
| )
 | |
| 
 | |
| // ListControlPlaneIPs retrieves a list of VPC IPs for the control plane nodes from kubernetes.
 | |
| func ListControlPlaneIPs(k8sClient client.Client) ([]string, error) {
 | |
| 	var nodes corev1.NodeList
 | |
| 	if err := k8sClient.List(context.TODO(), &nodes); err != nil {
 | |
| 		return nil, fmt.Errorf("listing nodes: %w", err)
 | |
| 	}
 | |
| 	var ips []string
 | |
| 	for _, node := range nodes.Items {
 | |
| 		if !nodeutil.IsControlPlaneNode(&node) {
 | |
| 			continue
 | |
| 		}
 | |
| 		for _, addr := range node.Status.Addresses {
 | |
| 			if addr.Type == corev1.NodeInternalIP {
 | |
| 				ips = append(ips, addr.Address)
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	return ips, nil
 | |
| }
 | 
