mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 23:37:01 +00:00
cleanup pod_workers_test.go to use general runtime interface
This commit is contained in:
parent
1a59796402
commit
a35220c321
@ -23,13 +23,9 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
docker "github.com/fsouza/go-dockerclient"
|
|
||||||
cadvisorapi "github.com/google/cadvisor/info/v1"
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/client/record"
|
"k8s.io/kubernetes/pkg/client/record"
|
||||||
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
|
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/dockertools"
|
|
||||||
"k8s.io/kubernetes/pkg/kubelet/network"
|
|
||||||
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/util/queue"
|
"k8s.io/kubernetes/pkg/kubelet/util/queue"
|
||||||
"k8s.io/kubernetes/pkg/types"
|
"k8s.io/kubernetes/pkg/types"
|
||||||
@ -44,18 +40,12 @@ func newPod(uid, name string) *api.Pod {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func createFakeRuntimeCache(fakeRecorder *record.FakeRecorder) kubecontainer.RuntimeCache {
|
|
||||||
fakeDocker := &dockertools.FakeDockerClient{}
|
|
||||||
np, _ := network.InitNetworkPlugin([]network.NetworkPlugin{}, "", network.NewFakeHost(nil))
|
|
||||||
dockerManager := dockertools.NewFakeDockerManager(fakeDocker, fakeRecorder, nil, nil, &cadvisorapi.MachineInfo{}, dockertools.PodInfraContainerImage, 0, 0, "", kubecontainer.FakeOS{}, np, nil, nil, nil)
|
|
||||||
return kubecontainer.NewFakeRuntimeCache(dockerManager)
|
|
||||||
}
|
|
||||||
|
|
||||||
func createPodWorkers() (*podWorkers, map[types.UID][]string) {
|
func createPodWorkers() (*podWorkers, map[types.UID][]string) {
|
||||||
lock := sync.Mutex{}
|
lock := sync.Mutex{}
|
||||||
processed := make(map[types.UID][]string)
|
processed := make(map[types.UID][]string)
|
||||||
fakeRecorder := &record.FakeRecorder{}
|
fakeRecorder := &record.FakeRecorder{}
|
||||||
fakeRuntimeCache := createFakeRuntimeCache(fakeRecorder)
|
fakeRuntime := &kubecontainer.FakeRuntime{}
|
||||||
|
fakeRuntimeCache := kubecontainer.NewFakeRuntimeCache(fakeRuntime)
|
||||||
podWorkers := newPodWorkers(
|
podWorkers := newPodWorkers(
|
||||||
fakeRuntimeCache,
|
fakeRuntimeCache,
|
||||||
func(pod *api.Pod, mirrorPod *api.Pod, runningPod kubecontainer.Pod, updateType kubetypes.SyncPodType) error {
|
func(pod *api.Pod, mirrorPod *api.Pod, runningPod kubecontainer.Pod, updateType kubetypes.SyncPodType) error {
|
||||||
@ -163,8 +153,7 @@ type simpleFakeKubelet struct {
|
|||||||
pod *api.Pod
|
pod *api.Pod
|
||||||
mirrorPod *api.Pod
|
mirrorPod *api.Pod
|
||||||
runningPod kubecontainer.Pod
|
runningPod kubecontainer.Pod
|
||||||
|
wg sync.WaitGroup
|
||||||
wg sync.WaitGroup
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (kl *simpleFakeKubelet) syncPod(pod *api.Pod, mirrorPod *api.Pod, runningPod kubecontainer.Pod, updateType kubetypes.SyncPodType) error {
|
func (kl *simpleFakeKubelet) syncPod(pod *api.Pod, mirrorPod *api.Pod, runningPod kubecontainer.Pod, updateType kubetypes.SyncPodType) error {
|
||||||
@ -194,12 +183,9 @@ func (b byContainerName) Less(i, j int) bool {
|
|||||||
// TestFakePodWorkers verifies that the fakePodWorkers behaves the same way as the real podWorkers
|
// TestFakePodWorkers verifies that the fakePodWorkers behaves the same way as the real podWorkers
|
||||||
// for their invocation of the syncPodFn.
|
// for their invocation of the syncPodFn.
|
||||||
func TestFakePodWorkers(t *testing.T) {
|
func TestFakePodWorkers(t *testing.T) {
|
||||||
// Create components for pod workers.
|
|
||||||
fakeDocker := &dockertools.FakeDockerClient{}
|
|
||||||
fakeRecorder := &record.FakeRecorder{}
|
fakeRecorder := &record.FakeRecorder{}
|
||||||
np, _ := network.InitNetworkPlugin([]network.NetworkPlugin{}, "", network.NewFakeHost(nil))
|
fakeRuntime := &kubecontainer.FakeRuntime{}
|
||||||
dockerManager := dockertools.NewFakeDockerManager(fakeDocker, fakeRecorder, nil, nil, &cadvisorapi.MachineInfo{}, dockertools.PodInfraContainerImage, 0, 0, "", kubecontainer.FakeOS{}, np, nil, nil, nil)
|
fakeRuntimeCache := kubecontainer.NewFakeRuntimeCache(fakeRuntime)
|
||||||
fakeRuntimeCache := kubecontainer.NewFakeRuntimeCache(dockerManager)
|
|
||||||
|
|
||||||
kubeletForRealWorkers := &simpleFakeKubelet{}
|
kubeletForRealWorkers := &simpleFakeKubelet{}
|
||||||
kubeletForFakeWorkers := &simpleFakeKubelet{}
|
kubeletForFakeWorkers := &simpleFakeKubelet{}
|
||||||
@ -210,16 +196,15 @@ func TestFakePodWorkers(t *testing.T) {
|
|||||||
tests := []struct {
|
tests := []struct {
|
||||||
pod *api.Pod
|
pod *api.Pod
|
||||||
mirrorPod *api.Pod
|
mirrorPod *api.Pod
|
||||||
containerList []docker.APIContainers
|
podList []*kubecontainer.Pod
|
||||||
containersInRunningPod int
|
containersInRunningPod int
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
&api.Pod{},
|
&api.Pod{},
|
||||||
&api.Pod{},
|
&api.Pod{},
|
||||||
[]docker.APIContainers{},
|
[]*kubecontainer.Pod{},
|
||||||
0,
|
0,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
&api.Pod{
|
&api.Pod{
|
||||||
ObjectMeta: api.ObjectMeta{
|
ObjectMeta: api.ObjectMeta{
|
||||||
@ -227,13 +212,6 @@ func TestFakePodWorkers(t *testing.T) {
|
|||||||
Name: "foo",
|
Name: "foo",
|
||||||
Namespace: "new",
|
Namespace: "new",
|
||||||
},
|
},
|
||||||
Spec: api.PodSpec{
|
|
||||||
Containers: []api.Container{
|
|
||||||
{
|
|
||||||
Name: "fooContainer",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
&api.Pod{
|
&api.Pod{
|
||||||
ObjectMeta: api.ObjectMeta{
|
ObjectMeta: api.ObjectMeta{
|
||||||
@ -241,29 +219,31 @@ func TestFakePodWorkers(t *testing.T) {
|
|||||||
Name: "fooMirror",
|
Name: "fooMirror",
|
||||||
Namespace: "new",
|
Namespace: "new",
|
||||||
},
|
},
|
||||||
Spec: api.PodSpec{
|
},
|
||||||
Containers: []api.Container{
|
[]*kubecontainer.Pod{
|
||||||
|
{
|
||||||
|
ID: "12345678",
|
||||||
|
Name: "foo",
|
||||||
|
Namespace: "new",
|
||||||
|
Containers: []*kubecontainer.Container{
|
||||||
|
{
|
||||||
|
Name: "fooContainer",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: "12345678",
|
||||||
|
Name: "fooMirror",
|
||||||
|
Namespace: "new",
|
||||||
|
Containers: []*kubecontainer.Container{
|
||||||
{
|
{
|
||||||
Name: "fooContainerMirror",
|
Name: "fooContainerMirror",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
[]docker.APIContainers{
|
1,
|
||||||
{
|
|
||||||
// format is // k8s_<container-id>_<pod-fullname>_<pod-uid>_<random>
|
|
||||||
Names: []string{"/k8s_bar.hash123_foo_new_12345678_0"},
|
|
||||||
ID: "1234",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
// pod infra container
|
|
||||||
Names: []string{"/k8s_POD.hash123_foo_new_12345678_0"},
|
|
||||||
ID: "9876",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
2,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
&api.Pod{
|
&api.Pod{
|
||||||
ObjectMeta: api.ObjectMeta{
|
ObjectMeta: api.ObjectMeta{
|
||||||
@ -271,93 +251,50 @@ func TestFakePodWorkers(t *testing.T) {
|
|||||||
Name: "bar",
|
Name: "bar",
|
||||||
Namespace: "new",
|
Namespace: "new",
|
||||||
},
|
},
|
||||||
Spec: api.PodSpec{
|
|
||||||
Containers: []api.Container{
|
|
||||||
{
|
|
||||||
Name: "fooContainer",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
&api.Pod{
|
&api.Pod{
|
||||||
ObjectMeta: api.ObjectMeta{
|
ObjectMeta: api.ObjectMeta{
|
||||||
UID: "98765",
|
UID: "98765",
|
||||||
Name: "fooMirror",
|
Name: "barMirror",
|
||||||
Namespace: "new",
|
Namespace: "new",
|
||||||
},
|
},
|
||||||
Spec: api.PodSpec{
|
},
|
||||||
Containers: []api.Container{
|
[]*kubecontainer.Pod{
|
||||||
|
{
|
||||||
|
ID: "98765",
|
||||||
|
Name: "bar",
|
||||||
|
Namespace: "new",
|
||||||
|
Containers: []*kubecontainer.Container{
|
||||||
{
|
{
|
||||||
Name: "fooContainerMirror",
|
Name: "barContainer0",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "barContainer1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: "98765",
|
||||||
|
Name: "barMirror",
|
||||||
|
Namespace: "new",
|
||||||
|
Containers: []*kubecontainer.Container{
|
||||||
|
{
|
||||||
|
Name: "barContainerMirror0",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "barContainerMirror1",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
[]docker.APIContainers{
|
2,
|
||||||
{
|
|
||||||
// format is // k8s_<container-id>_<pod-fullname>_<pod-uid>_<random>
|
|
||||||
Names: []string{"/k8s_bar.hash123_bar_new_98765_0"},
|
|
||||||
ID: "1234",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
// pod infra container
|
|
||||||
Names: []string{"/k8s_POD.hash123_foo_new_12345678_0"},
|
|
||||||
ID: "9876",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
1,
|
|
||||||
},
|
|
||||||
|
|
||||||
// Empty running pod.
|
|
||||||
{
|
|
||||||
&api.Pod{
|
|
||||||
ObjectMeta: api.ObjectMeta{
|
|
||||||
UID: "98765",
|
|
||||||
Name: "baz",
|
|
||||||
Namespace: "new",
|
|
||||||
},
|
|
||||||
Spec: api.PodSpec{
|
|
||||||
Containers: []api.Container{
|
|
||||||
{
|
|
||||||
Name: "bazContainer",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&api.Pod{
|
|
||||||
ObjectMeta: api.ObjectMeta{
|
|
||||||
UID: "98765",
|
|
||||||
Name: "bazMirror",
|
|
||||||
Namespace: "new",
|
|
||||||
},
|
|
||||||
Spec: api.PodSpec{
|
|
||||||
Containers: []api.Container{
|
|
||||||
{
|
|
||||||
Name: "bazContainerMirror",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
[]docker.APIContainers{
|
|
||||||
{
|
|
||||||
// format is // k8s_<container-id>_<pod-fullname>_<pod-uid>_<random>
|
|
||||||
Names: []string{"/k8s_bar.hash123_bar_new_12345678_0"},
|
|
||||||
ID: "1234",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
// pod infra container
|
|
||||||
Names: []string{"/k8s_POD.hash123_foo_new_12345678_0"},
|
|
||||||
ID: "9876",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
0,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, tt := range tests {
|
for i, tt := range tests {
|
||||||
kubeletForRealWorkers.wg.Add(1)
|
kubeletForRealWorkers.wg.Add(1)
|
||||||
|
|
||||||
fakeDocker.ContainerList = tt.containerList
|
fakeRuntime.PodList = tt.podList
|
||||||
realPodWorkers.UpdatePod(tt.pod, tt.mirrorPod, kubetypes.SyncPodUpdate, func() {})
|
realPodWorkers.UpdatePod(tt.pod, tt.mirrorPod, kubetypes.SyncPodUpdate, func() {})
|
||||||
fakePodWorkers.UpdatePod(tt.pod, tt.mirrorPod, kubetypes.SyncPodUpdate, func() {})
|
fakePodWorkers.UpdatePod(tt.pod, tt.mirrorPod, kubetypes.SyncPodUpdate, func() {})
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user