{"action":"created","issue":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/9210","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/9210/labels{/name}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/9210/comments","events_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/9210/events","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/9210","id":84740997,"number":9210,"title":"Implement Iptables based Proxy","user":{"login":"BenTheElder","id":917931,"avatar_url":"https://avatars.githubusercontent.com/u/917931?v=3","gravatar_id":"","url":"https://api.github.com/users/BenTheElder","html_url":"https://github.com/BenTheElder","followers_url":"https://api.github.com/users/BenTheElder/followers","following_url":"https://api.github.com/users/BenTheElder/following{/other_user}","gists_url":"https://api.github.com/users/BenTheElder/gists{/gist_id}","starred_url":"https://api.github.com/users/BenTheElder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BenTheElder/subscriptions","organizations_url":"https://api.github.com/users/BenTheElder/orgs","repos_url":"https://api.github.com/users/BenTheElder/repos","events_url":"https://api.github.com/users/BenTheElder/events{/privacy}","received_events_url":"https://api.github.com/users/BenTheElder/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"}],"state":"open","locked":false,"assignee":{"login":"thockin","id":5595220,"avatar_url":"https://avatars.githubusercontent.com/u/5595220?v=3","gravatar_id":"","url":"https://api.github.com/users/thockin","html_url":"https://github.com/thockin","followers_url":"https://api.github.com/users/thockin/followers","following_url":"https://api.github.com/users/thockin/following{/other_user}","gists_url":"https://api.github.com/users/thockin/gists{/gist_id}","starred_url":"https://api.github.com/users/thockin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thockin/subscriptions","organizations_url":"https://api.github.com/users/thockin/orgs","repos_url":"https://api.github.com/users/thockin/repos","events_url":"https://api.github.com/users/thockin/events{/privacy}","received_events_url":"https://api.github.com/users/thockin/received_events","type":"User","site_admin":false},"milestone":null,"comments":8,"created_at":"2015-06-03T19:44:37Z","updated_at":"2015-06-14T15:10:43Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/9210","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/9210","diff_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/9210.diff","patch_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/9210.patch"},"body":"NOT READY TO MERGE.\r\n\r\nThis is tracking PR for https://github.com/GoogleCloudPlatform/kubernetes/issues/3760.\r\n\r\nIn the current state iptables-restore is implemented, a dummy loadbalancer for for tracking endpoints, an iptables based proxier that periodically syncs rules via iptables-restore and handles service update events.\r\n\r\nTODO:\r\n- [x] Write new Proxier and LoadBalancer (IptablesProxier and DummyLoadBalancerIptables)\r\n- [x] Update kube-proxy to select between old Proxier and ProxierIptables\r\n- [x] Basic rule generation (probably broken, and missing sticky sessions, but at least partially working)\r\n- [x] Sticky Sessions\r\n- [ ] Vet logging levels (I tried to keep these similar to the old proxy, but we should probably review them)\r\n- [ ] Testing. We need more tests and this needs to be more thoroughly run through e2e when done.\r\n- [ ] iptables-save (?)\r\n\r\nNotes: \r\n - We need to determine when we want to use ProxierIptables, currently we have a dummy function that returns true, we need to pick a suitable iptables version to support and check for that (the iptables package has a method for getting the version already, so we just need to determine what we need).\r\n\r\n - The iptables-restore functionality uses `os/exec` because we need piping to stdin and the current kubernetes `pkg/util/exec` package does not provide this. This needs auditing, and we probably need to either add this and mocking to `pkg/util/exec` or add mocking directly to the new `iptables.Restore(...)` functionality."},"comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/comments/111840530","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/9210#issuecomment-111840530","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/9210","id":111840530,"user":{"login":"jdef","id":2348332,"avatar_url":"https://avatars.githubusercontent.com/u/2348332?v=3","gravatar_id":"","url":"https://api.github.com/users/jdef","html_url":"https://github.com/jdef","followers_url":"https://api.github.com/users/jdef/followers","following_url":"https://api.github.com/users/jdef/following{/other_user}","gists_url":"https://api.github.com/users/jdef/gists{/gist_id}","starred_url":"https://api.github.com/users/jdef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdef/subscriptions","organizations_url":"https://api.github.com/users/jdef/orgs","repos_url":"https://api.github.com/users/jdef/repos","events_url":"https://api.github.com/users/jdef/events{/privacy}","received_events_url":"https://api.github.com/users/jdef/received_events","type":"User","site_admin":false},"created_at":"2015-06-14T15:10:43Z","updated_at":"2015-06-14T15:10:43Z","body":"How easy will be to automate the removal of the new iptables rules, if kube-proxy is terminated and k8s is uninstalled from a node?\r\n\r\nsee https://github.com/mesosphere/kubernetes-mesos/issues/353"}}