Skip to content
This repository has been archived by the owner on Jun 20, 2024. It is now read-only.

Releases: weaveworks/weave

Weave 0.11.0

26 May 14:50
Compare
Choose a tag to compare

Highlights:

  • automatic IP Address Management
    (IPAM)
    ,
    which allows application containers to be started and attached to
    the weave network without needing to supply an IP address.
  • proxy for
    automatically attaching containers started with ordinary docker run, or the Docker remote API, to the weave network.
  • ability to add/remove extra DNS
    records
    .
  • performance and scalability improvements
  • fixes for a small number of bugs discovered during testing

More detail below and in the change log.

NB: This release changes the weave protocol version. Therefore, when upgrading an existing installation, all hosts need to be upgraded in order to for them to be able to communicate and form a network.

bug fixes

  • eliminate a deadlock in route calculation, which could be
    encountered when large numbers of peers join or leave the weave
    network near-simultaneously. #643/#644
  • prevent certain stray UDP packets from stalling the entire UDP
    receiver loop when crypto is in use. #564/#617
  • prevent weave expose from breaking container connectivity in other
    subnets. #605/#628
  • prevent weave expose from breaking subnet isolation. #620/#704
  • fix breakage when running weave inside a container that has
    $PROCFS set. #621/#622
  • fix bug in weave launch-dns that could result in some existing
    containers not being recorded in weaveDNS if one of them got stopped
    and removed during the weaveDNS launch. #690
  • fix a dormant bug in the peer connection shutdown logic. #731

new features

other improvements

  • significantly simplify
    crypto
    implementation. #608
  • simplify and significantly improve performance of topology gossip,
    as a result of which weave can cope much better with situations
    where are large number of peers join or leave near- simultaneously,
    e.g. on startup of large clusters, or in the event of a network
    partition. #519/#619
  • better error handling in a weave launch failure edge case. #600/#603
  • prevent misleading error when attempting to weave detach from an
    unattached container. #596/#613
  • make weave version cope with missing Docker images. #597/#614
  • report errors encountered when populating DNS in weave launch-dns. #393
  • report more descriptive error when weave was compiled against too
    old a version of libpcap. #623/#625
  • return NXDOMAIN instead of NOTIMP for query types not handled by
    WeaveDNS, which is the expected response. #588/#589
  • bump minimum Docker version requirement for use of --with-dns from
    1.2.0 to 1.3.1, due to the former not setting container hostnames
    correctly. #587
  • bump minimum Linux kernel version requirement for running Weave from
    3.5.0 to 3.8.0, due to some bugs in namespace support in the
    former that break Weave. #585/#616
  • remove a layer from the weaveexec image, thus reducing download
    times. #665
  • various documentation cleanups and improvements. #601,#640,#651,#653,#667,#648,#740

improvements to tests, and refactoring

  • add more smoke tests, improve existing tests, and make them more
    robust. #590,#591/#594,#595,#592/#606,#683,#712
  • automatically run smoke tests on
    CircleCI. #624,#634,#637,#638
  • make top-level vagrant provision idempotent. #586
  • use nsenter instead of ip netns exec. #458/#580
  • internal changes for future support of multiple DNS responses. #559
  • some code cleanup in DNS. #609,#610
  • refactor signal handling in Weave and WeaveDNS. #633

Weave 0.10.0

21 Apr 15:20
Compare
Choose a tag to compare

Highlights:

  • bug fixes, in particular eradicating several deadlocks that could
    cause peer connection failures and hangs.
  • performance and scalability improvements to the weave control plane,
    as a result of which it is now possible to construct much larger
    weave networks than previously.
  • improved installation and administration, particularly the
    introduction of remote execution of the weave script in a container,
    permitting fully containerised deployment of weave.
  • improved diagnostics, such as the reporting of connection failures
    in weave status.
  • new weaveDNS features, most notably the caching of
    DNS records for application containers, which makes finding container IP addresses via
    weaveDNS much faster.

More detail below and in the change log.

NB: This release changes the Weave Docker image names. To upgrade from an older version, 1) stop all application containers, 2) run weave reset from the old version to remove all traces of weave, and only then 3) install the new version.

