{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/12848","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/12848/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/12848/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/12848/events","html_url":"https://github.com/kubernetes/kubernetes/pull/12848","id":101606617,"number":12848,"title":"Move WatchCache to pkg/storage and make it private","user":{"login":"wojtek-t","id":10743879,"avatar_url":"https://avatars.githubusercontent.com/u/10743879?v=3","gravatar_id":"","url":"https://api.github.com/users/wojtek-t","html_url":"https://github.com/wojtek-t","followers_url":"https://api.github.com/users/wojtek-t/followers","following_url":"https://api.github.com/users/wojtek-t/following{/other_user}","gists_url":"https://api.github.com/users/wojtek-t/gists{/gist_id}","starred_url":"https://api.github.com/users/wojtek-t/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wojtek-t/subscriptions","organizations_url":"https://api.github.com/users/wojtek-t/orgs","repos_url":"https://api.github.com/users/wojtek-t/repos","events_url":"https://api.github.com/users/wojtek-t/events{/privacy}","received_events_url":"https://api.github.com/users/wojtek-t/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"}],"state":"open","locked":false,"assignee":{"login":"bprashanth","id":10927820,"avatar_url":"https://avatars.githubusercontent.com/u/10927820?v=3","gravatar_id":"","url":"https://api.github.com/users/bprashanth","html_url":"https://github.com/bprashanth","followers_url":"https://api.github.com/users/bprashanth/followers","following_url":"https://api.github.com/users/bprashanth/following{/other_user}","gists_url":"https://api.github.com/users/bprashanth/gists{/gist_id}","starred_url":"https://api.github.com/users/bprashanth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bprashanth/subscriptions","organizations_url":"https://api.github.com/users/bprashanth/orgs","repos_url":"https://api.github.com/users/bprashanth/repos","events_url":"https://api.github.com/users/bprashanth/events{/privacy}","received_events_url":"https://api.github.com/users/bprashanth/received_events","type":"User","site_admin":false},"milestone":null,"comments":12,"created_at":"2015-08-18T09:05:32Z","updated_at":"2015-08-25T19:33:28Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/12848","html_url":"https://github.com/kubernetes/kubernetes/pull/12848","diff_url":"https://github.com/kubernetes/kubernetes/pull/12848.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/12848.patch"},"body":"This is a follow-up PR from discussion in #12721\r\n\r\nThe purpose of this PR is:\r\n(1) change the reflector.go so that it doesn't have any reference to WatchCache\r\n(2) make WatchCache to be a private class in pkg/storage (in fact it's just implementation detail)\r\n\r\nHowever to do (1) I need to change the signature of Store::Replace() function to take resourceVersion as an additional argument (we need it for correctness in WatchCache).\r\nI think this change is fine, because we use the store implementations together with Reflector (which already has a notion of resourceVersion) - the only places where we need to explicitly pass the some resource version are tests - I didn't have to modify any \"production\" code.\r\n\r\n@bprashanth @timothysc "},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/134709940","html_url":"https://github.com/kubernetes/kubernetes/pull/12848#issuecomment-134709940","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/12848","id":134709940,"user":{"login":"lavalamp","id":647318,"avatar_url":"https://avatars.githubusercontent.com/u/647318?v=3","gravatar_id":"","url":"https://api.github.com/users/lavalamp","html_url":"https://github.com/lavalamp","followers_url":"https://api.github.com/users/lavalamp/followers","following_url":"https://api.github.com/users/lavalamp/following{/other_user}","gists_url":"https://api.github.com/users/lavalamp/gists{/gist_id}","starred_url":"https://api.github.com/users/lavalamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lavalamp/subscriptions","organizations_url":"https://api.github.com/users/lavalamp/orgs","repos_url":"https://api.github.com/users/lavalamp/repos","events_url":"https://api.github.com/users/lavalamp/events{/privacy}","received_events_url":"https://api.github.com/users/lavalamp/received_events","type":"User","site_admin":false},"created_at":"2015-08-25T19:33:28Z","updated_at":"2015-08-25T19:33:28Z","body":"@bprashanth @wojtek-t I think we want to evolve these caches into things that understand our objects, eventually into write-through caches etc. So I think being more explicit about resource versions in these caches seems like a good change to me."}}