{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/25326","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/25326/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/25326/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/25326/events","html_url":"https://github.com/kubernetes/kubernetes/pull/25326","id":153689326,"number":25326,"title":"Kubelet: Checkpoint container information into one container info label.","user":{"login":"Random-Liu","id":5821883,"avatar_url":"https://avatars.githubusercontent.com/u/5821883?v=3","gravatar_id":"","url":"https://api.github.com/users/Random-Liu","html_url":"https://github.com/Random-Liu","followers_url":"https://api.github.com/users/Random-Liu/followers","following_url":"https://api.github.com/users/Random-Liu/following{/other_user}","gists_url":"https://api.github.com/users/Random-Liu/gists{/gist_id}","starred_url":"https://api.github.com/users/Random-Liu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Random-Liu/subscriptions","organizations_url":"https://api.github.com/users/Random-Liu/orgs","repos_url":"https://api.github.com/users/Random-Liu/repos","events_url":"https://api.github.com/users/Random-Liu/events{/privacy}","received_events_url":"https://api.github.com/users/Random-Liu/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/component/kubelet","name":"component/kubelet","color":"0052cc"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/enhancement","name":"kind/enhancement","color":"c7def8"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/feature","name":"kind/feature","color":"c7def8"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/needs-rebase","name":"needs-rebase","color":"BDBDBD"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/priority/P1","name":"priority/P1","color":"eb6420"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/release-note-none","name":"release-note-none","color":"c2e0c6"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/L","name":"size/L","color":"ee9900"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/team/node","name":"team/node","color":"d2b48c"}],"state":"open","locked":false,"assignee":{"login":"yujuhong","id":10524058,"avatar_url":"https://avatars.githubusercontent.com/u/10524058?v=3","gravatar_id":"","url":"https://api.github.com/users/yujuhong","html_url":"https://github.com/yujuhong","followers_url":"https://api.github.com/users/yujuhong/followers","following_url":"https://api.github.com/users/yujuhong/following{/other_user}","gists_url":"https://api.github.com/users/yujuhong/gists{/gist_id}","starred_url":"https://api.github.com/users/yujuhong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yujuhong/subscriptions","organizations_url":"https://api.github.com/users/yujuhong/orgs","repos_url":"https://api.github.com/users/yujuhong/repos","events_url":"https://api.github.com/users/yujuhong/events{/privacy}","received_events_url":"https://api.github.com/users/yujuhong/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/18","html_url":"https://github.com/kubernetes/kubernetes/milestones/v1.3","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/18/labels","id":1638460,"number":18,"title":"v1.3","description":"https://github.com/kubernetes/kubernetes/wiki/Release-1.3","creator":{"login":"bgrant0607","id":7725777,"avatar_url":"https://avatars.githubusercontent.com/u/7725777?v=3","gravatar_id":"","url":"https://api.github.com/users/bgrant0607","html_url":"https://github.com/bgrant0607","followers_url":"https://api.github.com/users/bgrant0607/followers","following_url":"https://api.github.com/users/bgrant0607/following{/other_user}","gists_url":"https://api.github.com/users/bgrant0607/gists{/gist_id}","starred_url":"https://api.github.com/users/bgrant0607/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgrant0607/subscriptions","organizations_url":"https://api.github.com/users/bgrant0607/orgs","repos_url":"https://api.github.com/users/bgrant0607/repos","events_url":"https://api.github.com/users/bgrant0607/events{/privacy}","received_events_url":"https://api.github.com/users/bgrant0607/received_events","type":"User","site_admin":false},"open_issues":152,"closed_issues":444,"state":"open","created_at":"2016-03-11T07:40:20Z","updated_at":"2016-06-03T19:50:15Z","due_on":"2016-06-24T07:00:00Z","closed_at":null},"comments":5,"created_at":"2016-05-09T01:35:44Z","updated_at":"2016-06-03T19:57:27Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/25326","html_url":"https://github.com/kubernetes/kubernetes/pull/25326","diff_url":"https://github.com/kubernetes/kubernetes/pull/25326.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/25326.patch"},"body":"Fixes #23706 (No uppercases in labels now)\r\nFixes #24702\r\n\r\nThis PR:\r\n* **Divide all information needs to be checkpointed into two parts**:\r\n  * containerMeta: all fields in `containerMeta` will be stored in separate labels. We may also want to use these labels as list filters in the future. The `containerMeta` should be seldom or even never changed.\r\n  * containerInfo: the `containerInfo` will be saved in one label as a whole.\r\n* **Checkpoint last container status into container info label.** With this, we can remove historical containers as soon as the new container is created (see #25239). However, because kubelet may still work with old containers which don't have this label, we still can't rely on this for now. Currently, we only use the `lastStatus` to calculate the restart count. @yujuhong @dchen1107 Can we assume that people will always drain node before updating kubelet? If so we can start relying on labels.\r\n* **Add label version.** Whenever we make any incompatible changes to the labels, we should bump up the label version and try to support backward compatibility relying on label version.\r\n\r\nNotice that with this PR, kubelet will stop reading *restart count* and *termination message path* from labels added in v1.2. It means that if someone does kubelet live upgrade from v1.2 to v1.3, the termination message of old containers will be lost, and restart count of the new container will be recalculated from 0.\r\n\r\nWe could add some code to prevent this, but that will make the code a bit more complex. Because restart count is just best effort and termination message path is seldom used, can we just ignore that like what we have done in v1.2? WDYT? @yujuhong\r\n\r\n@yujuhong @vishh \r\n/cc @kubernetes/sig-node "},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/223678948","html_url":"https://github.com/kubernetes/kubernetes/pull/25326#issuecomment-223678948","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/25326","id":223678948,"user":{"login":"goltermann","id":9358478,"avatar_url":"https://avatars.githubusercontent.com/u/9358478?v=3","gravatar_id":"","url":"https://api.github.com/users/goltermann","html_url":"https://github.com/goltermann","followers_url":"https://api.github.com/users/goltermann/followers","following_url":"https://api.github.com/users/goltermann/following{/other_user}","gists_url":"https://api.github.com/users/goltermann/gists{/gist_id}","starred_url":"https://api.github.com/users/goltermann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/goltermann/subscriptions","organizations_url":"https://api.github.com/users/goltermann/orgs","repos_url":"https://api.github.com/users/goltermann/repos","events_url":"https://api.github.com/users/goltermann/events{/privacy}","received_events_url":"https://api.github.com/users/goltermann/received_events","type":"User","site_admin":false},"created_at":"2016-06-03T19:57:27Z","updated_at":"2016-06-03T19:57:27Z","body":"@Random-Liu  This PR has the v1.3 milestone tag applied, but hasn't been touched in a week or more. We will cut Beta and branch on June 10. Please either close, finish off, get an LGTM or rebase this as needed to make sure it makes its way into 1.3."}}
{"actor":{"display_login":"goltermann"}}