mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 06:54:01 +00:00
Expose Start method, don't call in constructor
This commit is contained in:
parent
32794b18f0
commit
246442514c
@ -918,8 +918,9 @@ func (kl *Kubelet) Run(updates <-chan kubetypes.PodUpdate) {
|
||||
// handled by pod workers).
|
||||
go util.Until(kl.podKiller, 1*time.Second, util.NeverStop)
|
||||
|
||||
// Run the system oom watcher forever.
|
||||
// Start component sync loops.
|
||||
kl.statusManager.Start()
|
||||
kl.probeManager.Start()
|
||||
// Start the pod lifecycle event generator.
|
||||
kl.pleg.Start()
|
||||
kl.syncLoop(updates, kl)
|
||||
|
@ -29,6 +29,7 @@ var _ Manager = FakeManager{}
|
||||
func (_ FakeManager) AddPod(_ *api.Pod) {}
|
||||
func (_ FakeManager) RemovePod(_ *api.Pod) {}
|
||||
func (_ FakeManager) CleanupPods(_ []*api.Pod) {}
|
||||
func (_ FakeManager) Start() {}
|
||||
|
||||
func (_ FakeManager) UpdatePodStatus(_ types.UID, podStatus *api.PodStatus) {
|
||||
for i := range podStatus.ContainerStatuses {
|
||||
|
@ -52,6 +52,9 @@ type Manager interface {
|
||||
// UpdatePodStatus modifies the given PodStatus with the appropriate Ready state for each
|
||||
// container based on container running status, cached probe results and worker states.
|
||||
UpdatePodStatus(types.UID, *api.PodStatus)
|
||||
|
||||
// Start starts the Manager sync loops.
|
||||
Start()
|
||||
}
|
||||
|
||||
type manager struct {
|
||||
@ -79,18 +82,6 @@ func NewManager(
|
||||
runner kubecontainer.ContainerCommandRunner,
|
||||
refManager *kubecontainer.RefManager,
|
||||
recorder record.EventRecorder) Manager {
|
||||
m := newManager(statusManager, livenessManager, runner, refManager, recorder)
|
||||
m.start()
|
||||
return m
|
||||
}
|
||||
|
||||
// newManager is the internal version of NewManager for testing.
|
||||
func newManager(
|
||||
statusManager status.Manager,
|
||||
livenessManager results.Manager,
|
||||
runner kubecontainer.ContainerCommandRunner,
|
||||
refManager *kubecontainer.RefManager,
|
||||
recorder record.EventRecorder) *manager {
|
||||
|
||||
prober := newProber(runner, refManager, recorder)
|
||||
readinessManager := results.NewManager()
|
||||
@ -103,8 +94,8 @@ func newManager(
|
||||
}
|
||||
}
|
||||
|
||||
// start syncing probe status.
|
||||
func (m *manager) start() {
|
||||
// Start syncing probe status. This should only be called once.
|
||||
func (m *manager) Start() {
|
||||
// Start syncing readiness.
|
||||
go util.Forever(m.updateReadiness, 0)
|
||||
}
|
||||
|
@ -251,7 +251,7 @@ func TestUpdatePodStatus(t *testing.T) {
|
||||
func TestUpdateReadiness(t *testing.T) {
|
||||
testPod := getTestPod(readiness, api.Probe{})
|
||||
m := newTestManager()
|
||||
m.start()
|
||||
m.Start()
|
||||
m.statusManager.SetPodStatus(&testPod, getTestRunningStatus())
|
||||
|
||||
m.AddPod(&testPod)
|
||||
|
@ -95,13 +95,13 @@ func getTestPod(probeType probeType, probeSpec api.Probe) api.Pod {
|
||||
func newTestManager() *manager {
|
||||
refManager := kubecontainer.NewRefManager()
|
||||
refManager.SetRef(testContainerID, &api.ObjectReference{}) // Suppress prober warnings.
|
||||
m := newManager(
|
||||
m := NewManager(
|
||||
status.NewManager(&testclient.Fake{}, kubepod.NewBasicPodManager(nil)),
|
||||
results.NewManager(),
|
||||
nil, // runner
|
||||
refManager,
|
||||
&record.FakeRecorder{},
|
||||
)
|
||||
).(*manager)
|
||||
// Don't actually execute probes.
|
||||
m.prober.exec = fakeExecProber{probe.Success, nil}
|
||||
return m
|
||||
|
Loading…
Reference in New Issue
Block a user