Bryan Boreham
c50968a0a4
Stop marshalling numbers as floats
2015-09-04 20:01:31 +01:00
Alfonso Acosta
ce5dd847e9
[proxy] Add --hostname-from-label
...
This allows registering container hostnames based on a label provided when
creating the container.
2015-09-04 17:02:07 +01:00
Matthias Radestock
633df0cdaf
refactor: extract docker API endpoint regexp creation
2015-09-04 13:40:07 +01:00
Paul Bellamy
32a12578f3
Don't use go-dockerclient to en/decode inspects in the proxy
2015-09-04 13:40:07 +01:00
Paul Bellamy
19ceb424c3
[proxy] refactoring out common marshalling logic
2015-09-04 13:40:07 +01:00
Paul Bellamy
e21a204eed
[proxy] add --rewrite-inspect flag
...
To return the weave ip/mac for docker inspect calls.
2015-09-04 13:40:06 +01:00
Paul Bellamy
704e6a8676
errcheck says I should handle this case
2015-09-04 10:40:47 +01:00
Matthias Radestock
8960a3a898
Merge branch '1.0'
...
Conflicts:
proxy/create_exec_interceptor.go
test/600_proxy_docker_py_test.sh
2015-08-28 20:29:43 +01:00
Matthias Radestock
24de98e188
refactor
2015-08-28 18:08:24 +01:00
Paul Bellamy
6b5f35e574
[proxy] Only replace the request body if we've modified it.
...
This is a temporary fix for a failure in docker-py tests:
"test_valid_no_config_specified".
2015-08-28 15:09:33 +01:00
Bryan Boreham
3d25620d13
In proxy, rewrite /etc/hosts from 'weave attach', via new utility weavehosts
2015-08-27 15:03:41 +01:00
Bryan Boreham
6e89b036e2
Wait for ethwe via netlink, not via polling or signals
...
('docker kill' breaks restart policy)
2015-08-27 15:03:41 +01:00
Matthias Radestock
375af0a7b9
Improve log messages for when the proxy ignores a container
...
- 'ignoring' could be misread as 'dropped request', so change that to
'leaving container alone'
- more elaborate reasons
2015-08-17 16:15:45 +01:00
Matthias Radestock
067f96023a
correct option name in log message
2015-08-17 09:37:46 +01:00
Paul Bellamy
0de292c0d4
[proxy] attach containers with --net=none to weave
2015-08-14 13:48:32 +01:00
Matthias Radestock
d5de0b41f9
Merge branch '1.0'
...
Conflicts:
proxy/proxy.go
2015-08-13 13:57:02 +01:00
Paul Bellamy
4961e83686
[proxy] support new docker 1.8 --net="default"
2015-08-13 13:36:47 +01:00
Paul Bellamy
f70dc6660a
[proxy] lock docker api usage to 1.15
2015-08-13 13:36:47 +01:00
Tom Wilkie
42debde746
Merge pull request #1259 from weaveworks/1257-proxy-chunking
...
Proxy chunking should handle arbitrarily large chunks
2015-08-10 15:57:19 +01:00
Paul Bellamy
6d7e784c25
review feedback
2015-08-10 11:02:51 +01:00
Paul Bellamy
f55655216f
[proxy] rewrite /etc/hosts from outside the container
...
Avoids problems when container user is non-root. Added a test for this
and the --no-rewrite-hosts flag.
2015-08-06 13:14:18 +01:00
Paul Bellamy
b85b90ef4e
Proxy chunking should handle arbitrarily large chunks
2015-08-04 17:47:51 +01:00
Paul Bellamy
1d1ebc103d
Merge remote-tracking branch 'upstream/1.0'
2015-08-04 14:29:12 +01:00
Paul Bellamy
7cc53c4c68
[proxy] Handle case where no command is specified.
...
The docker daemon can't do this because we set /w/w.
2015-08-04 12:32:42 +01:00
Paul Bellamy
55051f0194
Merge remote-tracking branch 'upstream/1.0'
2015-07-31 11:01:19 +01:00
Paul Bellamy
4958b8d37a
[proxy] Mount /w from the host for weavewaited containers
...
We set it at container create. Had tried also setting it at start, but
it seems to cause weird behaviour, and there is no way to do it from the
CLI.
2015-07-30 15:11:03 +01:00
Paul Bellamy
e2389a4061
[proxy] Don't try to attach if container failed to start
2015-07-30 13:31:47 +01:00
Matthias Radestock
3c107d675a
Merge branch '1.0'
2015-07-21 11:42:49 +01:00
Paul Bellamy
aa8466f688
[proxy] Mount weavewait readonly so it can't be tampered with
2015-07-21 11:30:56 +01:00
Paul Bellamy
dba116bae1
Merge remote-tracking branch 'upstream/1.0'
2015-07-21 10:13:24 +01:00
Michael Bridgen
c44c61dc83
Merge branch '1103-proxy-chunking' of github.com:weaveworks/weave into pr1112
2015-07-20 15:09:50 +01:00
Paul Bellamy
11663dd29f
[proxy] rewrote chunked response handler
...
1) We cannot send "Connection: close", because the fsouza docker client
expects the tcp socket to stay open between requests.
2) Because we cannot force-close the connection, we can't hijack the
connection (because go's net/http doesn't let use un-hijack it).
3) Because we need to maintain the individual chunking of messages (for
docker-py), we can't just copy the response body, as Go will remove and
re-add the chunking willy-nilly.
Therefore, we have to read each chunk one-by-one, and flush the
ResponseWriter after each one.
2015-07-20 14:43:16 +01:00
Paul Bellamy
3f4b385b0f
[proxy] If we can't CloseWrite a connection (tls), just Close it so clients don't hang
2015-07-17 14:09:27 +01:00
Paul Bellamy
5fc16a8267
[proxy] use a waitgroup as it's more semantically accurate
2015-07-17 14:08:51 +01:00
Paul Bellamy
a0876becbc
Merge remote-tracking branch 'upstream/1.0'
...
Conflicts:
proxy/create_container_interceptor.go
proxy/create_exec_interceptor.go
proxy/proxy.go
proxy/start_container_interceptor.go
2015-07-16 15:29:29 +01:00
Paul Bellamy
c6fa9cb17e
refactor weaveCIDRsFromConfig to return an error message
2015-07-16 15:15:32 +01:00
Paul Bellamy
9619a27f8c
[proxy] adding log message for ignored containers
2015-07-16 14:01:22 +01:00
Paul Bellamy
c13154eea9
updating comment as per golint
2015-07-16 13:58:30 +01:00
Paul Bellamy
1132d26d47
[proxy] do not weave attach containers in '--net=host|container:<name|id>'
2015-07-16 13:58:27 +01:00
Matthias Radestock
4d887c8a55
Merge branch '1.0'
...
Conflicts:
proxy/create_exec_interceptor.go
test/610_proxy_wait_for_weave_test.sh
2015-07-15 18:07:11 +01:00
Paul Bellamy
e4422205e8
[proxy] should not attempt weavewait in on weave container's execs
2015-07-15 16:14:14 +01:00
Matthias Radestock
9a4bbb55da
Merge branch '1.0'
...
Conflicts:
proxy/common.go
weave
2015-07-14 18:09:25 +01:00
Matthias Radestock
7ae06ef00d
Merge pull request #1126 from weaveworks/issues/1018-more-flexible-hostname-derivation
...
[proxy] More flexible container name -> hostname derivation
Closes #1018 .
2015-07-14 17:31:53 +01:00
Tom Wilkie
8b061fd555
Gossip-based DNS embedded in the router.
...
- Nameserver holds a sorted list of (hostname, peer, container id, ip) tuples.
- Entries are gossiped using topology gossip / broadcast - only new/updated entries
are propogated as expected.
- Entries for a given peer are removed when the connection to the peer is lost.
- Entries are tombstoned when containers die. Tombstones are kept for 10mins,
as they do not need to survive partition, only gossip propagation delay.
2015-07-14 16:00:38 +00:00
Paul Bellamy
acd8bdec21
[proxy] respect custom DOCKER_BRIDGE
2015-07-14 16:33:35 +01:00
Alfonso Acosta
ded3d6b40b
Address PR comments
2015-07-14 15:31:44 +00:00
Alfonso Acosta
4f82dc97fd
[proxy] More flexible container name -> hostname derivation
...
Provides to new two new flags: `--hostname-match <regexp>`
and `--hostname-replacement <replacement>`. When launching a container, its name
matched against regular expression `<regexp>`. Then, based on that match,
`<replacement>` will be used to generate a hostname, which will ultimately be
handed over to weaveDNS for registration.
The substitution is implemented with
https://golang.org/pkg/regexp/#Regexp.ReplaceAllString . Thus, references to
regexp substitution groups should be prepended with a dollar sign.
For instance, if we provide `--hostname-match '^aws-[0-9]+-(.*)$'` and
`--hostname-replacement 'my-app-$1'`, running a container named
`aws-12798186823-foo` through WeaveProxy will lead to WeaveDNS registering
`my-app-foo`.
Closes #1018
2015-07-14 14:41:44 +00:00
Paul Bellamy
e4458372e8
[proxy] weavewait rewrites /etc/hosts so weave ip is returned first from 'hostname -i'
...
Adds a --no-rewrite-hosts flag to the proxy, and be default, removes the
docker IP from hosts. We only discard the docker host when it exists, so
--net=none works.
2015-07-10 13:57:20 +01:00
Paul Bellamy
7821412bf7
[proxy] print all stderr from callWeave to the proxy logs, even if successful
2015-07-03 15:45:09 +01:00
Matthias Radestock
07ee2df822
cosmetic(ish): use dotted import. like everywhere else
2015-07-02 21:07:51 +01:00