package config import ( "context" "fmt" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" "edge-infra.dev/pkg/edge/bsl" "edge-infra.dev/pkg/edge/constants" ) type BslInfo struct { organizationID string organizationName string timeZone string siteID string } func getBslInfo() (*BslInfo, 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(constants.KubePublicNamespace) bslConfigmap, err := cm.Get(context.Background(), bsl.BSLInfoConfigMapName, metav1.GetOptions{}) if err != nil { return nil, fmt.Errorf("failed to get bsl-info configmap. %v", err.Error()) } bslInfo := &BslInfo{ organizationID: bslConfigmap.Data[bsl.BSLOrganizationID], organizationName: bslConfigmap.Data[bsl.BSLSiteOrganizationName], siteID: bslConfigmap.Data[bsl.BSLSiteID], timeZone: bslConfigmap.Data[bsl.BSLSiteTimeZone], } return bslInfo, nil }