diff --git a/server/internal/data/pod.go b/server/internal/data/pod.go index 1d19db8..20d95a8 100644 --- a/server/internal/data/pod.go +++ b/server/internal/data/pod.go @@ -3,6 +3,7 @@ package data import ( "context" "fmt" + "k8s.io/client-go/tools/cache" "sync" "time" "vgpu/internal/biz" @@ -21,17 +22,15 @@ type podRepo struct { data *Data podLister listerscorev1.PodLister pods map[k8stypes.UID]*biz.PodInfo - allPods []*biz.PodInfo mutex sync.RWMutex log *log.Helper } func NewPodRepo(data *Data, logger log.Logger) biz.PodRepo { repo := &podRepo{ - data: data, - pods: make(map[k8stypes.UID]*biz.PodInfo), - allPods: []*biz.PodInfo{}, - log: log.NewHelper(logger), + data: data, + pods: make(map[k8stypes.UID]*biz.PodInfo), + log: log.NewHelper(logger), } repo.init() return repo @@ -40,12 +39,12 @@ func NewPodRepo(data *Data, logger log.Logger) biz.PodRepo { func (r *podRepo) init() { informerFactory := informers.NewSharedInformerFactoryWithOptions(r.data.k8sCl, time.Hour*1) r.podLister = informerFactory.Core().V1().Pods().Lister() - //informer := informerFactory.Core().V1().Pods().Informer() - //informer.AddEventHandler(cache.ResourceEventHandlerFuncs{ - // AddFunc: r.onAddPod, - // UpdateFunc: r.onUpdatePod, - // DeleteFunc: r.onDeletedPod, - //}) + informer := informerFactory.Core().V1().Pods().Informer() + informer.AddEventHandler(cache.ResourceEventHandlerFuncs{ + AddFunc: r.onAddPod, + UpdateFunc: r.onUpdatePod, + DeleteFunc: r.onDeletedPod, + }) stopCh := make(chan struct{}) informerFactory.Start(stopCh) informerFactory.WaitForCacheSync(stopCh) @@ -58,8 +57,7 @@ func (r *podRepo) onAddPod(obj interface{}) { return } nodeID, ok := pod.Annotations[util.AssignedNodeAnnotations] - tpiID := pod.Labels["tpi-id"] - if !ok && tpiID == "" { + if !ok { return } if biz.IsPodInTerminatedState(pod) { @@ -83,8 +81,7 @@ func (r *podRepo) onDeletedPod(obj interface{}) { return } _, ok = pod.Annotations[util.AssignedNodeAnnotations] - tpiID := pod.Labels["tpi-id"] - if !ok && tpiID == "" { + if !ok { return } r.delPod(pod) @@ -97,7 +94,6 @@ func (r *podRepo) addPod(pod *corev1.Pod, nodeID string, devices biz.PodDevices) pi := &biz.PodInfo{Name: pod.Name, UID: pod.UID, Namespace: pod.Namespace, NodeID: nodeID, Devices: devices, Ctrs: ctrs, Labels: pod.Labels} r.pods[pod.UID] = pi - r.allPods = append(r.allPods, pi) r.log.Infof("Pod added: Name: %s, UID: %s, Namespace: %s, NodeID: %s", pod.Name, pod.UID, pod.Namespace, nodeID) } @@ -122,10 +118,10 @@ func (r *podRepo) fetchContainerInfo(pod *corev1.Pod) []*biz.Container { copier.Copy(&bizContainerDevices, pds) } if len(bizContainerDevices) < 1 { - for range pod.Spec.Containers { - bizContainerDevices = append(bizContainerDevices, biz.ContainerDevices{}) - } - //return containers + //for range pod.Spec.Containers { + // bizContainerDevices = append(bizContainerDevices, biz.ContainerDevices{}) + //} + return containers } ctrIdMaps := map[string]string{}