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