diff --git a/cmd/kubemark/BUILD b/cmd/kubemark/BUILD index 82426b25573..6114b765259 100644 --- a/cmd/kubemark/BUILD +++ b/cmd/kubemark/BUILD @@ -19,8 +19,6 @@ go_library( "//pkg/api/legacyscheme:go_default_library", "//pkg/kubelet/cadvisor/testing:go_default_library", "//pkg/kubelet/cm:go_default_library", - "//pkg/kubelet/dockershim:go_default_library", - "//pkg/kubelet/dockershim/libdocker:go_default_library", "//pkg/kubemark:go_default_library", "//pkg/master/ports:go_default_library", "//pkg/util/iptables/testing:go_default_library", diff --git a/cmd/kubemark/hollow-node.go b/cmd/kubemark/hollow-node.go index 567a930839a..974aa944c9d 100644 --- a/cmd/kubemark/hollow-node.go +++ b/cmd/kubemark/hollow-node.go @@ -43,8 +43,6 @@ import ( "k8s.io/kubernetes/pkg/api/legacyscheme" cadvisortest "k8s.io/kubernetes/pkg/kubelet/cadvisor/testing" "k8s.io/kubernetes/pkg/kubelet/cm" - "k8s.io/kubernetes/pkg/kubelet/dockershim" - "k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker" "k8s.io/kubernetes/pkg/kubemark" "k8s.io/kubernetes/pkg/master/ports" fakeiptables "k8s.io/kubernetes/pkg/util/iptables/testing" @@ -195,18 +193,11 @@ func run(config *hollowNodeConfig) { } containerManager := cm.NewStubContainerManager() - fakeDockerClientConfig := &dockershim.ClientConfig{ - DockerEndpoint: libdocker.FakeDockerEndpoint, - EnableSleep: true, - WithTraceDisabled: true, - } - hollowKubelet := kubemark.NewHollowKubelet( f, c, client, heartbeatClient, cadvisorInterface, - fakeDockerClientConfig, containerManager, ) hollowKubelet.Run() diff --git a/pkg/kubelet/BUILD b/pkg/kubelet/BUILD index f942cf4c2aa..b261b5d36da 100644 --- a/pkg/kubelet/BUILD +++ b/pkg/kubelet/BUILD @@ -77,6 +77,7 @@ go_library( "//pkg/kubelet/prober:go_default_library", "//pkg/kubelet/prober/results:go_default_library", "//pkg/kubelet/remote:go_default_library", + "//pkg/kubelet/remote/fake:go_default_library", "//pkg/kubelet/runtimeclass:go_default_library", "//pkg/kubelet/secret:go_default_library", "//pkg/kubelet/server:go_default_library", diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index f77ad998876..105b3ccb4a1 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -93,6 +93,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet/prober" proberesults "k8s.io/kubernetes/pkg/kubelet/prober/results" "k8s.io/kubernetes/pkg/kubelet/remote" + fakeremote "k8s.io/kubernetes/pkg/kubelet/remote/fake" "k8s.io/kubernetes/pkg/kubelet/runtimeclass" "k8s.io/kubernetes/pkg/kubelet/secret" "k8s.io/kubernetes/pkg/kubelet/server" @@ -318,6 +319,11 @@ func makePodSourceConfig(kubeCfg *kubeletconfiginternal.KubeletConfiguration, ku } func getRuntimeAndImageServices(remoteRuntimeEndpoint string, remoteImageEndpoint string, runtimeRequestTimeout metav1.Duration) (internalapi.RuntimeService, internalapi.ImageManagerService, error) { + if remoteRuntimeEndpoint == fakeremote.FakeRemoteRuntimeEndpoint && remoteImageEndpoint == fakeremote.FakeRemoteImageEndpoint { + fakeRuntime := fakeremote.NewFakeRemoteRuntime() + return fakeRuntime.RuntimeService, fakeRuntime.ImageService, nil + } + rs, err := remote.NewRemoteRuntimeService(remoteRuntimeEndpoint, runtimeRequestTimeout.Duration) if err != nil { return nil, nil, err diff --git a/pkg/kubelet/remote/fake/fake_runtime.go b/pkg/kubelet/remote/fake/fake_runtime.go index af77239ed11..ea6a80b6141 100644 --- a/pkg/kubelet/remote/fake/fake_runtime.go +++ b/pkg/kubelet/remote/fake/fake_runtime.go @@ -28,6 +28,14 @@ import ( utilexec "k8s.io/utils/exec" ) +const ( + // FakeRemoteRuntimeEndpoint used by kubemark hollow-node + FakeRemoteRuntimeEndpoint = "fake://runtime" + + // FakeRemoteImageEndpoint used by kubemark hollow-node + FakeRemoteImageEndpoint = "fake://image" +) + // RemoteRuntime represents a fake remote container runtime. type RemoteRuntime struct { server *grpc.Server diff --git a/pkg/kubemark/BUILD b/pkg/kubemark/BUILD index 8db94cf6a0e..201a779b054 100644 --- a/pkg/kubemark/BUILD +++ b/pkg/kubemark/BUILD @@ -22,7 +22,7 @@ go_library( "//pkg/kubelet/cadvisor:go_default_library", "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/container/testing:go_default_library", - "//pkg/kubelet/dockershim:go_default_library", + "//pkg/kubelet/remote/fake:go_default_library", "//pkg/kubelet/types:go_default_library", "//pkg/proxy:go_default_library", "//pkg/proxy/config:go_default_library", diff --git a/pkg/kubemark/hollow_kubelet.go b/pkg/kubemark/hollow_kubelet.go index 83152805560..1be0fff4016 100644 --- a/pkg/kubemark/hollow_kubelet.go +++ b/pkg/kubemark/hollow_kubelet.go @@ -32,7 +32,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet/cadvisor" "k8s.io/kubernetes/pkg/kubelet/cm" containertest "k8s.io/kubernetes/pkg/kubelet/container/testing" - "k8s.io/kubernetes/pkg/kubelet/dockershim" + fakeremote "k8s.io/kubernetes/pkg/kubelet/remote/fake" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" "k8s.io/kubernetes/pkg/util/oom" "k8s.io/kubernetes/pkg/volume" @@ -98,22 +98,20 @@ func NewHollowKubelet( client *clientset.Clientset, heartbeatClient *clientset.Clientset, cadvisorInterface cadvisor.Interface, - dockerClientConfig *dockershim.ClientConfig, containerManager cm.ContainerManager) *HollowKubelet { d := &kubelet.Dependencies{ - KubeClient: client, - HeartbeatClient: heartbeatClient, - DockerClientConfig: dockerClientConfig, - CAdvisorInterface: cadvisorInterface, - Cloud: nil, - OSInterface: &containertest.FakeOS{}, - ContainerManager: containerManager, - VolumePlugins: volumePlugins(), - TLSOptions: nil, - OOMAdjuster: oom.NewFakeOOMAdjuster(), - Mounter: &mount.FakeMounter{}, - Subpather: &subpath.FakeSubpath{}, - HostUtil: hostutil.NewFakeHostUtil(nil), + KubeClient: client, + HeartbeatClient: heartbeatClient, + CAdvisorInterface: cadvisorInterface, + Cloud: nil, + OSInterface: &containertest.FakeOS{}, + ContainerManager: containerManager, + VolumePlugins: volumePlugins(), + TLSOptions: nil, + OOMAdjuster: oom.NewFakeOOMAdjuster(), + Mounter: &mount.FakeMounter{}, + Subpather: &subpath.FakeSubpath{}, + HostUtil: hostutil.NewFakeHostUtil(nil), } return &HollowKubelet{ @@ -160,6 +158,9 @@ func GetHollowKubeletConfig(opt *HollowKubletOptions) (*options.KubeletFlags, *k f.MaxContainerCount = 100 f.MaxPerPodContainerCount = 2 f.NodeLabels = opt.NodeLabels + f.ContainerRuntimeOptions.ContainerRuntime = kubetypes.RemoteContainerRuntime + f.RemoteRuntimeEndpoint = fakeremote.FakeRemoteRuntimeEndpoint + f.RemoteImageEndpoint = fakeremote.FakeRemoteImageEndpoint f.RegisterNode = true f.RegisterSchedulable = true f.ProviderID = fmt.Sprintf("kubemark://%v", opt.NodeName)