Skip to content

Releases: weaveworks/weave

Weave 1.7.2

11 Oct 15:44
@awh awh
Compare
Choose a tag to compare

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 1.7.1

05 Oct 15:36
@awh awh
Compare
Choose a tag to compare

Bug fixes and minor improvements

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 1.7.0

27 Sep 14:01
@awh awh
Compare
Choose a tag to compare

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 1.6.2

21 Sep 16:12
@awh awh
Compare
Choose a tag to compare

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

Docs

Weave 1.6.1

19 Aug 09:03
@brb brb
Compare
Choose a tag to compare

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 1.6.0

20 Jun 13:25
@awh awh
Compare
Choose a tag to compare

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

Weave 1.5.2

26 May 16:18
Compare
Choose a tag to compare

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 1.5.1

09 May 14:35
Compare
Choose a tag to compare

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

Weave 1.5.0

19 Apr 15:14
Compare
Choose a tag to compare

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 1.4.6

23 Mar 17:53
@awh awh
Compare
Choose a tag to compare

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