Merge pull request #3642 from dchen1107/clean

Remove image GC.
pull/6/head
Brendan Burns 2015-01-20 14:07:00 -08:00
commit 9192a4ce22
3 changed files with 0 additions and 63 deletions

View File

@ -622,21 +622,3 @@ func parseImageName(image string) (string, string) {
type ContainerCommandRunner interface { type ContainerCommandRunner interface {
RunInContainer(containerID string, cmd []string) ([]byte, error) RunInContainer(containerID string, cmd []string) ([]byte, error)
} }
func GetUnusedImages(client DockerInterface) ([]string, error) {
// IMPORTANT: this is _unsafe_ to do while there are active pulls
// See https://github.com/docker/docker/issues/8926 for details
images, err := client.ListImages(docker.ListImagesOptions{
Filters: map[string][]string{
"dangling": {"true"},
},
})
if err != nil {
return nil, err
}
result := make([]string, len(images))
for ix := range images {
result[ix] = images[ix].ID
}
return result, nil
}

View File

@ -376,31 +376,9 @@ func (kl *Kubelet) GarbageCollectLoop() {
if err := kl.GarbageCollectContainers(); err != nil { if err := kl.GarbageCollectContainers(); err != nil {
glog.Errorf("Garbage collect failed: %v", err) glog.Errorf("Garbage collect failed: %v", err)
} }
if err := kl.GarbageCollectImages(); err != nil {
glog.Errorf("Garbage collect images failed: %v", err)
}
}, time.Minute*1) }, time.Minute*1)
} }
func (kl *Kubelet) getUnusedImages() ([]string, error) {
kl.pullLock.Lock()
defer kl.pullLock.Unlock()
return dockertools.GetUnusedImages(kl.dockerClient)
}
func (kl *Kubelet) GarbageCollectImages() error {
images, err := kl.getUnusedImages()
if err != nil {
return err
}
for ix := range images {
if err := kl.dockerClient.RemoveImage(images[ix]); err != nil {
glog.Errorf("Failed to remove image: %q (%v)", images[ix], err)
}
}
return nil
}
// TODO: Also enforce a maximum total number of containers. // TODO: Also enforce a maximum total number of containers.
func (kl *Kubelet) GarbageCollectContainers() error { func (kl *Kubelet) GarbageCollectContainers() error {
if kl.maxContainerCount == 0 { if kl.maxContainerCount == 0 {

View File

@ -1934,29 +1934,6 @@ func TestSyncPodsWithPullPolicy(t *testing.T) {
fakeDocker.Unlock() fakeDocker.Unlock()
} }
func TestGarbageCollectImages(t *testing.T) {
kubelet, fakeDocker := newTestKubelet(t)
fakeDocker.Images = []docker.APIImages{
{
ID: "foo",
},
{
ID: "bar",
},
}
if err := kubelet.GarbageCollectImages(); err != nil {
t.Errorf("unexpected error: %v", err)
}
if len(fakeDocker.RemovedImages) != 2 ||
!fakeDocker.RemovedImages.Has("foo") ||
!fakeDocker.RemovedImages.Has("bar") {
t.Errorf("unexpected images removed: %v", fakeDocker.RemovedImages)
}
}
func TestParseResolvConf(t *testing.T) { func TestParseResolvConf(t *testing.T) {
testCases := []struct { testCases := []struct {
data string data string