...
1 package config
2
3 import (
4 "context"
5 "fmt"
6
7 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
8 "k8s.io/client-go/kubernetes"
9 "k8s.io/client-go/rest"
10 )
11
12 type EdgeInfo struct {
13 ClusterEdgeID string
14 }
15
16 func getEdgeInfo() (*EdgeInfo, error) {
17 config, err := rest.InClusterConfig()
18 if err != nil {
19 return nil, fmt.Errorf("failed to create in-cluster config. %v", err.Error())
20 }
21
22 clientset, err := kubernetes.NewForConfig(config)
23 if err != nil {
24 return nil, fmt.Errorf("failed to create clientset. %v", err.Error())
25 }
26
27 cm := clientset.CoreV1().ConfigMaps("kube-public")
28 edgeConfigmap, err := cm.Get(context.Background(), "edge-info", metav1.GetOptions{})
29 if err != nil {
30 return nil, fmt.Errorf("failed to get edge-info configmap. %v", err.Error())
31 }
32
33 edgeInfo := &EdgeInfo{
34 ClusterEdgeID: edgeConfigmap.Data["cluster.edge.id"],
35 }
36
37 return edgeInfo, nil
38 }
39
View as plain text