mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 17:30:00 +00:00
Merge pull request #6843 from xiang90/cleanup
pkg/kubelet: clean up pod manager
This commit is contained in:
commit
26a70a52e6
@ -72,7 +72,7 @@ type basicPodManager struct {
|
|||||||
mirrorPodByFullName map[string]*api.Pod
|
mirrorPodByFullName map[string]*api.Pod
|
||||||
|
|
||||||
// A mirror pod client to create/delete mirror pods.
|
// A mirror pod client to create/delete mirror pods.
|
||||||
mirrorClient mirrorClient
|
mirrorClient
|
||||||
}
|
}
|
||||||
|
|
||||||
func newBasicPodManager(apiserverClient client.Interface) *basicPodManager {
|
func newBasicPodManager(apiserverClient client.Interface) *basicPodManager {
|
||||||
@ -179,24 +179,16 @@ func applyUpdates(changed []api.Pod, current []api.Pod) []api.Pod {
|
|||||||
return updated
|
return updated
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *basicPodManager) convertMapToPods(UIDMap map[types.UID]*api.Pod) []api.Pod {
|
|
||||||
pods := make([]api.Pod, 0, len(UIDMap))
|
|
||||||
for _, pod := range UIDMap {
|
|
||||||
pods = append(pods, *pod)
|
|
||||||
}
|
|
||||||
return pods
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetPods returns the regular pods bound to the kubelet and their spec.
|
// GetPods returns the regular pods bound to the kubelet and their spec.
|
||||||
func (self *basicPodManager) GetPods() []api.Pod {
|
func (self *basicPodManager) GetPods() []api.Pod {
|
||||||
self.lock.RLock()
|
self.lock.RLock()
|
||||||
defer self.lock.RUnlock()
|
defer self.lock.RUnlock()
|
||||||
return self.convertMapToPods(self.podByUID)
|
return podsMapToPods(self.podByUID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns all pods (including mirror pods).
|
// Returns all pods (including mirror pods).
|
||||||
func (self *basicPodManager) getAllPods() []api.Pod {
|
func (self *basicPodManager) getAllPods() []api.Pod {
|
||||||
return append(self.convertMapToPods(self.podByUID), self.convertMapToPods(self.mirrorPodByUID)...)
|
return append(podsMapToPods(self.podByUID), podsMapToPods(self.mirrorPodByUID)...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPodsAndMirrorMap returns the a copy of the regular pods and the mirror
|
// GetPodsAndMirrorMap returns the a copy of the regular pods and the mirror
|
||||||
@ -208,7 +200,7 @@ func (self *basicPodManager) GetPodsAndMirrorMap() ([]api.Pod, map[string]api.Po
|
|||||||
for key, pod := range self.mirrorPodByFullName {
|
for key, pod := range self.mirrorPodByFullName {
|
||||||
mirrorPods[key] = *pod
|
mirrorPods[key] = *pod
|
||||||
}
|
}
|
||||||
return self.convertMapToPods(self.podByUID), mirrorPods
|
return podsMapToPods(self.podByUID), mirrorPods
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPodByName provides the (non-mirror) pod that matches namespace and name,
|
// GetPodByName provides the (non-mirror) pod that matches namespace and name,
|
||||||
@ -223,10 +215,8 @@ func (self *basicPodManager) GetPodByName(namespace, name string) (*api.Pod, boo
|
|||||||
func (self *basicPodManager) GetPodByFullName(podFullName string) (*api.Pod, bool) {
|
func (self *basicPodManager) GetPodByFullName(podFullName string) (*api.Pod, bool) {
|
||||||
self.lock.RLock()
|
self.lock.RLock()
|
||||||
defer self.lock.RUnlock()
|
defer self.lock.RUnlock()
|
||||||
if pod, ok := self.podByFullName[podFullName]; ok {
|
pod, ok := self.podByFullName[podFullName]
|
||||||
return pod, true
|
return pod, ok
|
||||||
}
|
|
||||||
return nil, false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the UID belongs to a mirror pod, maps it to the UID of its static pod.
|
// If the UID belongs to a mirror pod, maps it to the UID of its static pod.
|
||||||
@ -271,16 +261,6 @@ func (self *basicPodManager) DeleteOrphanedMirrorPods() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creates a mirror pod for the given pod.
|
|
||||||
func (self *basicPodManager) CreateMirrorPod(pod api.Pod) error {
|
|
||||||
return self.mirrorClient.CreateMirrorPod(pod)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete a mirror pod by name.
|
|
||||||
func (self *basicPodManager) DeleteMirrorPod(podFullName string) error {
|
|
||||||
return self.mirrorClient.DeleteMirrorPod(podFullName)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns true if mirrorPod is a correct representation of pod; false otherwise.
|
// Returns true if mirrorPod is a correct representation of pod; false otherwise.
|
||||||
func (self *basicPodManager) IsMirrorPodOf(mirrorPod, pod *api.Pod) bool {
|
func (self *basicPodManager) IsMirrorPodOf(mirrorPod, pod *api.Pod) bool {
|
||||||
// Check name and namespace first.
|
// Check name and namespace first.
|
||||||
@ -289,3 +269,11 @@ func (self *basicPodManager) IsMirrorPodOf(mirrorPod, pod *api.Pod) bool {
|
|||||||
}
|
}
|
||||||
return api.Semantic.DeepEqual(&pod.Spec, &mirrorPod.Spec)
|
return api.Semantic.DeepEqual(&pod.Spec, &mirrorPod.Spec)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func podsMapToPods(UIDMap map[types.UID]*api.Pod) []api.Pod {
|
||||||
|
pods := make([]api.Pod, 0, len(UIDMap))
|
||||||
|
for _, pod := range UIDMap {
|
||||||
|
pods = append(pods, *pod)
|
||||||
|
}
|
||||||
|
return pods
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user