{"action":"created","issue":{"url":"https://api.github.com/repos/weaveworks/weave/issues/1642","labels_url":"https://api.github.com/repos/weaveworks/weave/issues/1642/labels{/name}","comments_url":"https://api.github.com/repos/weaveworks/weave/issues/1642/comments","events_url":"https://api.github.com/repos/weaveworks/weave/issues/1642/events","html_url":"https://github.com/weaveworks/weave/issues/1642","id":115333532,"number":1642,"title":"RFC: Package router and proxy in same container","user":{"login":"awh","id":1504438,"avatar_url":"https://avatars.githubusercontent.com/u/1504438?v=3","gravatar_id":"","url":"https://api.github.com/users/awh","html_url":"https://github.com/awh","followers_url":"https://api.github.com/users/awh/followers","following_url":"https://api.github.com/users/awh/following{/other_user}","gists_url":"https://api.github.com/users/awh/gists{/gist_id}","starred_url":"https://api.github.com/users/awh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awh/subscriptions","organizations_url":"https://api.github.com/users/awh/orgs","repos_url":"https://api.github.com/users/awh/repos","events_url":"https://api.github.com/users/awh/events{/privacy}","received_events_url":"https://api.github.com/users/awh/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/weaveworks/weave/labels/chore","name":"chore","color":"207de5"},{"url":"https://api.github.com/repos/weaveworks/weave/labels/[component/proxy]","name":"[component/proxy]","color":"fef2c0"},{"url":"https://api.github.com/repos/weaveworks/weave/labels/[component/router]","name":"[component/router]","color":"f7c6c7"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/weaveworks/weave/milestones/18","html_url":"https://github.com/weaveworks/weave/milestones/1.3.0","labels_url":"https://api.github.com/repos/weaveworks/weave/milestones/18/labels","id":1370646,"number":18,"title":"1.3.0","description":"","creator":{"login":"rade","id":109109,"avatar_url":"https://avatars.githubusercontent.com/u/109109?v=3","gravatar_id":"","url":"https://api.github.com/users/rade","html_url":"https://github.com/rade","followers_url":"https://api.github.com/users/rade/followers","following_url":"https://api.github.com/users/rade/following{/other_user}","gists_url":"https://api.github.com/users/rade/gists{/gist_id}","starred_url":"https://api.github.com/users/rade/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rade/subscriptions","organizations_url":"https://api.github.com/users/rade/orgs","repos_url":"https://api.github.com/users/rade/repos","events_url":"https://api.github.com/users/rade/events{/privacy}","received_events_url":"https://api.github.com/users/rade/received_events","type":"User","site_admin":false},"open_issues":30,"closed_issues":7,"state":"open","created_at":"2015-10-22T15:23:34Z","updated_at":"2015-11-06T10:25:56Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2015-11-05T17:27:11Z","updated_at":"2015-11-06T10:26:03Z","closed_at":null,"body":"Original reasons for running the proxy in a separate container:\r\n\r\n* Avoid the router having a hard dependency on Docker\r\n* Proxy needed to run in host netns to access Docker TCP port\r\n\r\nThe situation has now changed - the router already has a dependency on Docker due to the weaveDNS merge, and it also now runs in the host netns due to fast datapath. I therefore propose that we distribute the two in the same container image (exact implementation TBD) to obtain the following benefits:\r\n\r\n* Simplified `weave` script - in particular `weave launch` and `weave stop` won't have to deal with edge cases around making start/stop of multiple containers appear to be an atomic step\r\n* `weave status` and `weave report` can include proxy related information (inclusion of proxy at bottom of `weave status` is currently implemented via bash script hackery)\r\n* Elimination of races e.g. #1556 \r\n\r\nI suspect this may a) be contentious and b) have downsides I haven't thought of - the purpose of this issue is to act as a vehicle for discovery and documentation. Comments please.\r\n"},"comment":{"url":"https://api.github.com/repos/weaveworks/weave/issues/comments/154373060","html_url":"https://github.com/weaveworks/weave/issues/1642#issuecomment-154373060","issue_url":"https://api.github.com/repos/weaveworks/weave/issues/1642","id":154373060,"user":{"login":"awh","id":1504438,"avatar_url":"https://avatars.githubusercontent.com/u/1504438?v=3","gravatar_id":"","url":"https://api.github.com/users/awh","html_url":"https://github.com/awh","followers_url":"https://api.github.com/users/awh/followers","following_url":"https://api.github.com/users/awh/following{/other_user}","gists_url":"https://api.github.com/users/awh/gists{/gist_id}","starred_url":"https://api.github.com/users/awh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awh/subscriptions","organizations_url":"https://api.github.com/users/awh/orgs","repos_url":"https://api.github.com/users/awh/repos","events_url":"https://api.github.com/users/awh/events{/privacy}","received_events_url":"https://api.github.com/users/awh/received_events","type":"User","site_admin":false},"created_at":"2015-11-06T10:26:03Z","updated_at":"2015-11-06T10:26:03Z","body":"> By dependency, do you mean \"it references the go-dockerclient package\"? Or \"it depends on interaction with docker in order to work\"? The latter is not the case.\r\n\r\nWithout Docker, the feature in weaveDNS that depends on Docker is quiescent; without Docker, the proxy would be quiescent too.\r\n\r\n> It is not clear what you are proposing here... \r\n\r\nI am proposing a single process, with internal modularity so that we have the option to produce images with different feature sets in future if we need to.\r\n\r\n\r\n\r\n"}}