{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/48228","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/48228/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/48228/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/48228/events","html_url":"https://github.com/kubernetes/kubernetes/pull/48228","id":239308184,"number":48228,"title":"Updates Kubeadm Master Endpoint for IPv6","user":{"login":"danehans","id":1878195,"avatar_url":"https://avatars0.githubusercontent.com/u/1878195?v=3","gravatar_id":"","url":"https://api.github.com/users/danehans","html_url":"https://github.com/danehans","followers_url":"https://api.github.com/users/danehans/followers","following_url":"https://api.github.com/users/danehans/following{/other_user}","gists_url":"https://api.github.com/users/danehans/gists{/gist_id}","starred_url":"https://api.github.com/users/danehans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danehans/subscriptions","organizations_url":"https://api.github.com/users/danehans/orgs","repos_url":"https://api.github.com/users/danehans/repos","events_url":"https://api.github.com/users/danehans/events{/privacy}","received_events_url":"https://api.github.com/users/danehans/received_events","type":"User","site_admin":false},"labels":[{"id":608460743,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/ipv6","name":"area/ipv6","color":"0052cc","default":false},{"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":349530249,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/release-note-none","name":"release-note-none","color":"c2e0c6","default":false},{"id":482204804,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/cluster-ops","name":"sig/cluster-ops","color":"d2b48c","default":false},{"id":116712108,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/network","name":"sig/network","color":"d2b48c","default":false},{"id":253450978,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/L","name":"size/L","color":"ee9900","default":false}],"state":"open","locked":false,"assignee":{"login":"luxas","id":5442475,"avatar_url":"https://avatars2.githubusercontent.com/u/5442475?v=3","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},"assignees":[{"login":"luxas","id":5442475,"avatar_url":"https://avatars2.githubusercontent.com/u/5442475?v=3","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}],"milestone":null,"comments":6,"created_at":"2017-06-28T21:50:02Z","updated_at":"2017-07-07T07:10:53Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/48228","html_url":"https://github.com/kubernetes/kubernetes/pull/48228","diff_url":"https://github.com/kubernetes/kubernetes/pull/48228.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/48228.patch"},"body":"**What this PR does / why we need it**:\r\nPreviously, kubeadm would use ip:port to construct a master\r\nendpoint. This works fine for IPv4 addresses, but not for IPv6.\r\nPer [RFC 3986](https://www.ietf.org/rfc/rfc3986.txt), IPv6 requires the ip to be encased in brackets\r\nwhen being joined to a port with a colon.\r\n\r\nThis patch updates kubeadm to support wrapping a v6 address with\r\n[] to form the master endpoint url. Since this functionality is\r\nneeded in multiple areas, a dedicated util function was created\r\nfor this purpose.\r\n\r\n**Which issue this PR fixes**\r\nFixes Issue https://github.com/kubernetes/kubeadm/issues/334\r\n\r\n**Special notes for your reviewer**:\r\nAs part of a bigger effort to add IPv6 support to Kubernetes:\r\nIssue #1443\r\nIssue #47666\r\n\r\n**Release note**:\r\n```NONE\r\n```\r\n/area kubeadm\r\n/area ipv6\r\n/sig network\r\n/sig cluster-ops\r\n"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/313605565","html_url":"https://github.com/kubernetes/kubernetes/pull/48228#issuecomment-313605565","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/48228","id":313605565,"user":{"login":"luxas","id":5442475,"avatar_url":"https://avatars2.githubusercontent.com/u/5442475?v=3","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},"created_at":"2017-07-07T07:10:53Z","updated_at":"2017-07-07T07:10:53Z","body":"/retest"}}
{"actor":{"display_login":"luxas"}}