Commit Graph
758 Commits
Author SHA1 Message Date
Matthias Radestock 11e2515f70 Merge pull request #1968 from weaveworks/refactor-veth-creation
"refactor" veth creation
2016-02-10 13:49:13 +00:00
Adam Harrison 4cee647e73 Make weaveutil container-addrs observe $PROCFS 2016-02-09 22:25:47 +00:00
Matthias Radestock 7ea3299dc6 oops
/usr/local/bin/weave: 1172: [: true false: unexpected operator

This got broken in #1941.
2016-02-09 22:05:11 +00:00
Matthias Radestock 5707581ba3 Merge pull request #1964 from weaveworks/weave-veth-cleanup
Fix attach-bridge bugs
2016-02-09 21:11:27 +00:00
Adam Harrison 264d5e4828 Make attach-bridge iptables rule insertion idempotent 2016-02-09 20:42:59 +00:00
Matthias Radestock 9311294d9c "refactor" veth creation
Invoke the new create_veth from a few places, eliminating code
duplication and inconsistencies.

Semantic differences:

- init_bridged_fastdp now skips the veth creation/config if the veth
  already exists. This eliminates routing blips. Though in reality
  something very strange must have happened to end up in this code
  with an existing veth.
- init_bridged_fastdp no longer deletes the $BRIDGE and $DATAPATH when
  veth creation/configuration fails. This is consistent with
  init_bridge, which does not delete $BRIDGE when something goes
  wrong. And it is generally desirable since the init_* functions are
  invoked on potentially existing bridges - e.g. following 'weave
  stop'.
- attach_bridge and setup_router_iface_bridge used to mark one veth
  end 'up', then invoke add_iface_* for it, and then mark the other
  end 'up'. create_veth marks both ends 'up' first. This makes no
  practical difference in these cases.

notable other differences:
- we detect veth presence by checking whether *both* ends are present,
  rather than just one. We deliberately continue to (and fail in) the
  veth creation if one end already exists. This can only happen when
  we've stumbled across a different interface, since a veth end cannot
  exist independently. So it is right to treat this as an error.
- init_bridged_fastdp invokes add_iface_bridge instead of duplicating
  what that does. Also makes for nice coherence with the
  add_iface_fastdp it is invoking too.
2016-02-09 19:22:14 +00:00
Adam Harrison 2bfc86e7b2 Cleanup attach-bridge iptables rule 2016-02-09 16:51:04 +00:00
Adam Harrison 36ee8bacb0 Remove all vethwe* interfaces in reset 2016-02-09 16:48:03 +00:00
Matthias Radestock 1bb1108b91 tiny refactor: use ${CONTAINER_IFNAME} for name construction 2016-02-09 16:40:58 +00:00
Matthias Radestock a77201bf77 Merge pull request #1955 from weaveworks/weave-attach-bridge
'attach-bridge' feature to link an existing bridge netdev with the weave bridge
2016-02-09 15:45:28 +00:00
Adam Harrison a3d842bf4a Implement attach-bridge 2016-02-09 15:20:11 +00:00
Matthias Radestock 98d76e1099 Merge pull request #1941 from weaveworks/issues/1873-check-running-master
Improve visibility of startup problems

Fixes #1873.
2016-02-04 16:50:50 +00:00
Matthias Radestock f2a1b3829d tweak: consistency 2016-02-04 16:19:29 +00:00
Bryan Boreham 1d3c80ab49 Merge pull request #1944 from weaveworks/issues/1940-remove-proxy-weaveps-dep
Use netlink instead of shelling out to `weave ps`
2016-02-04 13:45:58 +00:00
Bryan Boreham 38013d2f41 Kill zombies 2016-02-04 12:52:16 +00:00
Adam Harrison 65c48707f6 Use netlink instead of shelling out to weave ps 2016-02-04 12:51:18 +00:00
Matthias Radestock ae725e333a make plugin pay attention to WEAVE_HTTP_ADDR 2016-02-03 11:54:05 +00:00
Matthias Radestock dde244160b make proxy pay attention to WEAVE_HTTP_ADDR 2016-02-03 11:28:38 +00:00
Matthias Radestock fdd006022d make weave control address configurable 2016-02-02 21:38:02 +00:00
Matthias Radestock e3c19d6414 get rid of container_ip
We already know what the weave container IP is, since now it runs in
the host netns.
2016-02-02 20:48:49 +00:00
Matthias Radestock b1e6bc2929 Always use host netns
which allows us to get rid of port mappings and a whole bunch of other
code.
2016-02-02 20:48:49 +00:00
Matthias Radestock faa7bad8d8 refactor with_container_netns
make it set CONTAINER_NETNS instead of CONTAINER_PID (well, it still
sets the latter, but not for effect), which reduces coupling.
2016-02-02 13:37:17 +00:00
Matthias Radestock 710c13ced9 correct typo in comment 2016-02-02 13:02:33 +00:00
Adam Harrison 6bd8da905e Refactor: uniform use of weave_container_addresses 2016-02-02 11:30:36 +00:00
Adam Harrison 839f534350 Merge branch '1.4' 2016-02-01 15:30:51 +00:00
Matthias Radestock 18c26e9fbb don't set the interface 'up' before it is fully configured
This was causing container entrypoints to execute too early,
e.g. before the interface had been given an IP address. But only when
running with --no-multicast-route, since otherwise weavewait is
waiting for the multicast route to appear.

Fixes #1942.
2016-02-01 12:04:15 +00:00
Bryan Boreham 0a4b3a04ba Wait for plugin status via unix socket 2016-02-01 10:11:46 +00:00
Matthias Radestock f8fa37c895 Merge branch '1.4' 2016-01-30 11:16:30 +00:00
Matthias Radestock b54efbde69 fix typo in comment 2016-01-30 11:15:57 +00:00
Bryan Boreham c2a869491f Check State.Restarting as well as State.Running 2016-01-29 17:41:02 +00:00
Bryan Boreham a750ef8033 Don't check if container is running when we only want its ID.
This avoids trying to decide if "restarting" is as good as "running".
In wait_for_status we now explitly check_running, and
in dns_add/remove we add an extra check_running test.
2016-01-29 17:41:02 +00:00
Adam Harrison 81c49e6005 Merge pull request #1938 from weaveworks/issues/1827-stopped-version
Check if container is running before using its image to ask for version
2016-01-29 15:57:15 +00:00
Adam Harrison 11ccada740 Merge pull request #1939 from weaveworks/issues/1937-dont-rm
Don't rm old containers, in case we want the log
2016-01-29 15:47:40 +00:00
Matthias Radestock b2c9802aa2 Merge branch '1.4' 2016-01-29 15:25:50 +00:00
Matthias Radestock c6f356a167 Merge pull request #1935 from weaveworks/issues/1757-volumes-container
Reduce docker volumes for weavewait to just one set per release

Fixes #1757.
2016-01-29 15:24:42 +00:00
Bryan Boreham 3c6211f9f2 Don't rm old containers, in case we want the log 2016-01-29 15:07:14 +00:00
Bryan Boreham b9502ee1cd Check if container is running before using its image to ask for version 2016-01-29 14:43:02 +00:00
Matthias Radestock 20dab1f8fe Merge branch '1.4' 2016-01-29 12:46:08 +00:00
Bryan Boreham ea50b3d5cc Create a different weavevolumes container for each Weave version.
They will be named 'weavevolumes-v1.4.3', 'weavevolumes-latest', etc.
Use a label to identify these containers so they can all be removed on `weave reset`.
2016-01-29 12:22:22 +00:00
Bryan Boreham 6d0e867ad0 Capture addresses from veths with prefix 'ethwe'
This is to address the plugin case, where the veth will have a name like 'ethwe0'.
Previously we only looked at the device named exactly 'ethwe'.
Covers `weave ps` and reclaim of addresses for IPAM and WeaveDNS.
2016-01-29 12:13:00 +00:00
Bryan Boreham 1cea9c1c87 Extract function to detect container running in host namespace 2016-01-29 12:13:00 +00:00
Bryan Boreham 598efe5d1a Reduce docker volumes for weavewait to just one set.
- Create an auxilliary container 'weavevolumes' to hold the '/w/w'
  files, and map into that instead of creating new volumes every time.
- Show "/bin/false" as its command in `docker ps` instead of
"/home/weave/sigproxy".
- Remove volumes when cleaning up smoketest containers.
2016-01-28 15:57:22 +00:00
Matthias Radestock 1a590b3ffa document --name 2016-01-23 09:01:41 +00:00
Matthias Radestock 4d05775e11 Merge branch '1.4' 2016-01-21 11:30:05 +00:00
Matthias Radestock a2ff7e5981 Merge pull request #1919 from weaveworks/issues/1900-dont-stop-stoppin
Warn, don't error, if unable to remove network in 'weave stop'

Fixes #1900.
2016-01-21 11:22:21 +00:00
Bryan Boreham 7ec17ab2ef Merge branch '1.4' 2016-01-21 10:18:01 +00:00
Bryan Boreham e47360f8dc Warn, don't error, if unable to remove network in 'weave stop' 2016-01-20 16:18:09 +00:00
Adam Harrison 14944da396 Ignore stderr in proxy_addrs 2016-01-20 14:24:59 +00:00
Matthias Radestock e631fb0d69 derive the bridge MAC from the system (aka BIOS) UUID
...if possible. This provides a stable peer identity across
reboots. If we cannot determinbe the system UUID then we revert to a
random MAC, as before.

Fixes #901.
2016-01-18 14:56:55 +00:00
Matthias Radestock 31b303a419 move plugin network creation into weaveutil
Note that we remove the ability to set the weavemesh network name, or
disabling it altogether. This was always poorly support, since the
removal operation only ever operated on the default name. The option
was also not listed in the usage, though it was in the docs.
2016-01-15 08:52:57 +00:00