mirror of https://github.com/k3s-io/k3s
Merge pull request #7254 from yifan-gu/readiness
kubelet/dockertools: Add readinessManage/containerRefManager to dockerManager.pull/6/head
commit
6207c518b3
|
@ -392,7 +392,7 @@ func TestIsImagePresent(t *testing.T) {
|
|||
func TestGetRunningContainers(t *testing.T) {
|
||||
fakeDocker := &FakeDockerClient{Errors: make(map[string]error)}
|
||||
fakeRecorder := &record.FakeRecorder{}
|
||||
containerManager := NewDockerManager(fakeDocker, fakeRecorder, PodInfraContainerImage, 0, 0)
|
||||
containerManager := NewDockerManager(fakeDocker, fakeRecorder, nil, nil, PodInfraContainerImage, 0, 0)
|
||||
tests := []struct {
|
||||
containers map[string]*docker.Container
|
||||
inputIDs []string
|
||||
|
@ -657,7 +657,7 @@ func TestFindContainersByPod(t *testing.T) {
|
|||
},
|
||||
}
|
||||
fakeClient := &FakeDockerClient{}
|
||||
containerManager := NewDockerManager(fakeClient, &record.FakeRecorder{}, PodInfraContainerImage, 0, 0)
|
||||
containerManager := NewDockerManager(fakeClient, &record.FakeRecorder{}, nil, nil, PodInfraContainerImage, 0, 0)
|
||||
for i, test := range tests {
|
||||
fakeClient.ContainerList = test.containerList
|
||||
fakeClient.ExitedContainerList = test.exitedContainerList
|
||||
|
|
|
@ -49,8 +49,11 @@ const (
|
|||
// TODO: Eventually DockerManager should implement kubecontainer.Runtime
|
||||
// interface, and it should also add a cache to replace dockerCache.
|
||||
type DockerManager struct {
|
||||
client DockerInterface
|
||||
recorder record.EventRecorder
|
||||
client DockerInterface
|
||||
recorder record.EventRecorder
|
||||
readinessManager *kubecontainer.ReadinessManager
|
||||
containerRefManager *kubecontainer.RefManager
|
||||
|
||||
// TODO(yifan): PodInfraContainerImage can be unexported once
|
||||
// we move createPodInfraContainer into dockertools.
|
||||
PodInfraContainerImage string
|
||||
|
@ -73,11 +76,20 @@ type DockerManager struct {
|
|||
// Ensures DockerManager implements ConatinerRunner.
|
||||
var _ kubecontainer.ContainerRunner = new(DockerManager)
|
||||
|
||||
func NewDockerManager(client DockerInterface, recorder record.EventRecorder, podInfraContainerImage string, qps float32, burst int) *DockerManager {
|
||||
func NewDockerManager(
|
||||
client DockerInterface,
|
||||
recorder record.EventRecorder,
|
||||
readinessManager *kubecontainer.ReadinessManager,
|
||||
containerRefManager *kubecontainer.RefManager,
|
||||
podInfraContainerImage string,
|
||||
qps float32,
|
||||
burst int) *DockerManager {
|
||||
reasonCache := stringCache{cache: lru.New(maxReasonCacheEntries)}
|
||||
return &DockerManager{
|
||||
client: client,
|
||||
recorder: recorder,
|
||||
readinessManager: readinessManager,
|
||||
containerRefManager: containerRefManager,
|
||||
PodInfraContainerImage: podInfraContainerImage,
|
||||
reasonCache: reasonCache,
|
||||
Puller: newDockerPuller(client, qps, burst),
|
||||
|
|
|
@ -264,7 +264,17 @@ func NewMainKubelet(
|
|||
return nil, fmt.Errorf("failed to initialize image manager: %v", err)
|
||||
}
|
||||
statusManager := newStatusManager(kubeClient)
|
||||
containerManager := dockertools.NewDockerManager(dockerClient, recorder, podInfraContainerImage, pullQPS, pullBurst)
|
||||
readinessManager := kubecontainer.NewReadinessManager()
|
||||
containerRefManager := kubecontainer.NewRefManager()
|
||||
containerManager := dockertools.NewDockerManager(
|
||||
dockerClient,
|
||||
recorder,
|
||||
readinessManager,
|
||||
containerRefManager,
|
||||
podInfraContainerImage,
|
||||
pullQPS,
|
||||
pullBurst)
|
||||
|
||||
volumeManager := newVolumeManager()
|
||||
|
||||
klet := &Kubelet{
|
||||
|
@ -273,8 +283,8 @@ func NewMainKubelet(
|
|||
kubeClient: kubeClient,
|
||||
rootDirectory: rootDirectory,
|
||||
resyncInterval: resyncInterval,
|
||||
containerRefManager: kubecontainer.NewRefManager(),
|
||||
readinessManager: kubecontainer.NewReadinessManager(),
|
||||
containerRefManager: containerRefManager,
|
||||
readinessManager: readinessManager,
|
||||
runner: containerManager,
|
||||
httpClient: &http.Client{},
|
||||
sourcesReady: sourcesReady,
|
||||
|
|
|
@ -103,7 +103,7 @@ func newTestKubelet(t *testing.T) *TestKubelet {
|
|||
podManager, fakeMirrorClient := newFakePodManager()
|
||||
kubelet.podManager = podManager
|
||||
kubelet.containerRefManager = kubecontainer.NewRefManager()
|
||||
kubelet.containerManager = dockertools.NewDockerManager(fakeDocker, fakeRecorder, dockertools.PodInfraContainerImage, 0, 0)
|
||||
kubelet.containerManager = dockertools.NewDockerManager(fakeDocker, fakeRecorder, kubelet.readinessManager, kubelet.containerRefManager, dockertools.PodInfraContainerImage, 0, 0)
|
||||
kubelet.runtimeCache = kubecontainer.NewFakeRuntimeCache(kubelet.containerManager)
|
||||
kubelet.podWorkers = newPodWorkers(
|
||||
kubelet.runtimeCache,
|
||||
|
|
|
@ -40,7 +40,8 @@ func newPod(uid, name string) *api.Pod {
|
|||
func createPodWorkers() (*podWorkers, map[types.UID][]string) {
|
||||
fakeDocker := &dockertools.FakeDockerClient{}
|
||||
fakeRecorder := &record.FakeRecorder{}
|
||||
fakeRuntimeCache := kubecontainer.NewFakeRuntimeCache(dockertools.NewDockerManager(fakeDocker, fakeRecorder, dockertools.PodInfraContainerImage, 0, 0))
|
||||
dockerManager := dockertools.NewDockerManager(fakeDocker, fakeRecorder, nil, nil, dockertools.PodInfraContainerImage, 0, 0)
|
||||
fakeRuntimeCache := kubecontainer.NewFakeRuntimeCache(dockerManager)
|
||||
|
||||
lock := sync.Mutex{}
|
||||
processed := make(map[types.UID][]string)
|
||||
|
|
|
@ -147,7 +147,14 @@ func TestRunOnce(t *testing.T) {
|
|||
t: t,
|
||||
}
|
||||
|
||||
kb.containerManager = dockertools.NewDockerManager(kb.dockerClient, kb.recorder, dockertools.PodInfraContainerImage, 0, 0)
|
||||
kb.containerManager = dockertools.NewDockerManager(
|
||||
kb.dockerClient,
|
||||
kb.recorder,
|
||||
kb.readinessManager,
|
||||
kb.containerRefManager,
|
||||
dockertools.PodInfraContainerImage,
|
||||
0,
|
||||
0)
|
||||
kb.containerManager.Puller = &dockertools.FakeDockerPuller{}
|
||||
|
||||
pods := []*api.Pod{
|
||||
|
|
Loading…
Reference in New Issue