Releases: weaveworks/weave
Weave 1.7.2
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
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-experiments/weave-kube#10, weaveworks-experiments/weave-kube#17, #2531
- Fixed a bug in weave-kube where Kubernetes services were inaccessible on CentOS 7 weaveworks-experiments/weave-kube#21, weaveworks-experiments/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 1.7.0
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
Internal
Weave 1.6.2
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
Bug fixes
weave ps
was occasionally failing to list allocated addresses of containers #2388/#2418/#2445weave 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 thestatus
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 thelaunch[-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 thedocker 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 thelaunch[-router]
subcommand #2347/#2413 - Improve documentation of the
--trusted-subnets
parameter of thelaunch[-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
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 withweave reset --force
.Another change in behaviour: networks created via
docker network create --driver=weave
orweavemesh
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 1.5.2
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
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
Release 1.5.0
Highlights
- A new plugin
for the Container Network Interface. - This release is much more robust against unscheduled restarts,
because it persists key data to disk. - New configuration options
that are useful when you create or auto-scale larger networks. - Weave now periodically checks for updates
(can be disabled)
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/#1967weave stop
no longer removes component containers, so now their logs can be read subsequently, and they can be restarted #1937/#1939weave rmpeer
now accepts a list of peers #2044/#2075weave rmpeer
now report on size of transferred range, or reports that nothing was done, rather than returning an error #2058/#2066/#2067weave 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 undocumentedcreate-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 defaultipalloc-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