This repository has been archived by the owner on Jun 20, 2024. It is now read-only.
Weave 1.2.0
Highlights
This release introduces the Fast Data Path, which allows Weave networks to operate at near wire-level speeds. This new feature is enabled by default.
Other highlights:
- auto-configuration of TLS for the Weave Docker API proxy, making it
easier to run Weave on Macs and in conjunction with tools like
Docker Swarm - support for Docker restart policies on application containers and weave
infrastructure containers - better compatibility with recent and future Docker versions
More details below and in the change log.
Installation and Upgrading
Follow the installation instructions to install this latest release of weave.
Weave 1.2.0 is fully compatible with Weave 1.1.x, so it is possible to upgrade clusters incrementally and run mixed versions. If upgrading from Weave 1.0.x, take into account the Weave 1.1.0 upgrading instructions.
(Once upgraded, if you then decide to re-install weave 1.1 take care to run weave reset
before downgrading. Failing that, reboot the machine)
Changes
Router
- introduce Fast Data Path,
which significantly improves network
performance. #36/#205/#991/#1438, #1396/#1451, #1448/#1522, #1505/#1513/#1525, #1510/#1526, #1533/#1538, #1544, #1548/#1550, #1558, #1552/#1562, #1567, #1570 - apply back-off on late connection failures. Previously, errors
detected shortly after connection establishment would cause
immediate retries, causing high connection churn and log
noise. #953/#1447/#1496 - handle a race conditions that could cause multiple concurrent
connection attempts to the same IP/port of a prospective
peer. #1478/#1479/#1483 - remove spurious Docker dependency, allowing the router executable to
be run w/o accessing Docker. #1443/#1500
Docker API proxy
- auto-configure
TLS. This
simplifies setting up weave on Mac OSX and other platforms where
Docker is only accessible via TLS. #1285/#1414/#1441/#1442, #1407 - when containers started via the proxy are restarted by Docker, the
proxy automatically re-attaches them to the weave
network. #401/#1210/#1456, #1547/#1551, #1542/#1560 - when the weave router is restarted by Docker, the proxy
automatically re-attaches it to the weave network. #401/#1358/#1518 - cope with
HostConfig
onstart
, which is a backward compatibility
feature of the Docker API used by some
applications. Previously, containers started that way would end up
with a broken configuration, such as lack of DNS
settings. #1368/#1449, #1481/#1488, #1531/#1532/#1534 - work with non-default logging driver. Previously this would cause
the proxy launch to report a failure even when it
succeeded. #1453/#1472/#1474,#1519/#1520, #1527/#1528 - improve Docker version compatibility. New (present and future)
Docker features and associated changes to the Docker Remote API are
now handled correctly in the vast majority of cases. #1371/#1395 - log requests/responses when running with
--log-level=debug
. #1515/#1536 - remove
/var/run/weave.sock
symlink, which was there for backward
compatibility with weave 1.0. Newer versions use
/var/run/weave/weave.sock
. #1492/#1495
IP Address Allocator
- gracefully handle situations where IP address allocation has been
seeded by different peers, e.g. because incorrect
--init-peer-count
values were specified. Previously this could
cause the router to crash or log obscure errors. Now it causes the
connection between the incompatibly-initialised peers to be dropped,
with an intelligible error in the logs andweave status connections
output. #1178/#1463/#1499 - do not allocate IP addresses in
weave detach/hide
. This was
causing these commands to hang when IP address allocation was
deferred (e.g. due to the lack of initial consensus or free
addresses). #860/#1503 - prevent stall of
docker run/start
andweave run/attach
when a
container dies just before IP address allocation, and IP address
allocation is deferred (e.g. due to the lack of initial consensus or
free addresses). #1459/#1512
Naming and Discovery (weaveDNS)
- prevent Docker from updating a container's
/etc/hosts
,
which, from Docker 1.8 onward, was breaking resolution of
unqualified names via weaveDNS. #1374/#1477, #1574 - add an entry to
/etc/hosts
for the container's fully-qualified
hostname and weave IP addresses, which is expected by some
applications. #1497/#1557 - enable
weave dns-add/remove
to add/remove DNS records not associated with containers. #1385/#1517 - make name resolution case insensitive, per
RFC1035. #1461/#1462
CLI
- correctly report the version of snapshot releases. #1341/#1415
- rename
VERSION
env var toWEAVE_VERSION
, to prevent accidental
conflicts. #1389 - start temporary containers without networking, where possible, which speeds up some weave commands. #1572
Build & Test
- make weave build & work with Go 1.5. #1386/#1393/#1412/#1436
- switch from 'gliderlabs/alpine' to 'alpine' images, since the latter
is now the official name for this image. #1388 - restrict coverage reporting to sub-packages of 'weave', thus
producing more accurate coverage statistics. #1524 - add test for using sub-domains with weaveDNS. #1446
- fix a race condition in an integration test that lead to sporadic
failures. #1502/#1537 - work around a bug in Docker 1.9rc1 that breaks an integration test. #1565/#1569
- use test scripts from build-tools
repo, for sharing with
other projects. #1470 - run unit tests in a separate container (instead of the build
container) in CircleCI. #1204/#1469 - build GCE test image on demand, streamlining the workflow for
updating the images. #1468/#1494