Restart network container when container's configure is changed.

Fix #2099
This commit is contained in:
Dawn Chen 2014-11-04 14:26:21 -08:00
parent 652a0ce4db
commit 03958f5049
2 changed files with 18 additions and 6 deletions

View File

@ -588,6 +588,14 @@ func (kl *Kubelet) syncPod(pod *api.BoundPod, dockerContainers dockertools.Docke
continue continue
} }
killedContainers[containerID] = empty{} killedContainers[containerID] = empty{}
// Also kill associated network container
if netContainer, found, _ := dockerContainers.FindPodContainer(podFullName, uuid, networkContainerName); found {
if err := kl.killContainer(netContainer); err != nil {
glog.V(1).Infof("Failed to kill network container %s: %v", netContainer.ID, err)
continue
}
}
} }
// Check RestartPolicy for container // Check RestartPolicy for container

View File

@ -559,15 +559,17 @@ func TestSyncPodBadHash(t *testing.T) {
t.Errorf("unexpected error: %v", err) t.Errorf("unexpected error: %v", err)
} }
verifyCalls(t, fakeDocker, []string{"list", "stop", "list", "create", "start"}) verifyCalls(t, fakeDocker, []string{"list", "stop", "stop", "list", "create", "start"})
// A map interation is used to delete containers, so must not depend on // A map interation is used to delete containers, so must not depend on
// order here. // order here.
expectedToStop := map[string]bool{ expectedToStop := map[string]bool{
"1234": true, "1234": true,
"9876": true,
} }
if len(fakeDocker.Stopped) != 1 || if len(fakeDocker.Stopped) != 2 ||
!expectedToStop[fakeDocker.Stopped[0]] { (!expectedToStop[fakeDocker.Stopped[0]] &&
!expectedToStop[fakeDocker.Stopped[1]]) {
t.Errorf("Wrong containers were stopped: %v", fakeDocker.Stopped) t.Errorf("Wrong containers were stopped: %v", fakeDocker.Stopped)
} }
} }
@ -607,15 +609,17 @@ func TestSyncPodUnhealthy(t *testing.T) {
t.Errorf("unexpected error: %v", err) t.Errorf("unexpected error: %v", err)
} }
verifyCalls(t, fakeDocker, []string{"list", "stop", "list", "create", "start"}) verifyCalls(t, fakeDocker, []string{"list", "stop", "stop", "list", "create", "start"})
// A map interation is used to delete containers, so must not depend on // A map interation is used to delete containers, so must not depend on
// order here. // order here.
expectedToStop := map[string]bool{ expectedToStop := map[string]bool{
"1234": true, "1234": true,
"9876": true,
} }
if len(fakeDocker.Stopped) != 1 || if len(fakeDocker.Stopped) != 2 ||
!expectedToStop[fakeDocker.Stopped[0]] { (!expectedToStop[fakeDocker.Stopped[0]] &&
expectedToStop[fakeDocker.Stopped[0]]) {
t.Errorf("Wrong containers were stopped: %v", fakeDocker.Stopped) t.Errorf("Wrong containers were stopped: %v", fakeDocker.Stopped)
} }
} }