{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls/comments/93596534","pull_request_review_id":14126803,"id":93596534,"diff_hunk":"@@ -55,8 +55,8 @@\n - hosts: k8s-cluster\n   any_errors_fatal: true\n   roles:\n-    - { role: dnsmasq, tags: dnsmasq }\n-    - { role: kubernetes/preinstall, tags: resolvconf }\n+    - { role: dnsmasq, when: \"dns_mode == 'dnsmasq_kubedns'\", tags: dnsmasq }","path":"cluster.yml","position":6,"original_position":6,"commit_id":"ae9de2e9c57cfd88e15eecd9d114ed2266074a41","original_commit_id":"ae9de2e9c57cfd88e15eecd9d114ed2266074a41","user":{"login":"bogdando","id":2795820,"avatar_url":"https://avatars.githubusercontent.com/u/2795820?v=3","gravatar_id":"","url":"https://api.github.com/users/bogdando","html_url":"https://github.com/bogdando","followers_url":"https://api.github.com/users/bogdando/followers","following_url":"https://api.github.com/users/bogdando/following{/other_user}","gists_url":"https://api.github.com/users/bogdando/gists{/gist_id}","starred_url":"https://api.github.com/users/bogdando/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bogdando/subscriptions","organizations_url":"https://api.github.com/users/bogdando/orgs","repos_url":"https://api.github.com/users/bogdando/repos","events_url":"https://api.github.com/users/bogdando/events{/privacy}","received_events_url":"https://api.github.com/users/bogdando/received_events","type":"User","site_admin":false},"body":"As we discussed, this should remain unconditional","created_at":"2016-12-22T10:11:58Z","updated_at":"2016-12-22T10:11:58Z","html_url":"https://github.com/kubernetes-incubator/kargo/pull/799#discussion_r93596534","pull_request_url":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls/799","_links":{"self":{"href":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls/comments/93596534"},"html":{"href":"https://github.com/kubernetes-incubator/kargo/pull/799#discussion_r93596534"},"pull_request":{"href":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls/799"}}},"pull_request":{"url":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls/799","id":98966804,"html_url":"https://github.com/kubernetes-incubator/kargo/pull/799","diff_url":"https://github.com/kubernetes-incubator/kargo/pull/799.diff","patch_url":"https://github.com/kubernetes-incubator/kargo/pull/799.patch","issue_url":"https://api.github.com/repos/kubernetes-incubator/kargo/issues/799","number":799,"state":"open","locked":false,"title":"[WIP] Implement \"dockerd --dns-xxx\" based dns mode","user":{"login":"codablock","id":1884269,"avatar_url":"https://avatars.githubusercontent.com/u/1884269?v=3","gravatar_id":"","url":"https://api.github.com/users/codablock","html_url":"https://github.com/codablock","followers_url":"https://api.github.com/users/codablock/followers","following_url":"https://api.github.com/users/codablock/following{/other_user}","gists_url":"https://api.github.com/users/codablock/gists{/gist_id}","starred_url":"https://api.github.com/users/codablock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codablock/subscriptions","organizations_url":"https://api.github.com/users/codablock/orgs","repos_url":"https://api.github.com/users/codablock/repos","events_url":"https://api.github.com/users/codablock/events{/privacy}","received_events_url":"https://api.github.com/users/codablock/received_events","type":"User","site_admin":false},"body":"This PR implements \"dockerd --dns\" based DNS as an alternative to dnsmasq.\r\n\r\nIt can be enabled by settings dns_mode to docker_kubedns. dns_mode is a replacement for skip_dnsmasq and setup_dns.\r\n\r\nAs I understand it, dnsmasq was initially introduced to make hostNetwork PODs have proper cluster DNS configured. Maybe there were other reasons that I missed, but my feeling is that the solution got too complex for what it tries to solve.\r\n\r\nAn alternative is to use the docker daemon options --dns, --dns-search and --dns-opt. The docker_kubedns mode will add these to the docker service and skip all other DNS related roles/tasks. This means, that the hosts /etc/resolv.conf and dhclient conf is not touched at all.\r\n\r\nKubelet gets the kubedns/skydns IP as --cluster_dns, so all normal (non-hostNetwork) PODs will generate their own resolv.conf that has proper cluster DNS set up. PODs that have 'hostNetwork: true' set, will rely on docker providing a correct resolv.conf, which will contain proper cluster DNS settings as well (due to --dns-xxx).\r\n\r\nThe docker_kubedns mode also parses the hosts resolv.conf to figure out which nameservers and search domains are used. These are added as proper --dns-xxx args as well. These nameservers come after the kubedns entry, which makes them backup nameservers. This basically makes the early_dns logic unnecessary, as the hosts resolv.conf is untouched and only docker containers are affected (lookup still works, but takes longer) by the not running cluster DNS server.\r\n\r\nThe long term goal of this PR is to maybe completely remove dnsmasq and all the modifications to resolv.con and dhclient.conf and then leave only the docker_kubedns mode. This would simplify a lot of things and remove a big source of error.\r\n\r\nThe default dns_mode is set to dnsmasq_kubedns, which is the same as skip_dnsmasq=false and setup_dns=true.\r\n\r\nI still need to update the documentation. Will do this after review.","created_at":"2016-12-21T16:48:15Z","updated_at":"2016-12-22T10:11:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"dcd98b94f46f42a1ae49b97c79518b6aaa06a1ce","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls/799/commits","review_comments_url":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls/799/comments","review_comment_url":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes-incubator/kargo/issues/799/comments","statuses_url":"https://api.github.com/repos/kubernetes-incubator/kargo/statuses/ae9de2e9c57cfd88e15eecd9d114ed2266074a41","head":{"label":"kubernetes-incubator:docker_dns","ref":"docker_dns","sha":"ae9de2e9c57cfd88e15eecd9d114ed2266074a41","user":{"login":"kubernetes-incubator","id":20862812,"avatar_url":"https://avatars.githubusercontent.com/u/20862812?v=3","gravatar_id":"","url":"https://api.github.com/users/kubernetes-incubator","html_url":"https://github.com/kubernetes-incubator","followers_url":"https://api.github.com/users/kubernetes-incubator/followers","following_url":"https://api.github.com/users/kubernetes-incubator/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes-incubator/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes-incubator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes-incubator/subscriptions","organizations_url":"https://api.github.com/users/kubernetes-incubator/orgs","repos_url":"https://api.github.com/users/kubernetes-incubator/repos","events_url":"https://api.github.com/users/kubernetes-incubator/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes-incubator/received_events","type":"Organization","site_admin":false},"repo":{"id":43613404,"name":"kargo","full_name":"kubernetes-incubator/kargo","owner":{"login":"kubernetes-incubator","id":20862812,"avatar_url":"https://avatars.githubusercontent.com/u/20862812?v=3","gravatar_id":"","url":"https://api.github.com/users/kubernetes-incubator","html_url":"https://github.com/kubernetes-incubator","followers_url":"https://api.github.com/users/kubernetes-incubator/followers","following_url":"https://api.github.com/users/kubernetes-incubator/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes-incubator/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes-incubator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes-incubator/subscriptions","organizations_url":"https://api.github.com/users/kubernetes-incubator/orgs","repos_url":"https://api.github.com/users/kubernetes-incubator/repos","events_url":"https://api.github.com/users/kubernetes-incubator/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes-incubator/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kubernetes-incubator/kargo","description":"Setup a kubernetes cluster","fork":false,"url":"https://api.github.com/repos/kubernetes-incubator/kargo","forks_url":"https://api.github.com/repos/kubernetes-incubator/kargo/forks","keys_url":"https://api.github.com/repos/kubernetes-incubator/kargo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kubernetes-incubator/kargo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kubernetes-incubator/kargo/teams","hooks_url":"https://api.github.com/repos/kubernetes-incubator/kargo/hooks","issue_events_url":"https://api.github.com/repos/kubernetes-incubator/kargo/issues/events{/number}","events_url":"https://api.github.com/repos/kubernetes-incubator/kargo/events","assignees_url":"https://api.github.com/repos/kubernetes-incubator/kargo/assignees{/user}","branches_url":"https://api.github.com/repos/kubernetes-incubator/kargo/branches{/branch}","tags_url":"https://api.github.com/repos/kubernetes-incubator/kargo/tags","blobs_url":"https://api.github.com/repos/kubernetes-incubator/kargo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kubernetes-incubator/kargo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kubernetes-incubator/kargo/git/refs{/sha}","trees_url":"https://api.github.com/repos/kubernetes-incubator/kargo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kubernetes-incubator/kargo/statuses/{sha}","languages_url":"https://api.github.com/repos/kubernetes-incubator/kargo/languages","stargazers_url":"https://api.github.com/repos/kubernetes-incubator/kargo/stargazers","contributors_url":"https://api.github.com/repos/kubernetes-incubator/kargo/contributors","subscribers_url":"https://api.github.com/repos/kubernetes-incubator/kargo/subscribers","subscription_url":"https://api.github.com/repos/kubernetes-incubator/kargo/subscription","commits_url":"https://api.github.com/repos/kubernetes-incubator/kargo/commits{/sha}","git_commits_url":"https://api.github.com/repos/kubernetes-incubator/kargo/git/commits{/sha}","comments_url":"https://api.github.com/repos/kubernetes-incubator/kargo/comments{/number}","issue_comment_url":"https://api.github.com/repos/kubernetes-incubator/kargo/issues/comments{/number}","contents_url":"https://api.github.com/repos/kubernetes-incubator/kargo/contents/{+path}","compare_url":"https://api.github.com/repos/kubernetes-incubator/kargo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kubernetes-incubator/kargo/merges","archive_url":"https://api.github.com/repos/kubernetes-incubator/kargo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kubernetes-incubator/kargo/downloads","issues_url":"https://api.github.com/repos/kubernetes-incubator/kargo/issues{/number}","pulls_url":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls{/number}","milestones_url":"https://api.github.com/repos/kubernetes-incubator/kargo/milestones{/number}","notifications_url":"https://api.github.com/repos/kubernetes-incubator/kargo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kubernetes-incubator/kargo/labels{/name}","releases_url":"https://api.github.com/repos/kubernetes-incubator/kargo/releases{/id}","deployments_url":"https://api.github.com/repos/kubernetes-incubator/kargo/deployments","created_at":"2015-10-03T20:18:11Z","updated_at":"2016-12-18T17:17:32Z","pushed_at":"2016-12-22T10:07:55Z","git_url":"git://github.com/kubernetes-incubator/kargo.git","ssh_url":"git@github.com:kubernetes-incubator/kargo.git","clone_url":"https://github.com/kubernetes-incubator/kargo.git","svn_url":"https://github.com/kubernetes-incubator/kargo","homepage":"","size":4737,"stargazers_count":446,"watchers_count":446,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":148,"mirror_url":null,"open_issues_count":96,"forks":148,"open_issues":96,"watchers":446,"default_branch":"master"}},"base":{"label":"kubernetes-incubator:master","ref":"master","sha":"2a3164e040ca3096e5817d9d6284cc2de6deba34","user":{"login":"kubernetes-incubator","id":20862812,"avatar_url":"https://avatars.githubusercontent.com/u/20862812?v=3","gravatar_id":"","url":"https://api.github.com/users/kubernetes-incubator","html_url":"https://github.com/kubernetes-incubator","followers_url":"https://api.github.com/users/kubernetes-incubator/followers","following_url":"https://api.github.com/users/kubernetes-incubator/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes-incubator/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes-incubator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes-incubator/subscriptions","organizations_url":"https://api.github.com/users/kubernetes-incubator/orgs","repos_url":"https://api.github.com/users/kubernetes-incubator/repos","events_url":"https://api.github.com/users/kubernetes-incubator/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes-incubator/received_events","type":"Organization","site_admin":false},"repo":{"id":43613404,"name":"kargo","full_name":"kubernetes-incubator/kargo","owner":{"login":"kubernetes-incubator","id":20862812,"avatar_url":"https://avatars.githubusercontent.com/u/20862812?v=3","gravatar_id":"","url":"https://api.github.com/users/kubernetes-incubator","html_url":"https://github.com/kubernetes-incubator","followers_url":"https://api.github.com/users/kubernetes-incubator/followers","following_url":"https://api.github.com/users/kubernetes-incubator/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes-incubator/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes-incubator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes-incubator/subscriptions","organizations_url":"https://api.github.com/users/kubernetes-incubator/orgs","repos_url":"https://api.github.com/users/kubernetes-incubator/repos","events_url":"https://api.github.com/users/kubernetes-incubator/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes-incubator/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kubernetes-incubator/kargo","description":"Setup a kubernetes cluster","fork":false,"url":"https://api.github.com/repos/kubernetes-incubator/kargo","forks_url":"https://api.github.com/repos/kubernetes-incubator/kargo/forks","keys_url":"https://api.github.com/repos/kubernetes-incubator/kargo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kubernetes-incubator/kargo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kubernetes-incubator/kargo/teams","hooks_url":"https://api.github.com/repos/kubernetes-incubator/kargo/hooks","issue_events_url":"https://api.github.com/repos/kubernetes-incubator/kargo/issues/events{/number}","events_url":"https://api.github.com/repos/kubernetes-incubator/kargo/events","assignees_url":"https://api.github.com/repos/kubernetes-incubator/kargo/assignees{/user}","branches_url":"https://api.github.com/repos/kubernetes-incubator/kargo/branches{/branch}","tags_url":"https://api.github.com/repos/kubernetes-incubator/kargo/tags","blobs_url":"https://api.github.com/repos/kubernetes-incubator/kargo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kubernetes-incubator/kargo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kubernetes-incubator/kargo/git/refs{/sha}","trees_url":"https://api.github.com/repos/kubernetes-incubator/kargo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kubernetes-incubator/kargo/statuses/{sha}","languages_url":"https://api.github.com/repos/kubernetes-incubator/kargo/languages","stargazers_url":"https://api.github.com/repos/kubernetes-incubator/kargo/stargazers","contributors_url":"https://api.github.com/repos/kubernetes-incubator/kargo/contributors","subscribers_url":"https://api.github.com/repos/kubernetes-incubator/kargo/subscribers","subscription_url":"https://api.github.com/repos/kubernetes-incubator/kargo/subscription","commits_url":"https://api.github.com/repos/kubernetes-incubator/kargo/commits{/sha}","git_commits_url":"https://api.github.com/repos/kubernetes-incubator/kargo/git/commits{/sha}","comments_url":"https://api.github.com/repos/kubernetes-incubator/kargo/comments{/number}","issue_comment_url":"https://api.github.com/repos/kubernetes-incubator/kargo/issues/comments{/number}","contents_url":"https://api.github.com/repos/kubernetes-incubator/kargo/contents/{+path}","compare_url":"https://api.github.com/repos/kubernetes-incubator/kargo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kubernetes-incubator/kargo/merges","archive_url":"https://api.github.com/repos/kubernetes-incubator/kargo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kubernetes-incubator/kargo/downloads","issues_url":"https://api.github.com/repos/kubernetes-incubator/kargo/issues{/number}","pulls_url":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls{/number}","milestones_url":"https://api.github.com/repos/kubernetes-incubator/kargo/milestones{/number}","notifications_url":"https://api.github.com/repos/kubernetes-incubator/kargo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kubernetes-incubator/kargo/labels{/name}","releases_url":"https://api.github.com/repos/kubernetes-incubator/kargo/releases{/id}","deployments_url":"https://api.github.com/repos/kubernetes-incubator/kargo/deployments","created_at":"2015-10-03T20:18:11Z","updated_at":"2016-12-18T17:17:32Z","pushed_at":"2016-12-22T10:07:55Z","git_url":"git://github.com/kubernetes-incubator/kargo.git","ssh_url":"git@github.com:kubernetes-incubator/kargo.git","clone_url":"https://github.com/kubernetes-incubator/kargo.git","svn_url":"https://github.com/kubernetes-incubator/kargo","homepage":"","size":4737,"stargazers_count":446,"watchers_count":446,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":148,"mirror_url":null,"open_issues_count":96,"forks":148,"open_issues":96,"watchers":446,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls/799"},"html":{"href":"https://github.com/kubernetes-incubator/kargo/pull/799"},"issue":{"href":"https://api.github.com/repos/kubernetes-incubator/kargo/issues/799"},"comments":{"href":"https://api.github.com/repos/kubernetes-incubator/kargo/issues/799/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls/799/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes-incubator/kargo/pulls/799/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes-incubator/kargo/statuses/ae9de2e9c57cfd88e15eecd9d114ed2266074a41"}}}}
{"actor":{"display_login":"bogdando"}}