Commit Graph
738 Commits
Author SHA1 Message Date
Bryan Boreham ba2c27b9fe Merge pull request #253 from rade/refactor_and_explain_route_calculation
LGTM, allowing that the results are unbalanced (and unchanged in this respect from before this PR)
2014-12-01 15:37:40 +00:00
rade a17425989e Merge pull request #256 from squaremo/dont_splode
Don't splode in error type checks if given nil
2014-12-01 14:34:02 +00:00
Michael Bridgen 0764d7aaaf Don't splode in error type checks if given nil
These two testing utils assumed that they got an error, and checked
its type; however, the most likely failure case is that there's no
error (i.e., nil). In that case they would cause a NPE panic.
2014-12-01 14:13:41 +00:00
Matthias Radestock 9e2123fa4e Merge branch 'master' into refactor_and_explain_route_calculation 2014-12-01 13:50:34 +00:00
Matthias Radestock 89317a24ee oops 2014-12-01 12:56:02 +00:00
Matthias Radestock 37eb2a4598 fix typo 2014-12-01 11:04:51 +00:00
Matthias Radestock c4a64c8649 refactor and explain route calculation
This was rather impenetrable and had some significant code
duplication. So add some words of explanation, and refactor to remove
the duplication.
Some fly-by fixing of minor bug too: buildUnicastRoutes failed to
exclude asymmetric connections from the first hop.
2014-11-30 16:04:55 +00:00
Matthias Radestock 89a1e0fb24 eliminate a deadlock
Golang locks aren't re-entrant. As result one can get deadlocks on
RWMutexes like this:

goroutine #1: attempt to acquire read lock -> success
goroutine #2: attempt to acquire write lock -> wait
goroutine #1: attempt to acquire read lock again -> wait

(a pending write lock prevents subsequent acquisitions of read locks)

Peer.HasPathTo could run into this since it could attempt to acquire
the read lock on a peer multiple times if previously it had
encountered that peer via an asymmetric connection.
2014-11-30 15:48:46 +00:00
Matthias Radestock 2680e594dd rename 2014-11-28 16:27:11 +00:00
Michael Bridgen 7187d38047 Merge remote-tracking branch 'rade/189_assert_docker_networking' 2014-11-28 14:06:16 +00:00
Michael Bridgen 56056c06b1 Merge remote-tracking branch 'rade/186_stop_dns' 2014-11-28 12:55:43 +00:00
Bryan Boreham ccd6cb0440 Use full container names when populating weavedns. Fixes #250 2014-11-28 12:49:05 +00:00
Michael Bridgen 42e7c05ead Merge pull request #247 from rade/235_document_cross_domain_search
document how to configure search across sub-domains
2014-11-28 12:23:36 +00:00
Bryan Boreham f2ef3dcfe7 Merge pull request #243 from rade/240_dns_without_docker_net
LGTM.  Fixes #240
2014-11-28 12:16:40 +00:00
Bryan Boreham 33fb296769 Merge pull request #245 from rade/238_check_docker_version_when_using_dns
Looks good to me.  Fixes #238
2014-11-28 11:17:13 +00:00
Matthias Radestock 57242f790e check that weave container has an eth0
since w/o that we get an obscure error.

The most likely cause for not having an eth0 is that the docker daemon
has been configured to disable container networking.
2014-11-28 11:06:36 +00:00
Bryan Boreham a3482c9f2d Merge pull request #244 from rade/233_stop_on_docker_run_errors
LGTM.  Fixes #233
2014-11-28 11:01:51 +00:00
Matthias Radestock 8a6c7f7d22 Merge branch '233_stop_on_docker_run_errors' into 238_check_docker_version_when_using_dns 2014-11-28 10:42:33 +00:00
Matthias Radestock b18b24b3f3 --version -> -v 2014-11-28 10:40:59 +00:00
Matthias Radestock f8ec75d6fb document how to configure search across sub-domains 2014-11-28 10:35:28 +00:00
Matthias Radestock c070f0b08c add weave stop-dns
and in the process disentangle stopping dns from `weave stop`
2014-11-28 10:13:48 +00:00
Matthias Radestock cadf348cbd remove implemented feature from Limitations
This should have been part of #200
2014-11-28 10:04:28 +00:00
Matthias Radestock d707ed5df0 we should never write messages to stdout 2014-11-28 10:00:46 +00:00
Matthias Radestock fd6f19cc44 check for Docker version >= 1.2.0 when using "--with-dns"
since --dns-search=. is is new in that version
2014-11-28 09:10:14 +00:00
Matthias Radestock f6f1916c39 Merge branch '233_stop_on_docker_run_errors' into 238_check_docker_version_when_using_dns 2014-11-28 08:53:02 +00:00
Matthias Radestock 2da534445a stop on 'docker run' errors
This broke due to our workaround for
https://github.com/docker/docker/issues/8632, which affects Docker
version 1.3.0 only, so now we refuse to run with that.
2014-11-28 00:57:49 +00:00
Matthias Radestock 010d488ad7 refactor: simplify regexp 2014-11-27 17:32:44 +00:00
Matthias Radestock 56bfb09656 s/weaveIP/ip 2014-11-27 16:31:42 +00:00
Matthias Radestock 24702e3a7a stop weavedns from complaining when a container has no docker ip
e.g. when it was started with --net=none

