This repository has been archived by the owner on Jun 20, 2024. It is now read-only.
Weave 0.11.0
Highlights:
- automatic IP Address Management
(IPAM),
which allows application containers to be started and attached to
the weave network without needing to supply an IP address. - proxy for
automatically attaching containers started with ordinarydocker run
, or the Docker remote API, to the weave network. - ability to add/remove extra DNS
records. - performance and scalability improvements
- fixes for a small number of bugs discovered during testing
More detail below and in the change log.
NB: This release changes the weave protocol version. Therefore, when upgrading an existing installation, all hosts need to be upgraded in order to for them to be able to communicate and form a network.
bug fixes
- eliminate a deadlock in route calculation, which could be
encountered when large numbers of peers join or leave the weave
network near-simultaneously. #643/#644 - prevent certain stray UDP packets from stalling the entire UDP
receiver loop when crypto is in use. #564/#617 - prevent
weave expose
from breaking container connectivity in other
subnets. #605/#628 - prevent
weave expose
from breaking subnet isolation. #620/#704 - fix breakage when running
weave
inside a container that has
$PROCFS
set. #621/#622 - fix bug in
weave launch-dns
that could result in some existing
containers not being recorded in weaveDNS if one of them got stopped
and removed during the weaveDNS launch. #690 - fix a dormant bug in the peer connection shutdown logic. #731
new features
- introduce automatic IP Address Management
(IPAM),
which allows application containers to be started and attached to
the weave network without needing to supply an IP address. IPAM can
also automatically allocate IP addresses forweave expose
. #22/#563,#485,#567,#670,#679/#685,#672/#686,#671/#689,#669/#691,#681,#677/#693,#695.#692/#696,#684/#701,#705/#719,#723/#724 - introduce a
proxy for
automatically attaching containers started with ordinarydocker run
, or the Docker remote API, to the weave network. The proxy
ensures that the weave network interface is available to application
processes immediately on startup. It also allows application
containers to be started in the foreground, and automatically
removed on termination (with
--rm
). #47,#230,#251,#400,#652,#655,#698,#702,#703,#708/#713,#709/#714,#707/#718,#657/#721,#738 - add ability to add/remove extra DNS
records. #364/#627 - publish docs for all releases; the main
documentation now contain the docs for the
latest release instead of the current development snapshot. #604,#612,#642,#648,#650,#729,#668/#722 - allow user to supply args to Docker in
DOCKER_CLIENT_ARGS
env var,
for weave remote execution, eg. in order to enable TLS. #626 - enable weave script debugging with
WEAVE_DEBUG
env var. #618
other improvements
- significantly simplify
crypto
implementation. #608 - simplify and significantly improve performance of topology gossip,
as a result of which weave can cope much better with situations
where are large number of peers join or leave near- simultaneously,
e.g. on startup of large clusters, or in the event of a network
partition. #519/#619 - better error handling in a
weave launch
failure edge case. #600/#603 - prevent misleading error when attempting to
weave detach
from an
unattached container. #596/#613 - make
weave version
cope with missing Docker images. #597/#614 - report errors encountered when populating DNS in
weave launch-dns
. #393 - report more descriptive error when weave was compiled against too
old a version of libpcap. #623/#625 - return NXDOMAIN instead of NOTIMP for query types not handled by
WeaveDNS, which is the expected response. #588/#589 - bump minimum Docker version requirement for use of
--with-dns
from
1.2.0 to 1.3.1, due to the former not setting container hostnames
correctly. #587 - bump minimum Linux kernel version requirement for running Weave from
3.5.0 to 3.8.0, due to some bugs in namespace support in the
former that break Weave. #585/#616 - remove a layer from the weaveexec image, thus reducing download
times. #665 - various documentation cleanups and improvements. #601,#640,#651,#653,#667,#648,#740
improvements to tests, and refactoring
- add more smoke tests, improve existing tests, and make them more
robust. #590,#591/#594,#595,#592/#606,#683,#712 - automatically run smoke tests on
CircleCI. #624,#634,#637,#638 - make top-level
vagrant provision
idempotent. #586 - use
nsenter
instead ofip netns exec
. #458/#580 - internal changes for future support of multiple DNS responses. #559
- some code cleanup in DNS. #609,#610
- refactor signal handling in Weave and WeaveDNS. #633