github.com/telepresenceio/telepresence/v2@v2.20.0-pro.6.0.20240517030216-236ea954e789/pkg/client/userd/trafficmgr/agents.go (about) 1 package trafficmgr 2 3 import ( 4 "context" 5 6 k8sErrors "k8s.io/apimachinery/pkg/api/errors" 7 meta "k8s.io/apimachinery/pkg/apis/meta/v1" 8 "sigs.k8s.io/yaml" 9 10 "github.com/datawire/dlib/dlog" 11 "github.com/datawire/k8sapi/pkg/k8sapi" 12 "github.com/telepresenceio/telepresence/v2/pkg/agentconfig" 13 "github.com/telepresenceio/telepresence/v2/pkg/errcat" 14 ) 15 16 func (s *session) getCurrentSidecarsInNamespace(ctx context.Context, ns string) map[string]*agentconfig.Sidecar { 17 // Load configmap entry from the telepresence-agents configmap 18 cm, err := k8sapi.GetK8sInterface(ctx).CoreV1().ConfigMaps(ns).Get(ctx, agentconfig.ConfigMap, meta.GetOptions{}) 19 if err != nil { 20 if !k8sErrors.IsNotFound(err) { 21 dlog.Error(ctx, errcat.User.New(err)) 22 } 23 return nil 24 } 25 26 if cm.Data == nil { 27 dlog.Debugf(ctx, "unable to read data in configmap %q", agentconfig.ConfigMap) 28 } 29 30 sidecars := make(map[string]*agentconfig.Sidecar, len(cm.Data)) 31 for workload, sidecar := range cm.Data { 32 var cfg agentconfig.Sidecar 33 if err = yaml.Unmarshal([]byte(sidecar), &cfg); err != nil { 34 dlog.Errorf(ctx, "Unable to parse entry for %q in configmap %q: %v", workload, agentconfig.ConfigMap, err) 35 continue 36 } 37 sidecars[workload] = &cfg 38 } 39 40 return sidecars 41 }