{"action":"created","issue":{"url":"https://api.github.com/repos/openshift/origin/issues/5073","labels_url":"https://api.github.com/repos/openshift/origin/issues/5073/labels{/name}","comments_url":"https://api.github.com/repos/openshift/origin/issues/5073/comments","events_url":"https://api.github.com/repos/openshift/origin/issues/5073/events","html_url":"https://github.com/openshift/origin/pull/5073","id":110965437,"number":5073,"title":"WIP: Registry image pruning reworked","user":{"login":"miminar","id":1478803,"avatar_url":"https://avatars.githubusercontent.com/u/1478803?v=3","gravatar_id":"","url":"https://api.github.com/users/miminar","html_url":"https://github.com/miminar","followers_url":"https://api.github.com/users/miminar/followers","following_url":"https://api.github.com/users/miminar/following{/other_user}","gists_url":"https://api.github.com/users/miminar/gists{/gist_id}","starred_url":"https://api.github.com/users/miminar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miminar/subscriptions","organizations_url":"https://api.github.com/users/miminar/orgs","repos_url":"https://api.github.com/users/miminar/repos","events_url":"https://api.github.com/users/miminar/events{/privacy}","received_events_url":"https://api.github.com/users/miminar/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-10-12T12:33:39Z","updated_at":"2015-10-22T17:17:09Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/openshift/origin/pulls/5073","html_url":"https://github.com/openshift/origin/pull/5073","diff_url":"https://github.com/openshift/origin/pull/5073.diff","patch_url":"https://github.com/openshift/origin/pull/5073.patch"},"body":"Rebases docker/distribution to current upstream master with [storage API expose patch](https://github.com/docker/distribution/pull/1050) applied.\r\n\r\nReplaces `/admin/*` routes with just `/admin/prune` that triggers garbage collection.\r\n\r\nGarbage collection loads repositories (ImageStreams and ImageStreamDeletions), all their manifest revisions (Images) and dependend objects (layers and signatures). Manifest revision is marked for deletion if it has `DeletionTimestamp` set. Repository is marked for deletion if it is listed among `ImageStreamDeletions`. Any other dependent, loaded  object is preserved if it's referenced by at least one object not marked for deletion.\r\n\r\nResolves #3333\r\nResolves #4339\r\n\r\nTODOs:\r\n- ~~Find a way, how to keep `ImageStreamDeletion` type without the need to export it in cli (which now prevents OSO's compilation).~~ `ImageStreamDeletion`s can now be described.\r\n- ~~Rework `oadm prune` command to just mark obsolete Images for deletion.~~\r\n- ~~Rework deletion of image streams to mark for deletion any referenced image, delete image stream itself and add its name to `imageStreamDeletions`.~~ done\r\n- ~~Define finalizer for Images and trigger its `Finalize()` from inside of docker registry.~~ done\r\n- Remove `admin/prune` route - now used for testing.\r\n- Test it.\r\n- Let the garbage collection runs be configured."},"comment":{"url":"https://api.github.com/repos/openshift/origin/issues/comments/150295063","html_url":"https://github.com/openshift/origin/pull/5073#issuecomment-150295063","issue_url":"https://api.github.com/repos/openshift/origin/issues/5073","id":150295063,"user":{"login":"ncdc","id":354,"avatar_url":"https://avatars.githubusercontent.com/u/354?v=3","gravatar_id":"","url":"https://api.github.com/users/ncdc","html_url":"https://github.com/ncdc","followers_url":"https://api.github.com/users/ncdc/followers","following_url":"https://api.github.com/users/ncdc/following{/other_user}","gists_url":"https://api.github.com/users/ncdc/gists{/gist_id}","starred_url":"https://api.github.com/users/ncdc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ncdc/subscriptions","organizations_url":"https://api.github.com/users/ncdc/orgs","repos_url":"https://api.github.com/users/ncdc/repos","events_url":"https://api.github.com/users/ncdc/events{/privacy}","received_events_url":"https://api.github.com/users/ncdc/received_events","type":"User","site_admin":false},"created_at":"2015-10-22T17:17:09Z","updated_at":"2015-10-22T17:17:09Z","body":"These are huge changes. I think we need to consider this for 3.2 instead."}}