{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/13857","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/13857/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/13857/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/13857/events","html_url":"https://github.com/kubernetes/kubernetes/pull/13857","id":105991745,"number":13857,"title":"MESOS: add labels to node api object from scheduler and update them from executor","user":{"login":"sttts","id":730123,"avatar_url":"https://avatars.githubusercontent.com/u/730123?v=3","gravatar_id":"","url":"https://api.github.com/users/sttts","html_url":"https://github.com/sttts","followers_url":"https://api.github.com/users/sttts/followers","following_url":"https://api.github.com/users/sttts/following{/other_user}","gists_url":"https://api.github.com/users/sttts/gists{/gist_id}","starred_url":"https://api.github.com/users/sttts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sttts/subscriptions","organizations_url":"https://api.github.com/users/sttts/orgs","repos_url":"https://api.github.com/users/sttts/repos","events_url":"https://api.github.com/users/sttts/events{/privacy}","received_events_url":"https://api.github.com/users/sttts/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/size/L","name":"size/L","color":"ee9900"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/team/mesosphere","name":"team/mesosphere","color":"d2b48c"}],"state":"open","locked":false,"assignee":{"login":"sttts","id":730123,"avatar_url":"https://avatars.githubusercontent.com/u/730123?v=3","gravatar_id":"","url":"https://api.github.com/users/sttts","html_url":"https://github.com/sttts","followers_url":"https://api.github.com/users/sttts/followers","following_url":"https://api.github.com/users/sttts/following{/other_user}","gists_url":"https://api.github.com/users/sttts/gists{/gist_id}","starred_url":"https://api.github.com/users/sttts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sttts/subscriptions","organizations_url":"https://api.github.com/users/sttts/orgs","repos_url":"https://api.github.com/users/sttts/repos","events_url":"https://api.github.com/users/sttts/events{/privacy}","received_events_url":"https://api.github.com/users/sttts/received_events","type":"User","site_admin":false},"milestone":null,"comments":22,"created_at":"2015-09-11T11:25:37Z","updated_at":"2015-09-14T12:27:27Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/13857","html_url":"https://github.com/kubernetes/kubernetes/pull/13857","diff_url":"https://github.com/kubernetes/kubernetes/pull/13857.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/13857.patch"},"body":"This PR converts Mesos slave attributes into k8s node labels, using the `k8s.mesosphere.io/*` label namespace.\r\n\r\nI.e. a slave with attribute `rack: a` will get the k8s node label `k8s.mesosphere.io/rack: a`.\r\n\r\nNode labels must be synchronously applied to a node before a pod is launched because the kubelet will check whether the labels match to a pod's NodeSelector.  Therefore, the nodes are pre-created from the scheduler.\r\n\r\nThe overall picture is this:\r\n\r\n- pre-create the node api object from the scheduler (or update it if already existing)\r\n- launch a task. Mesos will launch the minion.\r\n- the minion launches the executor which launches the kubelet (later the kubelet will be launched out-of-process by the minion).\r\n- the executor registers or reregisters with Mesos and get slave attributes. The executor then will update the node object (necessary in case the labels changed e.g. because the slave was restarted with new attributes).\r\n- the kubelet watches the node object on the apiserver and will notice label changes.\r\n\r\nxref https://github.com/mesosphere/kubernetes-mesos/issues/452"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/140054678","html_url":"https://github.com/kubernetes/kubernetes/pull/13857#issuecomment-140054678","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/13857","id":140054678,"user":{"login":"k8s-bot","id":12551979,"avatar_url":"https://avatars.githubusercontent.com/u/12551979?v=3","gravatar_id":"","url":"https://api.github.com/users/k8s-bot","html_url":"https://github.com/k8s-bot","followers_url":"https://api.github.com/users/k8s-bot/followers","following_url":"https://api.github.com/users/k8s-bot/following{/other_user}","gists_url":"https://api.github.com/users/k8s-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/k8s-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k8s-bot/subscriptions","organizations_url":"https://api.github.com/users/k8s-bot/orgs","repos_url":"https://api.github.com/users/k8s-bot/repos","events_url":"https://api.github.com/users/k8s-bot/events{/privacy}","received_events_url":"https://api.github.com/users/k8s-bot/received_events","type":"User","site_admin":false},"created_at":"2015-09-14T12:27:27Z","updated_at":"2015-09-14T12:27:27Z","body":"GCE e2e build/test **passed** for commit 87c5fdccd13e77441a444ad8e2309a3b42871c6a.\n* [Build Log](https://storage.cloud.google.com/kubernetes-jenkins/pr-logs/87c5fdccd13e77441a444ad8e2309a3b42871c6a/kubernetes-pull-build-test-e2e-gce/8354/build-log.txt)\n* [Test Artifacts](https://console.developers.google.com/storage/browser/kubernetes-jenkins/pr-logs/87c5fdccd13e77441a444ad8e2309a3b42871c6a/kubernetes-pull-build-test-e2e-gce/8354/_artifacts/)\n* [Internal Jenkins Results](http://goto.google.com/prkubekins/job/kubernetes-pull-build-test-e2e-gce//8354)\n"}}