Releases: weaveworks/weave
Weave 1.4.5
Higher performance for multicast and broadcast traffic when using Weave's Fast Datapath
- The flow rule to deliver broadcast and multicast packets in-kernel
was not created correctly, hence every such packet caused a
context-switch to the software router #2003/#2008
Other fixes:
- Remove DNS entries for containers that are being restarted by Docker
but are not live yet #1977/#1989 - Don't let one failing allocation attempt prevent others from
succeeding; they could be in different subnets which are more
available #1996/#2001 - Don't complain on second router launch on kernels that lack support
for Fast Datapath #1929/#1983 - Fix build broken by change in
docker/libnetworkIPAM API #1984/#1985
Weave 1.4.4
Weave 1.4.3
Preparing for Docker 1.10, plus some bug-fixes.
- Avoid hang in Docker v1.10 on
docker volume lsafterweave stop,weave stop-pluginorweave reset#1934/#1936 - Fix "unexpected EOF" from Docker 1.10 on
docker execwith Weave proxy--rewrite-inspectenabled #1911/#1917 - Avoid losing DNS entries and potentially double-allocating IP addresses allocated via plugin, on router restart; also extend
weave psto show IP addresses allocated via plugin #1745/#1921 - Stop creating lots of copies of
weavewaitprogram in Docker volumes #1757/#1935 - Prevent container starting prematurely when proxy in
--no-multicast-routemode #1942/#1943 - Log error message from plugin rather than crashing when weave not running #1906/#1918
- Warn, don't error, if unable to remove plugin network in 'weave stop', to avoid breaking the usual upgrade or config change process #1900/#1919
- Don't crash if network conditions suggest only very small packets will get through #1905/#1926
- Cope with unexpected errors during route traversal when starting container via proxy #1909/#1910/#1932
Weave 1.4.2
Bug-fixes and minor improvements.
- Fixed a race condition in weavewait that would occasionally hang containers at startup #1882/#1884
weave launchreturns success when the plugin is running, to avoid failure on reboot #1869- Work round weave router failure on CoreOS 4.3 caused by kernel bug #1854
weave launchwould exit with error code on docker <1.9 #1851- Running
eval $(weave env)multiple times would breakeval $(weave env --restore)#1824/#1825 - Don't complain in
weave stopabout "Plugin is not running" when plugin is not enabled #1840/#1841 weave --local launchwould fail if utility programdocker_tls_argscould not be found #1844- Improved error reporting when TLS arg detection fails #1843
- Improve error reporting when docker isn't running #1845
- Add
--trusted-subnetsusage toweavescript #1842 weave runcan hang under rare combinations of options #1858
Weave 1.4.1
This is a bug-fix release to cover a few issues that came up since the
release of 1.4.0.
- Weave would fail to launch when
$DOCKER_HOSTwas set to a TCP socket secured with TLS #1820/#1822 - Weave would fail to stop when run against Docker pre-1.9 #1815/#1817
- Issue a warning instead of failing on
--with-dnsoption to proxy, which was removed #1810/#1812 - Make
weave versionshow the plugin version #1797/#1813 - Make
weave launchshow when the a container is restarting #1778/#1814 - Make
weave launchfail if the plugin is running, for consistency with router and proxy. #1818/#1819
More details in the change log.
Weave Net 1.4.0
Highlights
- The Docker Network plugin can now operate without a cluster store, so it is now run by default.
- You can now use the fast datapath over trusted links and Weave encryption over untrusted links, in the same network.
More details below and in the change log.
Installation and Upgrading
Follow the installation instructions to install this latest release of weave.
Weave 1.4.0 is fully compatible with Weave 1.3.x, 1.2.x and 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.
If you used the plugin from version 1.3.x you may need to modify your startup scripts, since weave launch now creates a default network called weave. Note that the plugin container (weaveplugin) is now run with --restart=always, so that it is there after a restart or reboot. If you remove this container before removing all endpoints created using --net=weave, Docker can hang.
Changes
Router
- Option to bypass encryption on trusted links, to improve performance #82/#1758
- Added DNS upstream servers and FDP miss counter to status reporting #1571/#1662/#1592/#1663
- Fixed possible low throughput when using encryption #1788
- Retry vxlan vport creation, to avoid failure on start immediately after a stop #1772/#1795
- Interpose a bridge device, so tools like conntrack and Weave Scope can see Weave Net connections #1577/#1712/#1783/#1790
- Add option to stop weave adding an IP route for multicast addresses, to give user control over multicast routing #1741/#1755
- Block container access to Weave control and data ports, for improved security #1634/#1670
- Ensure
weave connectattempts connection immediately #1714/#1716 - More efficient processing of network topology changes #1732/#1736
- Diagnostics for IP Address Management with
weave statusandweave status ipam#1639/#1702 - Better support for pre-1.2/post-1.2 mixed networks #1731
- Add a 'json' function for 'weave report -f', for more flexibility when scripting #1709/#1782
- Reduce memory usage in connection shutdown #1718
- Improve script robustness #1749/#1750
- Add fast datapath high level overview document #1722
- Remove
--with-dnsoption; DNS is on by default #1754/#1781 - Remove unused vars in
weavescript #1748/#1751/#1753
Proxy
- More flexibility over filesystem paths for
$DOCKER_HOSTand Weave proxy socket #1579/#1586/#1689/#1694/#1740 - Proxy now always tries to detect TLS settings, unless disabled with
--no-detect-tls#1539/#1679 - Ensure socket directory exists before asking Docker to use it, since Docker deprecated the feature of auto-creating it #1653/#1719
Plugin
- Ability to run as a Docker network plugin without a cluster store, for simpler set-up and more flexible operation #1727/#1728/#1738
- Docker IPAM plugin using Weave's peer-to-peer IP address management #1676
- Service discovery via WeaveDNS now works with the plugin #1725/#1730
- Support multicast #1752/#1776
Build and Test
- Removed unneeded test helper #1769
- Fixed accidental peer duplication in unit tests #1766
- Build test/tls program using build container #1760
- Connect to gce boxes as vagrant so we can access docker unix socket #1708
- Fix gossip tests #1796/#1765/#1767
- Merge plugin code into weave repository #1674/#1724
- Move some netlink code to upstream library #1440/#1673
Weave 1.3.1
Highlights
- The minimum Docker version has been increased to 1.6 due to the upcoming deprecation of Dockerhub access for old clients. From December 7th onwards previous versions of the
weavescript will fail to pull down images from the hub; if you are unable to upgrade to 1.3.1 immediately you can work around this by runningweave --local setupin conjunction with a compatible Docker client installation - Docker networking plugin now works with older kernels and allows you to configure the MTU
Installation and Upgrading
Follow the installation instructions to install this latest release of weave.
Weave 1.3.1 is fully compatible with Weave 1.3.0, 1.2.x and 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.
Changes
- Update minimum Docker version to 1.6 #1683/#1684/#1706
- Docker networking plugin now applies
WEAVE_MTUto container interfaces, allowing you to configure larger frames for improved performance on networks which support it #1703 / weaveworks-experiments/docker-plugin#50 / weaveworks-experiments/docker-plugin#51 - Docker networking plugin now works with 3.13 kernel #1682 / weaveworks-experiments/docker-plugin#48 / weaveworks-experiments/docker-plugin#49
- Fix a memory corruption bug that could cause crashes under load #1697/#1698/#1450/#1452
- Improve gossip efficiency #1704
- Minor documentation fix #1699
Weave 1.3.0
Highlights
This release includes a Docker Plugin, so you have the option to use Weave Net that way.
More details below and in the change log.
Installation and Upgrading
Follow the installation instructions to install this latest release of weave.
Weave 1.3.0 is fully compatible with Weave 1.2.x and 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.
Other changes
_Router_
- fix a crash when operating in mixed 1.1/1.2 configurations. #1661/#1669
- smoother propagation of updates when peers restart. #1554/#1641
_Docker API proxy_
_IP Address Allocator_
Weave 1.2.1
Bug-fix and minor improvements.
- Fix crash on mixed-case DNS names #1603/#1610/#1615/#1614
- Fix a condition where rolling restarts could hang on IP address allocation #1593/#1624
- Gracefully deal with kernels that do not support OVS VXLAN ports, e.g. Oracle EL7; previously this would cause
weave launchto fail with aaddress family not supported by protocolnetlink error in the logs #1599/#1619 - Fix
unknown flow key type 22error using fast datapath on 4.3 kernel #1594 - Prevent containers from accessing the weave router REST API when fast datapath is enabled #1632/#1637
- Fix an edge case in
weave exposethat could prevent registration of the given hostname in weaveDNS #1626/#1629 - Fix hang when a starting a container via the proxy and providing a network mode of
hostorcontainer:...at start rather than create (which is the usual way) #1600/#1608 - Prevent unnecessary reattachment attempts by the weaveproxy #1584/#1598
- Fix weaveDNS not working with Ubuntu/UFW #1578/#1606
- Disallow registration of foreign domains in weaveDNS #1516/#1597
- Fix weaveproxy
--rewrite-inspectrace on container start #1549/#1616 - Accommodate changes in API of upstream DNS library #1622
- Integration test reliability improvements #1588/#1630
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
HostConfigonstart, 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.socksymlink, 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-countvalues 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 connectionsoutput. #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/startandweave run/attachwhen 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/hostsfor 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
VERSIONenv 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