weave

Simple, resilient multi-host containers networking and more.

APACHE-2.0 License

Stars
6.6K
Committers
97

Bot releases are visible (Hide)

weave - Weave 1.7.2

Published by awh about 8 years ago

Bug fixes and minor improvements

  • Fixed an error where the Docker plugin could fail to attach a container with a bridge "weave" not present error #2540/#2541
  • Fixed panic on multi-homed IP address #2527/#2543
  • Fixed inferred initial peer count when target peers includes self #2481/#2543
  • Fixed compilation on Raspberry Pi #2506/#2538

Upgrading weave-kube

Kubernetes does not currently support rolling upgrades of daemon sets, so you will need to perform the procedure manually:

  • Apply the updated daemonset manifest: kubectl apply -f https://git.io/weave-kube.
  • Kill each weave net pod in turn with kubectl delete; wait for the replacement to begin running before moving on to the next.
weave - Weave 1.7.1

Published by awh about 8 years ago

Bug fixes and minor improvements

  • Fixed a bug in weave-kube where IP addresses could be reused if the weave-kube daemonset was deleted and then re-applied weaveworks/weave-kube#10, weaveworks/weave-kube#17, #2531
  • Fixed a bug in weave-kube where Kubernetes services were inaccessible on CentOS 7 weaveworks/weave-kube#21, weaveworks/weave-kube#22
  • Improved CI #2274

Upgrading weave-kube

Kubernetes does not currently support rolling upgrades of daemon sets, so you will need to perform the procedure manually:

  • Apply the updated daemonset manifest: kubectl apply -f https://git.io/weave-kube.
  • Kill each weave net pod in turn with kubectl delete; wait for the replacement to begin running before moving on to the next.
weave - Weave 1.7.0

Published by awh about 8 years ago

Features

  • weave-kube - Deploy Weave Net to Kubernetes with a single command
  • weave-npc - Kubernetes network policy enforcement in Weave Net

The recommended method of installation is to use the new kubeadm tool to stand up your cluster - see this guide for details.

Minor Improvements

  • Show MAC addresses in docker network inspect weave #1803/#2412
  • Log errors arising from reading resolv.conf #2422

Documentation

  • Document use of docker run --net with plugin #2462