weavedns wasn't actually using the docker-assigned ip for anything, so
this change is a simple matter of eradicating it from the code.
2014-11-27 16:13:06 +00:00
Matthias Radestock 65c77df279 less noise 2014-11-27 15:27:59 +00:00
Matthias Radestock 625df2e7d5 refactor(ish): move veth creation into one place
This simplifies the code, but means we do end up invoking ethtool on
the weave container's ethwe, which isn't necessary but harmless.
2014-11-27 11:11:29 +00:00
Matthias Radestock 29b3db6c05 run ethtool outside container netns
We want to run as little as possible inside the container netns.

Unfortunately we cannot make that change for the weave container,
since the interface on which we need to invoke ethtool is created by
docker and already inside the container netns by the time we get
control.
2014-11-27 10:20:25 +00:00
Matthias Radestock 1ba1f63776 refactor 2014-11-27 10:07:30 +00:00
Matthias Radestock d9ea3b44a1 always mark the interface as 'up' last
since that kinda acts as a marker that everything is ready
2014-11-27 09:56:12 +00:00
Matthias Radestock 8fac46a429 refactor: introduce a helper 2014-11-27 09:39:47 +00:00
Matthias Radestock ed1db251d8 even better comment 2014-11-27 08:45:49 +00:00
Matthias Radestock c8ecfec211 correct comment 2014-11-27 08:42:27 +00:00
Bryan Boreham 28a9d86c7e Merge pull request #200 from squaremo/issue195_populate_dns_on_start
LGTM.  Fixes #195 (apart from part 3)
2014-11-26 15:12:08 +00:00
Michael Bridgen b3d19d6e9d Wait for weaveDNS HTTP to be running before sending it names
This adds a no-op endpoint to the HTTP API at `/status`. The script
simply tries this until it succeeds or gets bored.
2014-11-26 14:18:26 +00:00
Michael Bridgen 6a076d05b0 Only get the DNS container IP once
`populate_dns` previously used http_call, which looks up the IP for a
container each time. I've factored the HTTP bit after the IP look-up
in http_call out, so it can be used directly. This involved switching
arguments around to make the tail call easier.
2014-11-26 14:18:26 +00:00
Michael Bridgen 3d8249b4c3 Populate DNS when starting the weaveDNS container 2014-11-26 14:18:26 +00:00
Bryan Boreham 235d620f55 Merge pull request #239 from squaremo/issue201_use_bridge_ip
LGTM.  Fixes #201
2014-11-26 14:12:02 +00:00
Michael Bridgen 2534977f99 Make weaveDNS use the docker bridge IP instead of its own
This means the `--dns` setting for containers will work even if the
weavedns container is restarted (and assigned a new docker network
IP).
2014-11-26 13:16:52 +00:00
Michael Bridgen 6e8060cb7f Merge branch '208_opt_in' of github.com:bboreham/weave into pr234_with_dns 2014-11-25 14:33:02 +00:00
Bryan Boreham 4046c3a8bc Undid extra check that there is at least one argument to 'docker run' 2014-11-25 14:13:40 +00:00
Bryan Boreham 0b051db5e1 Simplify arg parsing on weave run 2014-11-25 14:09:26 +00:00
David Wragg 00cd84868f Merge PR #231: Improve kernel version matcher
Fixes issue #185
2014-11-25 11:58:49 +00:00
Ilya Dmitrichenko 9280bb8268 Improve kernel version matcher (close #185) 2014-11-25 11:51:12 +00:00
Bryan Boreham 19f6c17f69 Two minus signs 2014-11-25 11:01:05 +00:00
Bryan Boreham 42f0cb883a Add --with-dns option to weave run 2014-11-24 20:14:01 +00:00