{"action":"opened","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/18394","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/18394/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/18394/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/18394/events","html_url":"https://github.com/kubernetes/kubernetes/issues/18394","id":121116466,"number":18394,"title":"Handle node label updates and deletions","user":{"login":"vishh","id":7063592,"avatar_url":"https://avatars.githubusercontent.com/u/7063592?v=3","gravatar_id":"","url":"https://api.github.com/users/vishh","html_url":"https://github.com/vishh","followers_url":"https://api.github.com/users/vishh/followers","following_url":"https://api.github.com/users/vishh/following{/other_user}","gists_url":"https://api.github.com/users/vishh/gists{/gist_id}","starred_url":"https://api.github.com/users/vishh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vishh/subscriptions","organizations_url":"https://api.github.com/users/vishh/orgs","repos_url":"https://api.github.com/users/vishh/repos","events_url":"https://api.github.com/users/vishh/events{/privacy}","received_events_url":"https://api.github.com/users/vishh/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-12-08T22:39:27Z","updated_at":"2015-12-08T22:39:27Z","closed_at":null,"body":"As of now node labels can be updated either via the API server directly or through the kubelet.\r\nInside of the kubelet, labels can be set directly from inside of kubelet, or by using command line flags and localhost files.\r\n\r\nOwnership of labels is not explicit. As of now a label set via the kubelet can be updated through the API server directly. If the kubelet restarts, it will update those labels again. \r\n\r\nKubernetes does not specify any policy around label source precedence. \r\nTo begin with we can require users to avoid label key conflicts themselves. \r\n\r\nWe need to fix label ownership though. \r\n\r\nKubelet should be aware of the labels that it has created. It should not update or delete labels that were not originally created through the kubelet. Kubelet needs to keep track of all the labels it has added and delete any labels that were removed across restarts. \r\n\r\nIn v1.1, the kubelet did not surface any labels. hence forwards and backwards compatibility should not be an issue.\r\n\r\nRelated issues & PRs: #17265, #17575, #13524\r\n"}}