Bug fixes

  • Fix a bug where multicast packets could circumvent subnet isolation (#354/#2386)

Internal

  • Use temporary fork of Docker's (now removed) mflags package #2489
  • Add private flag for weave-kube to install weave-npc steering rules #2524
weave - Weave 1.6.2

Published by awh about 8 years ago

Bug Fixes

  • Fixed a file descriptor leak in the proxy when running with --rewrite-inspect #2533
  • Fixed hang after stopping and restarting on Docker 1.12 #2469/#2502
  • Avoid an error on Google container images by checking for tx offload support #2504
  • Fixed an issue where the supplied peer list could be ignored when restarting after failure #2503/#2509
  • Check for empty peer name on launch #2495/#2501

Testing

  • Fixed flaky tests #2340/#2511/#2329/#2510
  • Update CircleCI build VM to 14.04 #2491

Docs

  • Fixed broken link #2487/#2498
weave - Weave 1.6.1

Published by brb about 8 years ago

Bug fixes

  • weave ps was occasionally failing to list allocated addresses of containers #2388/#2418/#2445
  • weave launch[-router] on 4.2 kernel would appear to succeed even if the fast datapath VXLAN UDP port was in use by a different process #2375/#2474
  • Launching the proxy would fail when the Docker daemon could not be detected #2457/#2424
  • The CNI plugin did not work with Apache Mesos #2394/#2442
  • Router stopped working after a restart in the AWSVPC mode #2381/#2409
  • Router crashed when the Docker API endpoint parameter was explicitly set to empty #2421/#2467
  • The CNI plugin did not work on recent versions of Docker for Mac #2434/#2442
  • Include the ipam option in the help output of the status subcommand #2425/#2426
  • Remove a harmless duplication of the --no-dns parameter #2430

Improvements

  • The CNI plugin assigns an IP to the bridge if necessary, which avoids failures if weave expose has not run yet #2471
  • Distinguish peer name collisions from attempts to connect to self in logs #2460
  • Improve host clock skew detection message #2174
  • Improve the error message returned when executing weave launch-plugin without the router running #2293/#2416
  • The create-bridge subcommand was not enabled in the fast datapath mode #2464/#2466
  • Allow users to omit weave setup[-cni] by initializing the CNI plugin on the launch[-router] subcommand #2435/#2442
  • Reduce verbosity of fast datapath miss event logs #1852/#2417

Internal Refactoring

  • Make the create-bridge subcommand initialize required interfaces #2478
  • Improve grouping of internal functions in the script #2439

Testing

  • If building docker images for Weave fails, make the CI build fail instead of pulling the images from DockerHub #1100

Build

  • Remove the deprecated -f flag from the docker tags command in Makefile #2470

Docs

  • Emphasize the need to run certain commands in the same root shell #2446
  • Add instructions for using the CNI plugin with Apache Mesos #2423
  • Add corrections on the WeaveDNS load-balancing to address RFC3438 #1710/#2407
  • Document the --host parameter of the launch[-router] subcommand #2347/#2413
  • Improve documentation of the --trusted-subnets parameter of the launch[-router] subcommand #2211/#2415
  • Remove an obsolete warning about eval $(weave env) when using the plugin #2450
  • Add an introduction to the operation guide #2393
  • Fix a broken link #2441
weave - Weave 1.6.0

Published by awh over 8 years ago

Highlights

  • A new AWS VPC mode that leverages Amazon Virtual Private Cloud for near-native network performance, as an alternative to the Sleeve and Fast Datapath overlays
  • Docker 1.12 introduced some internal changes that made it incompatible with previous version of Weave Net - this version restores compatibility
  • An operational guide detailing best practices for deploying and operating Weave Net
  • Changes to the target peer list are remembered across restarts, making it much easier to deploy resilient networks
  • The version checkpoint now transmits network mode (e.g. 'awsvpc') and kernel/docker versions to us to inform and guide our development efforts. See the installation documentation for instructions on disabling the checkpoint feature.

Installation and Upgrading

Follow the installation instructions to install this latest release of weave. If you're upgrading from an earlier version, see the instructions on upgrading your cluster.

Weave 1.6.0 is fully compatible with Weave 1.5.x, 1.4.x, 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.

Note that all Weave components now apply a policy of --restart=always, so they will come back again
on reboot. If you have your own start-up script, you should review whether this needs to be updated or disable the policy with --no-restart.

NB there is a backwards incompatible change to weave reset to address an issue where IPAM addresses were not freed if the router was not running at the time of reset. Consequently, the command will now fail if the router is not running; the old behaviour can be obtained with weave reset --force.

Another change in behaviour: networks created via docker network create --driver=weave or weavemesh do not now add a multicast route by default; this was preventing more than one network being used by a container. #1960/#2327

Features

  • Enable the use of AWS VPC instead of an overlay, for near-native network performance #2017/#2287/#2341/#2338/#2370
  • Docker 1.12 compatibility #2379/#2382
  • New Operational Guide #1978/#1102/#726
  • Remember changes to target peer list after restart, for easier, more resilient dynamic cluster configuration #2186/#2305
  • Observe changes to host's /etc/resolv.conf in Weave DNS fallback resolution, which is especially important when weave is launched early on system (re)start, prior to the file having been populated #2360/#2364/#2378
  • Improve guidance from weave stop-plugin when containers attached via the plugin still exist #2320/#2331
  • Improve debug logging #2034/#2162
  • All commands accept --help #2318/#2352
  • Improve IPAM performance #2181/#2184
  • Make weave dns-args output consistent #2197/#2203
  • Consistent weave rmpeer error messages on isolated peers #2057/#2205
  • Improve proxy performance #2383
  • Gather docker and kernel version during checkpoint #2310/#2372

Bug Fixes

  • weave reset did not relinquish IPAM addresses if router was down #2326/#2332
  • A failure during container start would result in an unexpected error message if --rm was specified #2296/#2284
  • The proxy would attach containers even if they were already attached via a network plugin #1988/#2330
  • It was not previously possible to connect a container to two weave plugin networks #1960/#2327
  • Choice of peer from which to request free space was possibly sub-optimal #2344/#2346/#2345
  • Launching proxy with -H /var/run/weave/weave.sock would break #2302/#2333
  • Fix hang protection #2385

Tooling & Other Internal Improvements

  • Complete move of documentation to Wordpress #2114/#2212/#2254
  • Internal refactoring #2299
  • Upgrade vendored libraries #2218
  • Makefile improvement #2005
  • Release script publishes weavedb image to Dockerhub #2189/#2366
  • Include tests accidentally excluded from CI #2323
  • Minor documentation improvements #2362/#2368/#2355/#2335/#2369
  • Use our own Ubuntu image in examples, for simplicity #2367
  • Share more implementation between script and plugins #1726/#2374/#2354/#2307
weave - Weave 1.5.2

Published by bboreham over 8 years ago

Bug fixes

  • Weave Proxy did not flush the initial http header in the Docker event stream, which could cause Docker Swarm to show all nodes as "pending". #2306/#2311
  • When using the CNI plugin, if a container was removed and quickly replaced by another using the same IP address, other containers might be unable to contact it. Send an address resolution protocol message to update them. #2313
  • Avoid Docker hanging for 1 minute in weave launch if the plugin had not shut down cleanly #2286/#2292
  • Print an error message when Weave bridge mode is changed without weave reset #2304
  • Eliminate spurious warning message from IP allocator on plugin shutdown #2300/#2319
  • Display error message when address requested in a subnet that is too small (/31 or /32) #2282/#2321
  • Add short wait after weave reset to allow updates to reach peers #2280
  • Weave was occasionally unable to claim existing IP address immediately after launch #2275/#2281

Testing

  • Refactor some integration tests to run faster and more reliably #2291
weave - Weave 1.5.1

Published by bboreham over 8 years ago

Documentation for this release is available here.

Bug fixes

  • Persisted data that was rendered invalid by changing peer name or allocation range is detected and removed automatically, preventing crashes and hangs #2246/#2209/#2249
  • weave rmpeer persists the range takeover in case the peer on which it was executed dies subsequently #2238
  • Launching a container with an explicit WEAVE_CIDR in the allocation range now waits instead of erroring if the allocator hasn't finished initialising #2232/#2265
  • Weave DNS now responds to AAAA queries with an empty answer section, instead of NXDOMAIN which could be cached and block subsequent resolution of A records #2244/#2252
  • weave restart no longer leaks DNS entries when supplied a container name instead of an ID #2193/#2204
  • Docker restart policies are no longer overridden if a container is killed by the Weave Proxy due to an attachment error #2123/#2264
  • weave launch no longer generates misleading "Unable to claim" warnings for addresses allocated via the Docker network plugin #2194/#2262/#2196

Docs

  • Streamlined and updated README #2217/#2261
  • Documented weave status ipam #1876/#2263
  • Documented Peer Name and shorthand notation #2233/#2266
  • Documented --log-level in weave usage #2245/#2250
  • Documented the use of WEAVE_MTU with fast datapath #2198/#2253
  • Documented adding a route on non-Weave hosts #2219
  • Removed duplicated service export documentation #2207/#2227
  • Minor documentation improvements #2230/#2228
  • Corrected launch arguments in Docker plugin documentation
    #2243/#2257
  • Corrected links in CNI plugin README #2214/#2259
  • Corrected links in troubleshooting documentation #2216/#2221

Build and test

  • Improve documentation preview and publishing process
    #1078/#1700/#2245/#2255/#2258
  • Quicker smoke test runs #2220
  • Re-enable an intermittently failing test #2202
weave - Weave 1.5.0

Published by bboreham over 8 years ago

Release 1.5.0

Highlights

Installation and Upgrading

Follow the installation instructions to install this latest release of weave.

Weave 1.5.0 is fully compatible with Weave 1.4.x, 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.

Note that all Weave components now apply a policy of --restart=always, so they will come back again
on reboot. If you have your own start-up script, you should review whether this needs to be updated or disable the policy with --no-restart.

Changes

Command-line

  • All components now restart automatically if there is a problem or the host reboots, via --restart=always #2029
  • weave launch is now idempotent, making the command easier to use in automated/scripted deployments #1859/#1967
  • weave stop no longer removes component containers, so now their logs can be read subsequently, and they can be restarted #1937/#1939
  • weave rmpeer now accepts a list of peers #2044/#2075
  • weave rmpeer now report on size of transferred range, or reports that nothing was done, rather than returning an error #2058/#2066/#2067
  • weave version now reports the version that will run next after an upgrade, not the version of an older, stopped, Weave #1827/#1938
  • Some errors detected by the weave script did not return an error status #2052/#2053/#2054/#2096
  • Improve error message when weave launch command has malformed peer address #1892/#1924
  • New undocumented weave attach-bridge feature to replace undocumented create-bridge #1955/#1964
  • Remove trailing dot added by Docker 1.11 at the end of hostname+domainname, when generating container's /etc/hosts #2140/#2151

Router

  • Exclude multicast packets from from having their source IP address rewritten by weave expose, so a receiver can see the real source address #2147/#2158
  • Weave now periodically checks if a newer version is available #1954/#2089/#2131
  • Fix an occasional failure to restart on reboot #2113/#2117
  • Fix a delay in getting the latest data to a restarted peer #2085/#2122
  • Simplify router by always running in host network namespace #1746/#1930/#2055

IP Address Management

  • Return Weave network to same state after a reboot, avoiding potential leaks of addresses or hanging, by persisting IPAM state to disk #678/#894/#901/#1971/#1973/#2012/#2031/#2046/#2051/#2077/#2135/#2164/#2165
  • Avoid leaking addresses by retaining identity of peers across reboots and weave reset #901/#1866/#1888/#2021/#2037
  • Restarted application containers now get given the same IP address #1047/#1191/#1922
  • The parameter --init-peer-count n has been rephrased as --ipalloc-init consensus=n; the old parameter is retained for backward compatibility #2155
  • Setting up fixed networks is now easier thanks to the new --ipalloc-init seed option #1998/#2000/#2155
  • Adding peers to existing networks is now easier thanks to the --ipalloc-init observer option #1743/#1990/#2063/#2134/#2155/#2060
  • The new weave prime command ensures that the network has reached a consistent state where IP address allocation has been fully initialised #1994/#1997
  • Include all current peer targets, including those added by weave connect, for the default ipalloc-init consensus count, which helps to avoid split-brain scenarios during dynamic network formation #1721/#2070/#2139/#2150
  • Don't lock up thinking there is an extra peer to agree with, when it is actually ourselves #1881
  • Improve behaviour when donating space to another peer, avoiding creating ranges of size 1 #2009/#2012/#2047/#2069
  • Make error messages clearer in certain irrecoverable IPAM conditions #1957/#2078
  • Removed an unnecessary check in the IPAM start-up code #1948

WeaveDNS

  • When stale DNS records are detected, remove them immediately #2133
  • Avoid re-broadcasting the DNS notification of a dead container #2124
  • WeaveDNS may now be disabled with the --no-dns option #1687/#2099/#2101

Proxy

  • The proxy now retries attaching containers after restarting, in case the router was not ready yet #1561/#1556/#1588/#1880
  • Wait for just-started or restarted containers to get going before trying to attach them #2090/#2126
  • Ensure directory /var/run/weave exists, so we don't depend on deprecated Docker behaviour allowing the router to listen on a Unix socket #1653/#1719
  • Be more defensive against Docker sending empty JSON #2109/#2128

Plugin

  • CNI plugin (see above) #1991/#1992/#2030/#2146/#2148
  • Allow requesting a specific IP address for a container when using the plugin #1734/#1916
  • Allow the subnet and IP range to be specified on docker network create #1806/#1915
  • Check if plugin has exited immediately, to improve visibility of startup problems #1873/#1941
  • Support custom docker args, for advanced users of the plugin #2095
  • If attaching to the network bridge fails, report the error to the user #2097/#2098
  • Move creation and removal of default weave network into a separate utility #1897/#1901
  • Made log messages more consistent #2074
  • Removed unused 'nameserver' option from plugin #1777

Efficiency

  • Do some network configuration by calling the kernel directly rather than via external commands #1944/#1951/#2059/#2062
  • Defer route calculation to when needed, to reduce CPU load #1761/#1773
  • Improve peer-to-peer gossip: don't stall other connections when one is blocked #1826/#1855/#1856
  • Refactor virtual-ethernet device creation #1968
  • Simplify Weave internals by using new(ish) Docker feature docker run --pid=host #578/#1982/#1965/#1966

Docs

  • General clean-up and reorganization of docs, now targeting WordPress publishing process #1756/#2015/#2019/#2038/#2064/#2103/#2105/#2106/#2111/#2114/#2115
  • Update the documentation on what happens when a machine reboots #2108/#2130
  • Document fast datapath (FDP) in "How it Works" #1908
  • Document vendored dependency management commands #1902
  • Update statement about the size of the Weave container #1114
  • Made capitalisation of 'Weave' and 'DNS' consistent #2102/#2118

Build and test

  • Repeatable builds, via containerized build and vendored dependencies #1653/#1656/#1850/#1861
  • Upgrade version of Go to 1.5.2 #1657/#1861
  • Upgrade version of Docker used in CI to 1.10.3 and fix up smoke-tests #2050/#1913
  • Upgrade version of Ubuntu in Vagrant test VMs to Wily 15.10 #1912
  • Include plugin in test coverage reports #2116
  • Fix occasional failure to collect coverage data #2072
  • Fix failure in teardown of test suites when not collecting coverage stats #2129
  • Fix occasional failure in IPAM unit tests caused by race condition #1651/#1862
  • Fix router leak in IPAM unit tests #2149/#2154
  • Fix a bug in the simulation of periodic gossip in one test #2180/#2182
  • Fix multiweave test harness to work with fast datapath #1589
  • Fix hang in a test by specifying /dev/null as input for netcat #2141
  • Add test for rmpeer command #2073
  • Better spelling check in CI #2093
  • Abstract out logging interface from weave api package #2024
  • Move smoke-test dependencies from 'all' to 'testrunner' target #1893/#1920
  • Improve robustness of CI creating and destroying VMs #864/#1857
  • Reduce footprint by combining several script utilities into a single binary #1613/#1847
  • Improve build times on CircleCI #1896
  • Shrink Travis usage #1864
  • Extract mesh library out to its own repository #1889/#1890
weave - Weave 1.4.6

Published by awh over 8 years ago

Fixes some issues encountered by our users.

  • Restarting a peer could leave stale entries in WeaveDNS #1867/#2023/#2081
  • Weave proxy occasionally failing to attach any new containers #2016/#2049

Other fixes:

  • Resolved a crash when a restarting peer re-connected to a peer that had not received the latest IPAM data #2083/#2092
  • Make IP address space available immediately after a dead peer is removed #2068
weave - Weave 1.4.5

Published by bboreham over 8 years ago

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/libnetwork IPAM API #1984/#1985
weave - Weave 1.4.4

Published by awh over 8 years ago

Fixing a rather serious issue that slipped through our preparations for Docker 1.10:

  • Restarting Docker or rebooting your machine while the Weave Net plugin is running causes Docker 1.10.0 to fail to start #1959/#1963

Also one other small fix:

  • Avoid a hang when trying to use plugin and proxy at the same time #1956/#1961
weave - Weave 1.4.3

Published by awh over 8 years ago

Preparing for Docker 1.10, plus some bug-fixes.

  • Avoid hang in Docker v1.10 on docker volume ls after weave stop, weave stop-plugin or weave reset #1934/#1936
  • Fix "unexpected EOF" from Docker 1.10 on docker exec with Weave proxy --rewrite-inspect enabled #1911/#1917
  • Avoid losing DNS entries and potentially double-allocating IP addresses allocated via plugin, on router restart; also extend weave ps to show IP addresses allocated via plugin #1745/#1921
  • Stop creating lots of copies of weavewait program in Docker volumes #1757/#1935
  • Prevent container starting prematurely when proxy in --no-multicast-route mode #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 - Weave 1.4.2

Published by awh almost 9 years ago

Bug-fixes and minor improvements.

  • Fixed a race condition in weavewait that would occasionally hang containers at startup #1882/#1884
  • weave launch returns 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 launch would exit with error code on docker <1.9 #1851
  • Running eval $(weave env) multiple times would break eval $(weave env --restore) #1824/#1825
  • Don't complain in weave stop about "Plugin is not running" when plugin is not enabled #1840/#1841
  • weave --local launch would fail if utility program docker_tls_args could not be found #1844
  • Improved error reporting when TLS arg detection fails #1843
  • Improve error reporting when docker isn't running #1845
  • Add --trusted-subnets usage to weave script #1842
  • weave run can hang under rare combinations of options #1858
weave - Weave 1.4.1

Published by bboreham almost 9 years ago

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_HOST was 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-dns option to proxy, which was removed #1810/#1812
  • Make weave version show the plugin version #1797/#1813
  • Make weave launch show when the a container is restarting #1778/#1814
  • Make weave launch fail if the plugin is running, for consistency with router and proxy. #1818/#1819

More details in the change log.

weave - Weave Net 1.4.0

Published by bboreham almost 9 years ago

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 connect attempts connection immediately #1714/#1716
  • More efficient processing of network topology changes #1732/#1736
  • Diagnostics for IP Address Management with weave status and weave 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-dns option; DNS is on by default #1754/#1781
  • Remove unused vars in weave script #1748/#1751/#1753

Proxy

  • More flexibility over filesystem paths for $DOCKER_HOST and 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 - Weave 1.3.1

Published by awh almost 9 years ago

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 weave script 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 running weave --local setup in 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_MTU to container interfaces, allowing you to configure larger frames for improved performance on networks which support it #1703 / weaveworks/docker-plugin#50 / weaveworks/docker-plugin#51
  • Docker networking plugin now works with 3.13 kernel #1682 / weaveworks/docker-plugin#48 / weaveworks/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 - Weave 1.3.0

Published by awh almost 9 years ago

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_

  • fix an incompatibility with older Linux kernels. #1647/#1671

_IP Address Allocator_

  • print out address ranges more simply. #1635/#1636
weave - Weave 1.2.1

Published by awh almost 9 years ago

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 launch to fail with a address family not supported by protocol netlink error in the logs #1599/#1619
  • Fix unknown flow key type 22 error 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 expose that 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 host or container:... 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-inspect race on container start #1549/#1616
  • Accommodate changes in API of upstream DNS library #1622
  • Integration test reliability improvements #1588/#1630
weave - Weave 1.2.0

Published by bboreham almost 9 years ago

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 on start, 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 and weave 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 and weave 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 to WEAVE_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