mirror of
https://github.com/kubernetes/kubernetes.git
synced 2026-05-28 04:04:39 -04:00
kubelet: pass upper-level context through killPodNow
Switch killPodNow to take context.Context and pass the existing upper-level context into podWorkers.UpdatePod, instead of creating a TODO-based context from logger.
This commit is contained in:
parent
8109698171
commit
5fdef09048
4 changed files with 9 additions and 10 deletions
|
|
@ -1020,7 +1020,7 @@ func NewMainKubelet(ctx context.Context,
|
|||
|
||||
// setup eviction manager
|
||||
evictionManager, evictionAdmitHandler := eviction.NewManager(klet.resourceAnalyzer, evictionConfig,
|
||||
killPodNow(logger, klet.podWorkers, kubeDeps.Recorder), klet.imageManager, klet.containerGC, kubeDeps.Recorder, nodeRef, klet.clock, kubeCfg.LocalStorageCapacityIsolation)
|
||||
killPodNow(ctx, klet.podWorkers, kubeDeps.Recorder), klet.imageManager, klet.containerGC, kubeDeps.Recorder, nodeRef, klet.clock, kubeCfg.LocalStorageCapacityIsolation)
|
||||
|
||||
klet.evictionManager = evictionManager
|
||||
|
||||
|
|
@ -1061,7 +1061,7 @@ func NewMainKubelet(ctx context.Context,
|
|||
|
||||
handlers = append(handlers, klet.containerManager.GetAllocateResourcesPodAdmitHandler())
|
||||
|
||||
criticalPodAdmissionHandler := preemption.NewCriticalPodAdmissionHandler(klet.getAllocatedPods, killPodNow(logger, klet.podWorkers, kubeDeps.Recorder), kubeDeps.Recorder)
|
||||
criticalPodAdmissionHandler := preemption.NewCriticalPodAdmissionHandler(klet.getAllocatedPods, killPodNow(ctx, klet.podWorkers, kubeDeps.Recorder), kubeDeps.Recorder)
|
||||
handlers = append(handlers, lifecycle.NewPredicateAdmitHandler(klet.GetCachedNode, criticalPodAdmissionHandler, klet.containerManager.UpdatePluginResources))
|
||||
// apply functional Option's
|
||||
for _, opt := range kubeDeps.Options {
|
||||
|
|
@ -1100,7 +1100,7 @@ func NewMainKubelet(ctx context.Context,
|
|||
Recorder: kubeDeps.Recorder,
|
||||
NodeRef: nodeRef,
|
||||
GetPodsFunc: klet.GetActivePods,
|
||||
KillPodFunc: killPodNow(logger, klet.podWorkers, kubeDeps.Recorder),
|
||||
KillPodFunc: killPodNow(ctx, klet.podWorkers, kubeDeps.Recorder),
|
||||
SyncNodeStatusFunc: klet.syncNodeStatus,
|
||||
ShutdownGracePeriodRequested: kubeCfg.ShutdownGracePeriod.Duration,
|
||||
ShutdownGracePeriodCriticalPods: kubeCfg.ShutdownGracePeriodCriticalPods.Duration,
|
||||
|
|
|
|||
|
|
@ -394,7 +394,7 @@ func newTestKubeletWithImageList(
|
|||
}
|
||||
// setup eviction manager
|
||||
evictionManager, evictionAdmitHandler := eviction.NewManager(kubelet.resourceAnalyzer, eviction.Config{},
|
||||
killPodNow(logger, kubelet.podWorkers, fakeRecorder), kubelet.imageManager, kubelet.containerGC, fakeRecorder, nodeRef, kubelet.clock, kubelet.supportLocalStorageCapacityIsolation())
|
||||
killPodNow(tCtx, kubelet.podWorkers, fakeRecorder), kubelet.imageManager, kubelet.containerGC, fakeRecorder, nodeRef, kubelet.clock, kubelet.supportLocalStorageCapacityIsolation())
|
||||
|
||||
kubelet.evictionManager = evictionManager
|
||||
handlers := []lifecycle.PodAdmitHandler{}
|
||||
|
|
@ -406,7 +406,7 @@ func newTestKubeletWithImageList(
|
|||
Recorder: fakeRecorder,
|
||||
NodeRef: nodeRef,
|
||||
GetPodsFunc: kubelet.podManager.GetPods,
|
||||
KillPodFunc: killPodNow(logger, kubelet.podWorkers, fakeRecorder),
|
||||
KillPodFunc: killPodNow(tCtx, kubelet.podWorkers, fakeRecorder),
|
||||
SyncNodeStatusFunc: func(context.Context) {},
|
||||
ShutdownGracePeriodRequested: 0,
|
||||
ShutdownGracePeriodCriticalPods: 0,
|
||||
|
|
|
|||
|
|
@ -1673,7 +1673,7 @@ func (p *podWorkers) removeTerminatedWorker(logger klog.Logger, uid types.UID, s
|
|||
|
||||
// killPodNow returns a KillPodFunc that can be used to kill a pod.
|
||||
// It is intended to be injected into other modules that need to kill a pod.
|
||||
func killPodNow(logger klog.Logger, podWorkers PodWorkers, recorder record.EventRecorder) eviction.KillPodFunc {
|
||||
func killPodNow(ctx context.Context, podWorkers PodWorkers, recorder record.EventRecorder) eviction.KillPodFunc {
|
||||
return func(pod *v1.Pod, isEvicted bool, gracePeriodOverride *int64, statusFn func(*v1.PodStatus)) error {
|
||||
// determine the grace period to use when killing the pod
|
||||
gracePeriod := int64(0)
|
||||
|
|
@ -1695,8 +1695,7 @@ func killPodNow(logger klog.Logger, podWorkers PodWorkers, recorder record.Event
|
|||
// open a channel we block against until we get a result
|
||||
ch := make(chan struct{}, 1)
|
||||
podWorkers.UpdatePod(
|
||||
// KillPodFunc interface does not provide a context parameter.
|
||||
klog.NewContext(context.TODO(), logger),
|
||||
ctx,
|
||||
UpdatePodOptions{
|
||||
Pod: pod,
|
||||
UpdateType: kubetypes.SyncPodKill,
|
||||
|
|
|
|||
|
|
@ -2227,9 +2227,9 @@ func TestFakePodWorkers(t *testing.T) {
|
|||
// TestKillPodNowFunc tests the blocking kill pod function works with pod workers as expected.
|
||||
func TestKillPodNowFunc(t *testing.T) {
|
||||
fakeRecorder := &record.FakeRecorder{}
|
||||
logger, _ := ktesting.NewTestContext(t)
|
||||
logger, tCtx := ktesting.NewTestContext(t)
|
||||
podWorkers, _, processed := createPodWorkers(logger)
|
||||
killPodFunc := killPodNow(logger, podWorkers, fakeRecorder)
|
||||
killPodFunc := killPodNow(tCtx, podWorkers, fakeRecorder)
|
||||
pod := newNamedPod("test", "ns", "test", false)
|
||||
gracePeriodOverride := int64(0)
|
||||
err := killPodFunc(pod, false, &gracePeriodOverride, func(status *v1.PodStatus) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue