package config import ( "context" "fmt" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" ) type EdgeInfo struct { ClusterEdgeID string } func getEdgeInfo() (*EdgeInfo, error) { config, err := rest.InClusterConfig() if err != nil { return nil, fmt.Errorf("failed to create in-cluster config. %v", err.Error()) } clientset, err := kubernetes.NewForConfig(config) if err != nil { return nil, fmt.Errorf("failed to create clientset. %v", err.Error()) } cm := clientset.CoreV1().ConfigMaps("kube-public") edgeConfigmap, err := cm.Get(context.Background(), "edge-info", metav1.GetOptions{}) if err != nil { return nil, fmt.Errorf("failed to get edge-info configmap. %v", err.Error()) } edgeInfo := &EdgeInfo{ ClusterEdgeID: edgeConfigmap.Data["cluster.edge.id"], } return edgeInfo, nil }