{"action":"created","comment":{"url":"https://api.github.com/repos/weaveworks/weave/pulls/comments/192704847","pull_request_review_id":125528680,"id":192704847,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5MjcwNDg0Nw==","diff_hunk":"@@ -56,7 +57,7 @@ func resetIPTables(ipt *iptables.IPTables) error {\n }\n \n func resetIPSets(ips ipset.Interface) error {\n-\t// Remove ipsets prefixed `weave-` only\n+\t// Remove ipsets prefixed `weave-` excluding weave-no-masq-local (used by weaver).","path":"prog/weave-npc/main.go","position":16,"original_position":16,"commit_id":"20c1526e16778ef4fe5c97765296a441173e40e6","original_commit_id":"721b54b0e928747af4b28de1f406bb7ccc0084f6","user":{"login":"brb","id":122571,"node_id":"MDQ6VXNlcjEyMjU3MQ==","avatar_url":"https://avatars1.githubusercontent.com/u/122571?v=4","gravatar_id":"","url":"https://api.github.com/users/brb","html_url":"https://github.com/brb","followers_url":"https://api.github.com/users/brb/followers","following_url":"https://api.github.com/users/brb/following{/other_user}","gists_url":"https://api.github.com/users/brb/gists{/gist_id}","starred_url":"https://api.github.com/users/brb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brb/subscriptions","organizations_url":"https://api.github.com/users/brb/orgs","repos_url":"https://api.github.com/users/brb/repos","events_url":"https://api.github.com/users/brb/events{/privacy}","received_events_url":"https://api.github.com/users/brb/received_events","type":"User","site_admin":false},"body":"I didn't want to introduce a new prefix, but having the new prefix is probably better than the if clauses.","created_at":"2018-06-04T11:12:18Z","updated_at":"2018-06-04T11:12:19Z","html_url":"https://github.com/weaveworks/weave/pull/3298#discussion_r192704847","pull_request_url":"https://api.github.com/repos/weaveworks/weave/pulls/3298","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/weaveworks/weave/pulls/comments/192704847"},"html":{"href":"https://github.com/weaveworks/weave/pull/3298#discussion_r192704847"},"pull_request":{"href":"https://api.github.com/repos/weaveworks/weave/pulls/3298"}},"in_reply_to_id":190258264},"pull_request":{"url":"https://api.github.com/repos/weaveworks/weave/pulls/3298","id":187669260,"node_id":"MDExOlB1bGxSZXF1ZXN0MTg3NjY5MjYw","html_url":"https://github.com/weaveworks/weave/pull/3298","diff_url":"https://github.com/weaveworks/weave/pull/3298.diff","patch_url":"https://github.com/weaveworks/weave/pull/3298.patch","issue_url":"https://api.github.com/repos/weaveworks/weave/issues/3298","number":3298,"state":"open","locked":false,"title":"2924: Preserve the client source IP","user":{"login":"brb","id":122571,"node_id":"MDQ6VXNlcjEyMjU3MQ==","avatar_url":"https://avatars1.githubusercontent.com/u/122571?v=4","gravatar_id":"","url":"https://api.github.com/users/brb","html_url":"https://github.com/brb","followers_url":"https://api.github.com/users/brb/followers","following_url":"https://api.github.com/users/brb/following{/other_user}","gists_url":"https://api.github.com/users/brb/gists{/gist_id}","starred_url":"https://api.github.com/users/brb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brb/subscriptions","organizations_url":"https://api.github.com/users/brb/orgs","repos_url":"https://api.github.com/users/brb/repos","events_url":"https://api.github.com/users/brb/events{/privacy}","received_events_url":"https://api.github.com/users/brb/received_events","type":"User","site_admin":false},"body":"This PR implements a mechanism for preserving the client source IP addr when accessing a Service annotated with `service.spec.externalTrafficPolicy=Local`.\r\n\r\nIf the `--no-masq-local` flag is passed to weaver, it will dynamically maintain the `weave-no-masq-local` ipset containing CIDRs allocated by IPAM for the particular weaver. The ipset is used by the iptables rule: `iptables -t nat -I WEAVE 1 -m set --match-set weave-no-masq-local dst -j RETURN`. The rule prevents external traffic to be MASQUERADEd before being sent to a Pod.\r\n\r\nI suggest to read each commit separately when reviewing this PR.\r\n\r\nFixes #2924.","created_at":"2018-05-13T13:09:19Z","updated_at":"2018-06-04T11:12:19Z","closed_at":null,"merged_at":null,"merge_commit_sha":"572fe9dcf553e7125872bf3f37ea6f55a8c6413e","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":{"url":"https://api.github.com/repos/weaveworks/weave/milestones/73","html_url":"https://github.com/weaveworks/weave/milestone/73","labels_url":"https://api.github.com/repos/weaveworks/weave/milestones/73/labels","id":3253106,"node_id":"MDk6TWlsZXN0b25lMzI1MzEwNg==","number":73,"title":"2.4","description":"","creator":{"login":"brb","id":122571,"node_id":"MDQ6VXNlcjEyMjU3MQ==","avatar_url":"https://avatars1.githubusercontent.com/u/122571?v=4","gravatar_id":"","url":"https://api.github.com/users/brb","html_url":"https://github.com/brb","followers_url":"https://api.github.com/users/brb/followers","following_url":"https://api.github.com/users/brb/following{/other_user}","gists_url":"https://api.github.com/users/brb/gists{/gist_id}","starred_url":"https://api.github.com/users/brb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brb/subscriptions","organizations_url":"https://api.github.com/users/brb/orgs","repos_url":"https://api.github.com/users/brb/repos","events_url":"https://api.github.com/users/brb/events{/privacy}","received_events_url":"https://api.github.com/users/brb/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":2,"state":"open","created_at":"2018-04-09T16:20:07Z","updated_at":"2018-06-04T08:02:36Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/weaveworks/weave/pulls/3298/commits","review_comments_url":"https://api.github.com/repos/weaveworks/weave/pulls/3298/comments","review_comment_url":"https://api.github.com/repos/weaveworks/weave/pulls/comments{/number}","comments_url":"https://api.github.com/repos/weaveworks/weave/issues/3298/comments","statuses_url":"https://api.github.com/repos/weaveworks/weave/statuses/20c1526e16778ef4fe5c97765296a441173e40e6","head":{"label":"weaveworks:issues/2924-preserve-src-ip-on-local","ref":"issues/2924-preserve-src-ip-on-local","sha":"20c1526e16778ef4fe5c97765296a441173e40e6","user":{"login":"weaveworks","id":9976052,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5NzYwNTI=","avatar_url":"https://avatars1.githubusercontent.com/u/9976052?v=4","gravatar_id":"","url":"https://api.github.com/users/weaveworks","html_url":"https://github.com/weaveworks","followers_url":"https://api.github.com/users/weaveworks/followers","following_url":"https://api.github.com/users/weaveworks/following{/other_user}","gists_url":"https://api.github.com/users/weaveworks/gists{/gist_id}","starred_url":"https://api.github.com/users/weaveworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weaveworks/subscriptions","organizations_url":"https://api.github.com/users/weaveworks/orgs","repos_url":"https://api.github.com/users/weaveworks/repos","events_url":"https://api.github.com/users/weaveworks/events{/privacy}","received_events_url":"https://api.github.com/users/weaveworks/received_events","type":"Organization","site_admin":false},"repo":{"id":23059575,"node_id":"MDEwOlJlcG9zaXRvcnkyMzA1OTU3NQ==","name":"weave","full_name":"weaveworks/weave","owner":{"login":"weaveworks","id":9976052,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5NzYwNTI=","avatar_url":"https://avatars1.githubusercontent.com/u/9976052?v=4","gravatar_id":"","url":"https://api.github.com/users/weaveworks","html_url":"https://github.com/weaveworks","followers_url":"https://api.github.com/users/weaveworks/followers","following_url":"https://api.github.com/users/weaveworks/following{/other_user}","gists_url":"https://api.github.com/users/weaveworks/gists{/gist_id}","starred_url":"https://api.github.com/users/weaveworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weaveworks/subscriptions","organizations_url":"https://api.github.com/users/weaveworks/orgs","repos_url":"https://api.github.com/users/weaveworks/repos","events_url":"https://api.github.com/users/weaveworks/events{/privacy}","received_events_url":"https://api.github.com/users/weaveworks/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/weaveworks/weave","description":"Simple, resilient multi-host Docker networking and more.","fork":false,"url":"https://api.github.com/repos/weaveworks/weave","forks_url":"https://api.github.com/repos/weaveworks/weave/forks","keys_url":"https://api.github.com/repos/weaveworks/weave/keys{/key_id}","collaborators_url":"https://api.github.com/repos/weaveworks/weave/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/weaveworks/weave/teams","hooks_url":"https://api.github.com/repos/weaveworks/weave/hooks","issue_events_url":"https://api.github.com/repos/weaveworks/weave/issues/events{/number}","events_url":"https://api.github.com/repos/weaveworks/weave/events","assignees_url":"https://api.github.com/repos/weaveworks/weave/assignees{/user}","branches_url":"https://api.github.com/repos/weaveworks/weave/branches{/branch}","tags_url":"https://api.github.com/repos/weaveworks/weave/tags","blobs_url":"https://api.github.com/repos/weaveworks/weave/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/weaveworks/weave/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/weaveworks/weave/git/refs{/sha}","trees_url":"https://api.github.com/repos/weaveworks/weave/git/trees{/sha}","statuses_url":"https://api.github.com/repos/weaveworks/weave/statuses/{sha}","languages_url":"https://api.github.com/repos/weaveworks/weave/languages","stargazers_url":"https://api.github.com/repos/weaveworks/weave/stargazers","contributors_url":"https://api.github.com/repos/weaveworks/weave/contributors","subscribers_url":"https://api.github.com/repos/weaveworks/weave/subscribers","subscription_url":"https://api.github.com/repos/weaveworks/weave/subscription","commits_url":"https://api.github.com/repos/weaveworks/weave/commits{/sha}","git_commits_url":"https://api.github.com/repos/weaveworks/weave/git/commits{/sha}","comments_url":"https://api.github.com/repos/weaveworks/weave/comments{/number}","issue_comment_url":"https://api.github.com/repos/weaveworks/weave/issues/comments{/number}","contents_url":"https://api.github.com/repos/weaveworks/weave/contents/{+path}","compare_url":"https://api.github.com/repos/weaveworks/weave/compare/{base}...{head}","merges_url":"https://api.github.com/repos/weaveworks/weave/merges","archive_url":"https://api.github.com/repos/weaveworks/weave/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/weaveworks/weave/downloads","issues_url":"https://api.github.com/repos/weaveworks/weave/issues{/number}","pulls_url":"https://api.github.com/repos/weaveworks/weave/pulls{/number}","milestones_url":"https://api.github.com/repos/weaveworks/weave/milestones{/number}","notifications_url":"https://api.github.com/repos/weaveworks/weave/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/weaveworks/weave/labels{/name}","releases_url":"https://api.github.com/repos/weaveworks/weave/releases{/id}","deployments_url":"https://api.github.com/repos/weaveworks/weave/deployments","created_at":"2014-08-18T05:19:07Z","updated_at":"2018-06-04T05:14:38Z","pushed_at":"2018-06-04T11:10:02Z","git_url":"git://github.com/weaveworks/weave.git","ssh_url":"git@github.com:weaveworks/weave.git","clone_url":"https://github.com/weaveworks/weave.git","svn_url":"https://github.com/weaveworks/weave","homepage":"https://www.weave.works","size":18318,"stargazers_count":5112,"watchers_count":5112,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":448,"mirror_url":null,"archived":false,"open_issues_count":360,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":448,"open_issues":360,"watchers":5112,"default_branch":"master"}},"base":{"label":"weaveworks:master","ref":"master","sha":"48aaac90fba8013f7e786692e7e4ba609fb3f750","user":{"login":"weaveworks","id":9976052,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5NzYwNTI=","avatar_url":"https://avatars1.githubusercontent.com/u/9976052?v=4","gravatar_id":"","url":"https://api.github.com/users/weaveworks","html_url":"https://github.com/weaveworks","followers_url":"https://api.github.com/users/weaveworks/followers","following_url":"https://api.github.com/users/weaveworks/following{/other_user}","gists_url":"https://api.github.com/users/weaveworks/gists{/gist_id}","starred_url":"https://api.github.com/users/weaveworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weaveworks/subscriptions","organizations_url":"https://api.github.com/users/weaveworks/orgs","repos_url":"https://api.github.com/users/weaveworks/repos","events_url":"https://api.github.com/users/weaveworks/events{/privacy}","received_events_url":"https://api.github.com/users/weaveworks/received_events","type":"Organization","site_admin":false},"repo":{"id":23059575,"node_id":"MDEwOlJlcG9zaXRvcnkyMzA1OTU3NQ==","name":"weave","full_name":"weaveworks/weave","owner":{"login":"weaveworks","id":9976052,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5NzYwNTI=","avatar_url":"https://avatars1.githubusercontent.com/u/9976052?v=4","gravatar_id":"","url":"https://api.github.com/users/weaveworks","html_url":"https://github.com/weaveworks","followers_url":"https://api.github.com/users/weaveworks/followers","following_url":"https://api.github.com/users/weaveworks/following{/other_user}","gists_url":"https://api.github.com/users/weaveworks/gists{/gist_id}","starred_url":"https://api.github.com/users/weaveworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weaveworks/subscriptions","organizations_url":"https://api.github.com/users/weaveworks/orgs","repos_url":"https://api.github.com/users/weaveworks/repos","events_url":"https://api.github.com/users/weaveworks/events{/privacy}","received_events_url":"https://api.github.com/users/weaveworks/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/weaveworks/weave","description":"Simple, resilient multi-host Docker networking and more.","fork":false,"url":"https://api.github.com/repos/weaveworks/weave","forks_url":"https://api.github.com/repos/weaveworks/weave/forks","keys_url":"https://api.github.com/repos/weaveworks/weave/keys{/key_id}","collaborators_url":"https://api.github.com/repos/weaveworks/weave/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/weaveworks/weave/teams","hooks_url":"https://api.github.com/repos/weaveworks/weave/hooks","issue_events_url":"https://api.github.com/repos/weaveworks/weave/issues/events{/number}","events_url":"https://api.github.com/repos/weaveworks/weave/events","assignees_url":"https://api.github.com/repos/weaveworks/weave/assignees{/user}","branches_url":"https://api.github.com/repos/weaveworks/weave/branches{/branch}","tags_url":"https://api.github.com/repos/weaveworks/weave/tags","blobs_url":"https://api.github.com/repos/weaveworks/weave/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/weaveworks/weave/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/weaveworks/weave/git/refs{/sha}","trees_url":"https://api.github.com/repos/weaveworks/weave/git/trees{/sha}","statuses_url":"https://api.github.com/repos/weaveworks/weave/statuses/{sha}","languages_url":"https://api.github.com/repos/weaveworks/weave/languages","stargazers_url":"https://api.github.com/repos/weaveworks/weave/stargazers","contributors_url":"https://api.github.com/repos/weaveworks/weave/contributors","subscribers_url":"https://api.github.com/repos/weaveworks/weave/subscribers","subscription_url":"https://api.github.com/repos/weaveworks/weave/subscription","commits_url":"https://api.github.com/repos/weaveworks/weave/commits{/sha}","git_commits_url":"https://api.github.com/repos/weaveworks/weave/git/commits{/sha}","comments_url":"https://api.github.com/repos/weaveworks/weave/comments{/number}","issue_comment_url":"https://api.github.com/repos/weaveworks/weave/issues/comments{/number}","contents_url":"https://api.github.com/repos/weaveworks/weave/contents/{+path}","compare_url":"https://api.github.com/repos/weaveworks/weave/compare/{base}...{head}","merges_url":"https://api.github.com/repos/weaveworks/weave/merges","archive_url":"https://api.github.com/repos/weaveworks/weave/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/weaveworks/weave/downloads","issues_url":"https://api.github.com/repos/weaveworks/weave/issues{/number}","pulls_url":"https://api.github.com/repos/weaveworks/weave/pulls{/number}","milestones_url":"https://api.github.com/repos/weaveworks/weave/milestones{/number}","notifications_url":"https://api.github.com/repos/weaveworks/weave/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/weaveworks/weave/labels{/name}","releases_url":"https://api.github.com/repos/weaveworks/weave/releases{/id}","deployments_url":"https://api.github.com/repos/weaveworks/weave/deployments","created_at":"2014-08-18T05:19:07Z","updated_at":"2018-06-04T05:14:38Z","pushed_at":"2018-06-04T11:10:02Z","git_url":"git://github.com/weaveworks/weave.git","ssh_url":"git@github.com:weaveworks/weave.git","clone_url":"https://github.com/weaveworks/weave.git","svn_url":"https://github.com/weaveworks/weave","homepage":"https://www.weave.works","size":18318,"stargazers_count":5112,"watchers_count":5112,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":448,"mirror_url":null,"archived":false,"open_issues_count":360,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":448,"open_issues":360,"watchers":5112,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/weaveworks/weave/pulls/3298"},"html":{"href":"https://github.com/weaveworks/weave/pull/3298"},"issue":{"href":"https://api.github.com/repos/weaveworks/weave/issues/3298"},"comments":{"href":"https://api.github.com/repos/weaveworks/weave/issues/3298/comments"},"review_comments":{"href":"https://api.github.com/repos/weaveworks/weave/pulls/3298/comments"},"review_comment":{"href":"https://api.github.com/repos/weaveworks/weave/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/weaveworks/weave/pulls/3298/commits"},"statuses":{"href":"https://api.github.com/repos/weaveworks/weave/statuses/20c1526e16778ef4fe5c97765296a441173e40e6"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"brb"}}