bug fixes

  • eliminate several deadlocks during connection establishment,
    shutdown and topology gossip. These could lead to weave routers
    failing to connect to each other, existing connections timing out,
    weave status hanging, and general
    mayhem. #341,#411/#414,#418/#421,#415/#428,#445/#476,#464,#529/#530,#515/#565
  • avoid excessive ARP caching. This prevented connectivity to
    containers which were restarted with the same IP or otherwise given
    an IP that was recently in use. Connectivity to weave exposeed
    addresses was similarly affected. #439/#441/#457
  • prevent accidental injection of ICMP "fragmentation needed" packets
    with a broadcast/multicast source address. This contravened
    RFC1122 and also broke
    subsequent routing of broadcast/multicast packets from that
    address. #419/#433
  • cope with linux kernels <3.8.0. #470/#504.
  • exclude non-established connections from broadcast routing. This
    could lead to excessive loss of broadcast packets during connection
    establishment, as well as a lot of noise in the logs. #452/#453
  • don't rely on docker for container aliveness check. This could cause
    a misreporting of a container death during weave launch, weave run and others as network configuration error. #522

performance and scalability improvements

  • massively reduce the cost and complexity of topology gossip. This
    allows construction of substantially larger weave networks than
    hitherto possible, and copes much better with the sudden connection
    or disconnection of large numbers of peers. The default per-peer
    connection limit has been increased from 10
    to 30. #514/#516,#517/#521,#445/#476,#454/#461,#425
  • tighten the conditions under which we attempt to connect to the
    remote addresses of inbound connections we learn about from other
    peers. Being rather lax here was resulting in excessive failed
    attempts, with the associated log noise, load, and spuriously
    exceeding the configured connection limit. #448/#451/#477,#478/#555
  • [dns] cache container DNS records. This significantly reduces lookup time
    for IPs in the weaveDNS domain used by application
    containers. #225/#429,#473,#494/#501,#532

new administrative features

  • containerised execution of the weave script, which enables remote
    execution (e.g. by setting DOCKER_HOST), and makes it possible to run weave purely through docker and without any shell access to the host. #312/#388,#379,#540/#542/#545,#507/#523/#546,#574/#575
  • add weave forget <peer>
    command, for removal of decommissioned weave
    peers. #486/#488,#549/#550
  • allow multiple CIDRs to be specified in weave commands. #467/#498,#568/#570
  • accept a list of container names/ids in weave ps. #526
  • make weave launch synchronous, which is useful for automation. #500/#509/#538
  • make weave connect act immediately, instead of waiting for the
    expiry of any timeout from a previous connection attempt to the same
    destination. #499

new diagnostics features

new weaveDNS features

build system improvements

miscellaneous improvements

  • make weave commands interruptable with Ctrl-C. #391/#395
  • stop weave more gracefully in weave stop/stop-dns/reset, by
    invoking docker stop instead of docker kill. #512
  • add
    WEAVE_PORT
    env var for overriding default weave port. #531/#534,#551
  • make weaveDNS container configurable by supplying docker parameters
    to in WEAVEDNS_DOCKER_ARGS. #484,#487
  • detect UDP connectivity breakage, and recover from it if
    possible. #373/#413
  • reduce likelihood of IP address clashes in tests and examples. #402
  • add installation instructions for CoreOS. #434/#435

Weave 0.9.0

03 Feb 14:01
Compare
Choose a tag to compare
  • Improve WeaveDNS to the point where it can act as the name server for containers in nearly all situations.
  • Diagnose and report peer connectivity more comprehensively.
  • Adapt to changes in topology - adding & removing of weave peers, disruption of connectivity - more rapidly.
  • Cope with delays in downloading/running docker images/containers required for weave operation.

change log

Weave 0.8.0

04 Jan 09:54
Compare
Choose a tag to compare
  • Align script and image version. When the weave script has a version number, i.e. it is part of an official release, it runs docker images matching that version. Thus the script and image versions are automatically aligned. Unversioned/unreleased weave scripts run the 'latest'-tagged image versions.
  • Eliminate dependency on ethtool and conntrack. Instead of requiring these to be installed on the host, weave invokes them via a weavetools docker image that contains minimally packaged versions of these utilities.
  • New weave setup command. This downloads all docker images used by weave. Invoking this is strictly optional; its main purpose is to facilitate automated installation of weave and preventing delays in subsequent weave command execution due to image downloading.

Weave 0.7.0

30 Dec 15:31
Compare
Choose a tag to compare

This is the first release assigned a version number.

When downloading weave you now have the following choices...

  1. a specific version, e.g. https://github.com/zettio/weave/releases/download/v0.7.0/weave
  2. latest released version: https://github.com/zettio/weave/releases/download/latest_release/weave
  3. most recent 'master' commit: https://raw.githubusercontent.com/zettio/weave/master/weave

Previously the only documented download location was (3). We recommend
that any automated scripts using that be changed to either (1) or (2).