{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/63887","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/63887/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/63887/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/63887/events","html_url":"https://github.com/kubernetes/kubernetes/pull/63887","id":323391074,"number":63887,"title":"[WIP] kubeadm: Write kubelet config file to disk and persist in-cluster","user":{"login":"luxas","id":5442475,"avatar_url":"https://avatars1.githubusercontent.com/u/5442475?v=4","gravatar_id":"","url":"https://api.github.com/users/luxas","html_url":"https://github.com/luxas","followers_url":"https://api.github.com/users/luxas/followers","following_url":"https://api.github.com/users/luxas/following{/other_user}","gists_url":"https://api.github.com/users/luxas/gists{/gist_id}","starred_url":"https://api.github.com/users/luxas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luxas/subscriptions","organizations_url":"https://api.github.com/users/luxas/orgs","repos_url":"https://api.github.com/users/luxas/repos","events_url":"https://api.github.com/users/luxas/events{/privacy}","received_events_url":"https://api.github.com/users/luxas/received_events","type":"User","site_admin":false},"labels":[{"id":451459590,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/kubeadm","name":"area/kubeadm","color":"0052cc","default":false},{"id":477397086,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cncf-cla:%20yes","name":"cncf-cla: yes","color":"bfe5bf","default":false},{"id":687500047,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/do-not-merge/work-in-progress","name":"do-not-merge/work-in-progress","color":"e11d21","default":false},{"id":200149833,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/release-note","name":"release-note","color":"c2e0c6","default":false},{"id":173494222,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/cluster-lifecycle","name":"sig/cluster-lifecycle","color":"d2b48c","default":false},{"id":253451093,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/XXL","name":"size/XXL","color":"ee0000","default":false}],"state":"open","locked":false,"assignee":{"login":"timothysc","id":169553,"avatar_url":"https://avatars0.githubusercontent.com/u/169553?v=4","gravatar_id":"","url":"https://api.github.com/users/timothysc","html_url":"https://github.com/timothysc","followers_url":"https://api.github.com/users/timothysc/followers","following_url":"https://api.github.com/users/timothysc/following{/other_user}","gists_url":"https://api.github.com/users/timothysc/gists{/gist_id}","starred_url":"https://api.github.com/users/timothysc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timothysc/subscriptions","organizations_url":"https://api.github.com/users/timothysc/orgs","repos_url":"https://api.github.com/users/timothysc/repos","events_url":"https://api.github.com/users/timothysc/events{/privacy}","received_events_url":"https://api.github.com/users/timothysc/received_events","type":"User","site_admin":false},"assignees":[{"login":"timothysc","id":169553,"avatar_url":"https://avatars0.githubusercontent.com/u/169553?v=4","gravatar_id":"","url":"https://api.github.com/users/timothysc","html_url":"https://github.com/timothysc","followers_url":"https://api.github.com/users/timothysc/followers","following_url":"https://api.github.com/users/timothysc/following{/other_user}","gists_url":"https://api.github.com/users/timothysc/gists{/gist_id}","starred_url":"https://api.github.com/users/timothysc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timothysc/subscriptions","organizations_url":"https://api.github.com/users/timothysc/orgs","repos_url":"https://api.github.com/users/timothysc/repos","events_url":"https://api.github.com/users/timothysc/events{/privacy}","received_events_url":"https://api.github.com/users/timothysc/received_events","type":"User","site_admin":false},{"login":"detiber","id":915544,"avatar_url":"https://avatars3.githubusercontent.com/u/915544?v=4","gravatar_id":"","url":"https://api.github.com/users/detiber","html_url":"https://github.com/detiber","followers_url":"https://api.github.com/users/detiber/followers","following_url":"https://api.github.com/users/detiber/following{/other_user}","gists_url":"https://api.github.com/users/detiber/gists{/gist_id}","starred_url":"https://api.github.com/users/detiber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/detiber/subscriptions","organizations_url":"https://api.github.com/users/detiber/orgs","repos_url":"https://api.github.com/users/detiber/repos","events_url":"https://api.github.com/users/detiber/events{/privacy}","received_events_url":"https://api.github.com/users/detiber/received_events","type":"User","site_admin":false}],"milestone":null,"comments":7,"created_at":"2018-05-15T21:32:07Z","updated_at":"2018-05-21T16:39:19Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/63887","html_url":"https://github.com/kubernetes/kubernetes/pull/63887","diff_url":"https://github.com/kubernetes/kubernetes/pull/63887.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/63887.patch"},"body":"<!--  Thanks for sending a pull request!  Here are some tips for you:\r\n1. If this is your first time, read our contributor guidelines https://git.k8s.io/community/contributors/guide#your-first-contribution and developer guide https://git.k8s.io/community/contributors/devel/development.md#development-guide\r\n2. If you want *faster* PR reviews, read how: https://git.k8s.io/community/contributors/guide/pull-requests.md#best-practices-for-faster-reviews\r\n3. Follow the instructions for writing a release note: https://git.k8s.io/community/contributors/guide/release-notes.md\r\n4. If the PR is unfinished, see how to mark it: https://git.k8s.io/community/contributors/guide/pull-requests.md#marking-unfinished-pull-requests\r\n-->\r\n\r\n**What this PR does / why we need it**:\r\nIn order to make configuration flow from the cluster level to node level, we need a way for kubeadm to tell the kubelet what config to use. As of v1.10 (I think) the kubelet can read `--config` using the kubelet Beta ComponentConfiguration API, so now we have an interface to talk to the kubelet properly.\r\n\r\nThis PR:\r\n - Writes the kubelet ComponentConfig to `/var/lib/kubelet/config.yaml` on init and join\r\n - Uploads a ConfigMap with the name `kubelet-config-1.X`\r\n - Patches the node object so that it starts using the ConfigMap with updates using Dynamic Kubelet Configuration, **only if the feature gate is set** (currently alpha and off by default, not intended to be switched on in v1.11)\r\n - Updates the phase commands to reflect this new flow\r\n\r\nThe kubelet dropin file I used now looks like this:\r\n```\r\n# v1.11.x dropin\r\n# /etc/systemd/system/kubelet.service.d/10-kubeadm.conf\r\n---\r\n[Service]\r\nEnvironment=\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\"\r\nEnvironment=\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\"\r\nEnvironmentFile=/etc/kubernetes/kubelet-cri.env\r\n# Should default to 0 in v1.11: https://github.com/kubernetes/kubernetes/pull/63881, and hence not be here in the real v1.11 manifest\r\nEnvironment=\"KUBELET_CADVISOR_ARGS=--cadvisor-port=0\"\r\n# Should be configurable via the config file: https://github.com/kubernetes/kubernetes/issues/63878, and hence be configured using the file in v1.11\r\nEnvironment=\"KUBELET_CERTIFICATE_ARGS=--rotate-certificates=true\"\r\nExecStart=\r\nExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_CONTAINER_RUNTIME_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_RESOLVER_ARGS $KUBELET_EXTRA_ARGS\r\n---\r\n# /etc/kubernetes/kubelet-cri.env\r\n# In this file, you can easily add support for other CRI runtimes and specify flags needed for that CRI\r\n# By default these arguments are here as they are specific to the docker runtime\r\nKUBELET_CONTAINER_RUNTIME_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin\r\n```\r\n\r\n**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:\r\nI'll write up a full issue to discuss this shortly\r\n\r\n**Special notes for your reviewer**: WIP\r\n\r\n**Release note**:\r\n<!--  Write your release note:\r\n1. Enter your extended release note in the below block. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n2. If no release note is required, just write \"NONE\".\r\n-->\r\n```release-note\r\nkubeadm can now configure the kubelet via the kubelet ComponentConfiguration\r\n```\r\n@kubernetes/sig-cluster-lifecycle-pr-reviews @mtaufen "},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/390710275","html_url":"https://github.com/kubernetes/kubernetes/pull/63887#issuecomment-390710275","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/63887","id":390710275,"user":{"login":"k8s-ci-robot","id":20407524,"avatar_url":"https://avatars0.githubusercontent.com/u/20407524?v=4","gravatar_id":"","url":"https://api.github.com/users/k8s-ci-robot","html_url":"https://github.com/k8s-ci-robot","followers_url":"https://api.github.com/users/k8s-ci-robot/followers","following_url":"https://api.github.com/users/k8s-ci-robot/following{/other_user}","gists_url":"https://api.github.com/users/k8s-ci-robot/gists{/gist_id}","starred_url":"https://api.github.com/users/k8s-ci-robot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k8s-ci-robot/subscriptions","organizations_url":"https://api.github.com/users/k8s-ci-robot/orgs","repos_url":"https://api.github.com/users/k8s-ci-robot/repos","events_url":"https://api.github.com/users/k8s-ci-robot/events{/privacy}","received_events_url":"https://api.github.com/users/k8s-ci-robot/received_events","type":"User","site_admin":false},"created_at":"2018-05-21T16:39:18Z","updated_at":"2018-05-21T16:39:18Z","author_association":"COLLABORATOR","body":"@luxas: The following tests **failed**, say `/retest` to rerun them all:\n\nTest name | Commit | Details | Rerun command\n--- | --- | --- | ---\npull-kubernetes-e2e-gce-100-performance | 0ba14303df8f30a66cfd89c806260c639a11126c | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63887/pull-kubernetes-e2e-gce-100-performance/6555/) | `/test pull-kubernetes-e2e-gce-100-performance`\npull-kubernetes-e2e-kops-aws | 0ba14303df8f30a66cfd89c806260c639a11126c | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63887/pull-kubernetes-e2e-kops-aws/89194/) | `/test pull-kubernetes-e2e-kops-aws`\npull-kubernetes-kubemark-e2e-gce | 0ba14303df8f30a66cfd89c806260c639a11126c | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63887/pull-kubernetes-kubemark-e2e-gce/91050/) | `/test pull-kubernetes-kubemark-e2e-gce`\npull-kubernetes-typecheck | 0ba14303df8f30a66cfd89c806260c639a11126c | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63887/pull-kubernetes-typecheck/10309/) | `/test pull-kubernetes-typecheck`\npull-kubernetes-verify | 0ba14303df8f30a66cfd89c806260c639a11126c | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63887/pull-kubernetes-verify/91379/) | `/test pull-kubernetes-verify`\npull-kubernetes-bazel-test | 57e043bb9ebd86dff94fd003c84603226ff7051e | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63887/pull-kubernetes-bazel-test/45813/) | `/test pull-kubernetes-bazel-test`\npull-kubernetes-bazel-build | 57e043bb9ebd86dff94fd003c84603226ff7051e | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63887/pull-kubernetes-bazel-build/43518/) | `/test pull-kubernetes-bazel-build`\npull-kubernetes-e2e-gce | 57e043bb9ebd86dff94fd003c84603226ff7051e | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63887/pull-kubernetes-e2e-gce/36795/) | `/test pull-kubernetes-e2e-gce`\npull-kubernetes-e2e-gce-device-plugin-gpu | 57e043bb9ebd86dff94fd003c84603226ff7051e | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63887/pull-kubernetes-e2e-gce-device-plugin-gpu/32972/) | `/test pull-kubernetes-e2e-gce-device-plugin-gpu`\n\n[Full PR test history](https://k8s-gubernator.appspot.com/pr/63887). [Your PR dashboard](https://k8s-gubernator.appspot.com/pr/luxas). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/kubernetes/kubernetes/issues?q=is:issue+is:open) when you hit one in your PR.\n\n<details>\n\nInstructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).\n</details>\n<!-- test report -->"}}
{"actor":{"display_login":"k8s-ci-robot"}}