diff --git a/pkg/kubelet/dockertools/docker.go b/pkg/kubelet/dockertools/docker.go index 9ae1ed5e4c..1ce76071ed 100644 --- a/pkg/kubelet/dockertools/docker.go +++ b/pkg/kubelet/dockertools/docker.go @@ -292,9 +292,7 @@ func getDockerClient(dockerEndpoint string) (*dockerapi.Client, error) { // will be returned. The program exits if error occurs. func ConnectToDockerOrDie(dockerEndpoint string) DockerInterface { if dockerEndpoint == "fake://" { - return &FakeDockerClient{ - VersionInfo: docker.Env{"ApiVersion=1.18", "Version=1.6.0"}, - } + return NewFakeDockerClient() } client, err := getDockerClient(dockerEndpoint) if err != nil { diff --git a/pkg/kubelet/dockertools/docker_test.go b/pkg/kubelet/dockertools/docker_test.go index 4c4f3caafd..af1e069f8b 100644 --- a/pkg/kubelet/dockertools/docker_test.go +++ b/pkg/kubelet/dockertools/docker_test.go @@ -81,7 +81,7 @@ func findPodContainer(dockerContainers []*docker.APIContainers, podFullName stri } func TestGetContainerID(t *testing.T) { - fakeDocker := &FakeDockerClient{} + fakeDocker := NewFakeDockerClient() fakeDocker.SetFakeRunningContainers([]*docker.Container{ { ID: "foobar", @@ -156,7 +156,7 @@ func TestContainerNaming(t *testing.T) { } func TestVersion(t *testing.T) { - fakeDocker := &FakeDockerClient{VersionInfo: docker.Env{"Version=1.1.3", "ApiVersion=1.15"}} + fakeDocker := NewFakeDockerClientWithVersion("1.1.3", "1.15") manager := &DockerManager{client: fakeDocker} version, err := manager.Version() if err != nil { @@ -214,7 +214,7 @@ func TestPullWithNoSecrets(t *testing.T) { } for _, test := range tests { fakeKeyring := &credentialprovider.FakeKeyring{} - fakeClient := &FakeDockerClient{} + fakeClient := NewFakeDockerClient() dp := dockerPuller{ client: fakeClient, @@ -257,9 +257,9 @@ func TestPullWithJSONError(t *testing.T) { } for i, test := range tests { fakeKeyring := &credentialprovider.FakeKeyring{} - fakeClient := &FakeDockerClient{ - Errors: map[string]error{"pull": test.err}, - } + fakeClient := NewFakeDockerClient() + fakeClient.InjectError("pull", test.err) + puller := &dockerPuller{ client: fakeClient, keyring: fakeKeyring, @@ -327,7 +327,7 @@ func TestPullWithSecrets(t *testing.T) { builtInKeyRing := &credentialprovider.BasicDockerKeyring{} builtInKeyRing.Add(test.builtInDockerConfig) - fakeClient := &FakeDockerClient{} + fakeClient := NewFakeDockerClient() dp := dockerPuller{ client: fakeClient, @@ -353,9 +353,8 @@ func TestPullWithSecrets(t *testing.T) { func TestDockerKeyringLookupFails(t *testing.T) { fakeKeyring := &credentialprovider.FakeKeyring{} - fakeClient := &FakeDockerClient{ - Errors: map[string]error{"pull": fmt.Errorf("test error")}, - } + fakeClient := NewFakeDockerClient() + fakeClient.InjectError("pull", fmt.Errorf("test error")) dp := dockerPuller{ client: fakeClient, @@ -493,7 +492,7 @@ func (f *imageTrackingDockerClient) InspectImage(name string) (image *docker.Ima } func TestIsImagePresent(t *testing.T) { - cl := &imageTrackingDockerClient{&FakeDockerClient{}, ""} + cl := &imageTrackingDockerClient{NewFakeDockerClient(), ""} puller := &dockerPuller{ client: cl, } @@ -671,7 +670,7 @@ func TestFindContainersByPod(t *testing.T) { nil, }, } - fakeClient := &FakeDockerClient{} + fakeClient := NewFakeDockerClient() np, _ := network.InitNetworkPlugin([]network.NetworkPlugin{}, "", nettest.NewFakeHost(nil)) // image back-off is set to nil, this test should not pull images containerManager := NewFakeDockerManager(fakeClient, &record.FakeRecorder{}, nil, nil, &cadvisorapi.MachineInfo{}, options.GetDefaultPodInfraContainerImage(), 0, 0, "", containertest.FakeOS{}, np, nil, nil, nil) diff --git a/pkg/kubelet/dockertools/fake_docker_client.go b/pkg/kubelet/dockertools/fake_docker_client.go index 742cc6368b..81037152e2 100644 --- a/pkg/kubelet/dockertools/fake_docker_client.go +++ b/pkg/kubelet/dockertools/fake_docker_client.go @@ -55,8 +55,12 @@ type FakeDockerClient struct { EnableSleep bool } +// We don't check docker version now, just set the docker version of fake docker client to 1.8.1. +// Notice that if someday we also have minimum docker version requirement, this should also be updated. +const fakeDockerVersion = "1.8.1" + func NewFakeDockerClient() *FakeDockerClient { - return NewFakeDockerClientWithVersion("1.8.1", "1.20") + return NewFakeDockerClientWithVersion(fakeDockerVersion, minimumDockerAPIVersion) } func NewFakeDockerClientWithVersion(version, apiVersion string) *FakeDockerClient {