+Version 2.8.4
+-------------
+
+*(Released Thu, 23 Jan 2014)*
+
+- Change the list separator for the usb_devices parameter from comma to space.
+ Commas could not work because they are already the hypervisor option
+ separator (Issue 649)
+- Add support for blktap2 file-driver (Issue 638)
+- Add network tag definitions to the haskell codebase (Issue 641)
+- Fix RAPI network tag handling
+- Add the network tags to the tags searched by gnt-cluster search-tags
+- Fix caching bug preventing jobs from being cancelled
+- Start-master/stop-master was always failing of ConfD was disabled. (Issue 685)
+
+
+Version 2.8.3
+-------------
+
+*(Released Thu, 12 Dec 2013)*
+
+- Fixed Luxi daemon socket permissions after master-failover
+- Improve IP version detection code directly checking for colons rather than
+ passing the family from the cluster object
+- Fix NODE/NODE_RES locking in LUInstanceCreate by not acquiring NODE_RES locks
+ opportunistically anymore (Issue 622)
+- Allow link local IPv6 gateways (Issue 624)
+- Fix error printing (Issue 616)
+- Fix a bug in InstanceSetParams concerning names: in case no name is passed in
+ disk modifications, keep the old one. If name=none then set disk name to
+ None.
+- Update build_chroot script to work with the latest hackage packages
+- Add a packet number limit to "fping" in master-ip-setup (Issue 630)
+- Fix evacuation out of drained node (Issue 615)
+- Add default file_driver if missing (Issue 571)
+- Fix job error message after unclean master shutdown (Issue 618)
+- Lock group(s) when creating instances (Issue 621)
+- SetDiskID() before accepting an instance (Issue 633)
+- Allow the ext template disks to receive arbitrary parameters, both at creation
+ time and while being modified
+- Xen handle domain shutdown (future proofing cherry-pick)
+- Refactor reading live data in htools (future proofing cherry-pick)
+
+
+Version 2.8.2
+-------------
+
+*(Released Thu, 07 Nov 2013)*
+
+- DRBD: ensure peers are UpToDate for dual-primary
+- Improve error message for replace-disks
+- More dependency checks at configure time
+- Placate warnings on ganeti.outils_unittest.py
+
+
+Version 2.8.1
+-------------
+
+*(Released Thu, 17 Oct 2013)*
+
+- Correctly start/stop luxid during gnt-cluster master-failover
+- Don't attempt IPv6 ssh in case of IPv4 cluster (Issue 595)
+- Fix path for the job queue serial file
+- Improved harep man page
+- Minor documentation improvements
+
+
+Version 2.8.0
+-------------
+
+*(Released Mon, 30 Sep 2013)*
+
+Incompatible/important changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- Instance policy can contain multiple instance specs, as described in
+ the “Constrained instance sizes” section of :doc:`Partitioned Ganeti
+ <design-partitioned>`. As a consequence, it's not possible to partially change
+ or override instance specs. Bounding specs (min and max) can be specified as a
+ whole using the new option ``--ipolicy-bounds-specs``, while standard
+ specs use the new option ``--ipolicy-std-specs``.
+- The output of the info command of gnt-cluster, gnt-group, gnt-node,
+ gnt-instance is a valid YAML object.
+- hail now honors network restrictions when allocating nodes. This led to an
+ update of the IAllocator protocol. See the IAllocator documentation for
+ details.
+- confd now only answers static configuration request over the network. luxid
+ was extracted, listens on the local LUXI socket and responds to live queries.
+ This allows finer grained permissions if using separate users.
+
+New features
+~~~~~~~~~~~~
+
+- The :doc:`Remote API <rapi>` daemon now supports a command line flag
+ to always require authentication, ``--require-authentication``. It can
+ be specified in ``$sysconfdir/default/ganeti``.
+- A new cluster attribute 'enabled_disk_templates' is introduced. It will
+ be used to manage the disk templates to be used by instances in the cluster.
+ Initially, it will be set to a list that includes plain, drbd, if they were
+ enabled by specifying a volume group name, and file and sharedfile, if those
+ were enabled at configure time. Additionally, it will include all disk
+ templates that are currently used by instances. The order of disk templates
+ will be based on Ganeti's history of supporting them. In the future, the
+ first entry of the list will be used as a default disk template on instance
+ creation.
+- ``cfgupgrade`` now supports a ``--downgrade`` option to bring the
+ configuration back to the previous stable version.
+- Disk templates in group ipolicy can be restored to the default value.
+- Initial support for diskless instances and virtual clusters in QA.
+- More QA and unit tests for instance policies.
+- Every opcode now contains a reason trail (visible through ``gnt-job info``)
+ describing why the opcode itself was executed.
+- The monitoring daemon is now available. It allows users to query the cluster
+ for obtaining information about the status of the system. The daemon is only
+ responsible for providing the information over the network: the actual data
+ gathering is performed by data collectors (currently, only the DRBD status
+ collector is available).
+- In order to help developers work on Ganeti, a new script
+ (``devel/build_chroot``) is provided, for building a chroot that contains all
+ the required development libraries and tools for compiling Ganeti on a Debian
+ Squeeze system.
+- A new tool, ``harep``, for performing self-repair and recreation of instances
+ in Ganeti has been added.
+- Split queries are enabled for tags, network, exports, cluster info, groups,
+ jobs, nodes.
+- New command ``show-ispecs-cmd`` for ``gnt-cluster`` and ``gnt-group``.
+ It prints the command line to set the current policies, to ease
+ changing them.
+- Add the ``vnet_hdr`` HV parameter for KVM, to control whether the tap
+ devices for KVM virtio-net interfaces will get created with VNET_HDR
+ (IFF_VNET_HDR) support. If set to false, it disables offloading on the
+ virtio-net interfaces, which prevents host kernel tainting and log
+ flooding, when dealing with broken or malicious virtio-net drivers.
+ It's set to true by default.
+- Instance failover now supports a ``--cleanup`` parameter for fixing previous
+ failures.
+- Support 'viridian' parameter in Xen HVM
+- Support DSA SSH keys in bootstrap
+- To simplify the work of packaging frameworks that want to add the needed users
+ and groups in a split-user setup themselves, at build time three files in
+ ``doc/users`` will be generated. The ``groups`` files contains, one per line,
+ the groups to be generated, the ``users`` file contains, one per line, the
+ users to be generated, optionally followed by their primary group, where
+ important. The ``groupmemberships`` file contains, one per line, additional
+ user-group membership relations that need to be established. The syntax of
+ these files will remain stable in all future versions.
+
+
+New dependencies
+~~~~~~~~~~~~~~~~
+The following new dependencies have been added:
+
+For Haskell:
+- The ``curl`` library is not optional anymore for compiling the Haskell code.
+- ``snap-server`` library (if monitoring is enabled).
+
+For Python:
+- The minimum Python version needed to run Ganeti is now 2.6.
+- ``yaml`` library (only for running the QA).
+
+Since 2.8.0 rc3
+~~~~~~~~~~~~~~~
+- Perform proper cleanup on termination of Haskell daemons
+- Fix corner-case in handling of remaining retry time
+
+
+Version 2.8.0 rc3
+-----------------
+
+*(Released Tue, 17 Sep 2013)*
+
+- To simplify the work of packaging frameworks that want to add the needed users
+ and groups in a split-user setup themselves, at build time three files in
+ ``doc/users`` will be generated. The ``groups`` files contains, one per line,
+ the groups to be generated, the ``users`` file contains, one per line, the
+ users to be generated, optionally followed by their primary group, where
+ important. The ``groupmemberships`` file contains, one per line, additional
+ user-group membership relations that need to be established. The syntax of
+ these files will remain stable in all future versions.
+- Add a default to file-driver when unspecified over RAPI (Issue 571)
+- Mark the DSA host pubkey as optional, and remove it during config downgrade
+ (Issue 560)
+- Some documentation fixes
+
+
+Version 2.8.0 rc2
+-----------------
+
+*(Released Tue, 27 Aug 2013)*
+
+The second release candidate of the 2.8 series. Since 2.8.0. rc1:
+
+- Support 'viridian' parameter in Xen HVM (Issue 233)
+- Include VCS version in ``gnt-cluster version``
+- Support DSA SSH keys in bootstrap (Issue 338)
+- Fix batch creation of instances
+- Use FQDN to check master node status (Issue 551)
+- Make the DRBD collector more failure-resilient
+
+
+Version 2.8.0 rc1
+-----------------
+
+*(Released Fri, 2 Aug 2013)*
+
+The first release candidate of the 2.8 series. Since 2.8.0 beta1:
+
+- Fix upgrading/downgrading from 2.7
+- Increase maximum RAPI message size
+- Documentation updates
+- Split ``confd`` between ``luxid`` and ``confd``
+- Merge 2.7 series up to the 2.7.1 release
+- Allow the ``modify_etc_hosts`` option to be changed
+- Add better debugging for ``luxid`` queries
+- Expose bulk parameter for GetJobs in RAPI client
+- Expose missing ``network`` fields in RAPI
+- Add some ``cluster verify`` tests
+- Some unittest fixes
+- Fix a malfunction in ``hspace``'s tiered allocation
+- Fix query compatibility between haskell and python implementations
+- Add the ``vnet_hdr`` HV parameter for KVM
+- Add ``--cleanup`` to instance failover
+- Change the connected groups format in ``gnt-network info`` output; it
+ was previously displayed as a raw list by mistake. (Merged from 2.7)
+
+
+Version 2.8.0 beta1
+-------------------
+
+*(Released Mon, 24 Jun 2013)*
+
+This was the first beta release of the 2.8 series. All important changes
+are listed in the latest 2.8 entry.
+
+
+Version 2.7.2
+-------------
+
+*(Released Thu, 26 Sep 2013)*
+
+- Change the connected groups format in ``gnt-network info`` output; it
+ was previously displayed as a raw list by mistake
+- Check disk template in right dict when copying
+- Support multi-instance allocs without iallocator
+- Fix some errors in the documentation
+- Fix formatting of tuple in an error message
+
+
+Version 2.7.1
+-------------
+
+*(Released Thu, 25 Jul 2013)*
+
+- Add logrotate functionality in daemon-util
+- Add logrotate example file
+- Add missing fields to network queries over rapi
+- Fix network object timestamps
+- Add support for querying network timestamps
+- Fix a typo in the example crontab
+- Fix a documentation typo
+
+
+Version 2.7.0
+-------------
+
+*(Released Thu, 04 Jul 2013)*
+
+Incompatible/important changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- Instance policies for disk size were documented to be on a per-disk
+ basis, but hail applied them to the sum of all disks. This has been
+ fixed.
+- ``hbal`` will now exit with status 0 if, during job execution over
+ LUXI, early exit has been requested and all jobs are successful;
+ before, exit status 1 was used, which cannot be differentiated from
+ "job error" case
+- Compatibility with newer versions of rbd has been fixed
+- ``gnt-instance batch-create`` has been changed to use the bulk create
+ opcode from Ganeti. This lead to incompatible changes in the format of
+ the JSON file. It's now not a custom dict anymore but a dict
+ compatible with the ``OpInstanceCreate`` opcode.
+- Parent directories for file storage need to be listed in
+ ``$sysconfdir/ganeti/file-storage-paths`` now. ``cfgupgrade`` will
+ write the file automatically based on old configuration values, but it
+ can not distribute it across all nodes and the file contents should be
+ verified. Use ``gnt-cluster copyfile
+ $sysconfdir/ganeti/file-storage-paths`` once the cluster has been
+ upgraded. The reason for requiring this list of paths now is that
+ before it would have been possible to inject new paths via RPC,
+ allowing files to be created in arbitrary locations. The RPC protocol
+ is protected using SSL/X.509 certificates, but as a design principle
+ Ganeti does not permit arbitrary paths to be passed.
+- The parsing of the variants file for OSes (see
+ :manpage:`ganeti-os-interface(7)`) has been slightly changed: now empty
+ lines and comment lines (starting with ``#``) are ignored for better
+ readability.
+- The ``setup-ssh`` tool added in Ganeti 2.2 has been replaced and is no
+ longer available. ``gnt-node add`` now invokes a new tool on the
+ destination node, named ``prepare-node-join``, to configure the SSH
+ daemon. Paramiko is no longer necessary to configure nodes' SSH
+ daemons via ``gnt-node add``.
+- Draining (``gnt-cluster queue drain``) and un-draining the job queue
+ (``gnt-cluster queue undrain``) now affects all nodes in a cluster and
+ the flag is not reset after a master failover.
+- Python 2.4 has *not* been tested with this release. Using 2.6 or above
+ is recommended. 2.6 will be mandatory from the 2.8 series.
+
+
+New features
+~~~~~~~~~~~~
+
+- New network management functionality to support automatic allocation
+ of IP addresses and managing of network parameters. See
+ :manpage:`gnt-network(8)` for more details.
+- New external storage backend, to allow managing arbitrary storage
+ systems external to the cluster. See
+ :manpage:`ganeti-extstorage-interface(7)`.
+- New ``exclusive-storage`` node parameter added, restricted to
+ nodegroup level. When it's set to true, physical disks are assigned in
+ an exclusive fashion to instances, as documented in :doc:`Partitioned
+ Ganeti <design-partitioned>`. Currently, only instances using the
+ ``plain`` disk template are supported.
+- The KVM hypervisor has been updated with many new hypervisor
+ parameters, including a generic one for passing arbitrary command line
+ values. See a complete list in :manpage:`gnt-instance(8)`. It is now
+ compatible up to qemu 1.4.
+- A new tool, called ``mon-collector``, is the stand-alone executor of
+ the data collectors for a monitoring system. As of this version, it
+ just includes the DRBD data collector, that can be executed by calling
+ ``mon-collector`` using the ``drbd`` parameter. See
+ :manpage:`mon-collector(7)`.
+- A new user option, :pyeval:`rapi.RAPI_ACCESS_READ`, has been added
+ for RAPI users. It allows granting permissions to query for
+ information to a specific user without giving
+ :pyeval:`rapi.RAPI_ACCESS_WRITE` permissions.
+- A new tool named ``node-cleanup`` has been added. It cleans remains of
+ a cluster from a machine by stopping all daemons, removing
+ certificates and ssconf files. Unless the ``--no-backup`` option is
+ given, copies of the certificates are made.
+- Instance creations now support the use of opportunistic locking,
+ potentially speeding up the (parallel) creation of multiple instances.
+ This feature is currently only available via the :doc:`RAPI
+ <rapi>` interface and when an instance allocator is used. If the
+ ``opportunistic_locking`` parameter is set the opcode will try to
+ acquire as many locks as possible, but will not wait for any locks
+ held by other opcodes. If not enough resources can be found to
+ allocate the instance, the temporary error code
+ :pyeval:`errors.ECODE_TEMP_NORES` is returned. The operation can be
+ retried thereafter, with or without opportunistic locking.
+- New experimental linux-ha resource scripts.
+- Restricted-commands support: ganeti can now be asked (via command line
+ or rapi) to perform commands on a node. These are passed via ganeti
+ RPC rather than ssh. This functionality is restricted to commands
+ specified on the ``$sysconfdir/ganeti/restricted-commands`` for security
+ reasons. The file is not copied automatically.
+
+
+Misc changes
+~~~~~~~~~~~~
+
+- Diskless instances are now externally mirrored (Issue 237). This for
+ now has only been tested in conjunction with explicit target nodes for
+ migration/failover.
+- Queries not needing locks or RPC access to the node can now be
+ performed by the confd daemon, making them independent from jobs, and
+ thus faster to execute. This is selectable at configure time.
+- The functionality for allocating multiple instances at once has been
+ overhauled and is now also available through :doc:`RAPI <rapi>`.
+
+There are no significant changes from version 2.7.0~rc3.
+
+
+Version 2.7.0 rc3
+-----------------
+
+*(Released Tue, 25 Jun 2013)*
+
+- Fix permissions on the confd query socket (Issue 477)
+- Fix permissions on the job archive dir (Issue 498)
+- Fix handling of an internal exception in replace-disks (Issue 472)
+- Fix gnt-node info handling of shortened names (Issue 497)
+- Fix gnt-instance grow-disk when wiping is enabled
+- Documentation improvements, and support for newer pandoc
+- Fix hspace honoring ipolicy for disks (Issue 484)
+- Improve handling of the ``kvm_extra`` HV parameter
+
+
+Version 2.7.0 rc2
+-----------------
+
+*(Released Fri, 24 May 2013)*
+
+- ``devel/upload`` now works when ``/var/run`` on the target nodes is a
+ symlink.
+- Disks added through ``gnt-instance modify`` or created through
+ ``gnt-instance recreate-disks`` are wiped, if the
+ ``prealloc_wipe_disks`` flag is set.
+- If wiping newly created disks fails, the disks are removed. Also,
+ partial failures in creating disks through ``gnt-instance modify``
+ triggers a cleanup of the partially-created disks.
+- Removing the master IP address doesn't fail if the address has been
+ already removed.
+- Fix ownership of the OS log dir
+- Workaround missing SO_PEERCRED constant (Issue 191)
+
+
+Version 2.7.0 rc1
+-----------------
+
+*(Released Fri, 3 May 2013)*
+
+This was the first release candidate of the 2.7 series. Since beta3:
+
+- Fix kvm compatibility with qemu 1.4 (Issue 389)
+- Documentation updates (admin guide, upgrade notes, install
+ instructions) (Issue 372)
+- Fix gnt-group list nodes and instances count (Issue 436)
+- Fix compilation without non-mandatory libraries (Issue 441)
+- Fix xen-hvm hypervisor forcing nics to type 'ioemu' (Issue 247)
+- Make confd logging more verbose at INFO level (Issue 435)
+- Improve "networks" documentation in :manpage:`gnt-instance(8)`
+- Fix failure path for instance storage type conversion (Issue 229)
+- Update htools text backend documentation
+- Improve the renew-crypto section of :manpage:`gnt-cluster(8)`
+- Disable inter-cluster instance move for file-based instances, because
+ it is dependant on instance export, which is not supported for
+ file-based instances. (Issue 414)
+- Fix gnt-job crashes on non-ascii characters (Issue 427)
+- Fix volume group checks on non-vm-capable nodes (Issue 432)
+
+
+Version 2.7.0 beta3
+-------------------
+
+*(Released Mon, 22 Apr 2013)*
+
+This was the third beta release of the 2.7 series. Since beta2:
+
+- Fix hail to verify disk instance policies on a per-disk basis (Issue 418).
+- Fix data loss on wrong usage of ``gnt-instance move``
+- Properly export errors in confd-based job queries
+- Add ``users-setup`` tool
+- Fix iallocator protocol to report 0 as a disk size for diskless
+ instances. This avoids hail breaking when a diskless instance is
+ present.
+- Fix job queue directory permission problem that made confd job queries
+ fail. This requires running an ``ensure-dirs --full-run`` on upgrade
+ for access to archived jobs (Issue 406).
+- Limit the sizes of networks supported by ``gnt-network`` to something
+ between a ``/16`` and a ``/30`` to prevent memory bloat and crashes.
+- Fix bugs in instance disk template conversion
+- Fix GHC 7 compatibility
+- Fix ``burnin`` install path (Issue 426).
+- Allow very small disk grows (Issue 347).
+- Fix a ``ganeti-noded`` memory bloat introduced in 2.5, by making sure
+ that noded doesn't import masterd code (Issue 419).
+- Make sure the default metavg at cluster init is the same as the vg, if
+ unspecified (Issue 358).
+- Fix cleanup of partially created disks (part of Issue 416)
+
+
+Version 2.7.0 beta2
+-------------------
+
+*(Released Tue, 2 Apr 2013)*
+
+This was the second beta release of the 2.7 series. Since beta1:
+
+- Networks no longer have a "type" slot, since this information was
+ unused in Ganeti: instead of it tags should be used.
+- The rapi client now has a ``target_node`` option to MigrateInstance.
+- Fix early exit return code for hbal (Issue 386).
+- Fix ``gnt-instance migrate/failover -n`` (Issue 396).
+- Fix ``rbd showmapped`` output parsing (Issue 312).
+- Networks are now referenced indexed by UUID, rather than name. This
+ will require running cfgupgrade, from 2.7.0beta1, if networks are in
+ use.
+- The OS environment now includes network information.
+- Deleting of a network is now disallowed if any instance nic is using
+ it, to prevent dangling references.
+- External storage is now documented in man pages.
+- The exclusive_storage flag can now only be set at nodegroup level.
+- Hbal can now submit an explicit priority with its jobs.
+- Many network related locking fixes.
+- Bump up the required pylint version to 0.25.1.
+- Fix the ``no_remember`` option in RAPI client.
+- Many ipolicy related tests, qa, and fixes.
+- Many documentation improvements and fixes.
+- Fix building with ``--disable-file-storage``.
+- Fix ``-q`` option in htools, which was broken if passed more than
+ once.
+- Some haskell/python interaction improvements and fixes.
+- Fix iallocator in case of missing LVM storage.
+- Fix confd config load in case of ``--no-lvm-storage``.
+- The confd/query functionality is now mentioned in the security
+ documentation.
+
+
+Version 2.7.0 beta1
+-------------------
+
+*(Released Wed, 6 Feb 2013)*
+
+This was the first beta release of the 2.7 series. All important changes
+are listed in the latest 2.7 entry.
+
+
+Version 2.6.2
+-------------
+
+*(Released Fri, 21 Dec 2012)*
+
+Important behaviour change: hbal won't rebalance anymore instances which
+have the ``auto_balance`` attribute set to false. This was the intention
+all along, but until now it only skipped those from the N+1 memory
+reservation (DRBD-specific).
+
+A significant number of bug fixes in this release:
+
+- Fixed disk adoption interaction with ipolicy checks.
+- Fixed networking issues when instances are started, stopped or
+ migrated, by forcing the tap device's MAC prefix to "fe" (issue 217).
+- Fixed the warning in cluster verify for shared storage instances not
+ being redundant.
+- Fixed removal of storage directory on shared file storage (issue 262).
+- Fixed validation of LVM volume group name in OpClusterSetParams
+ (``gnt-cluster modify``) (issue 285).
+- Fixed runtime memory increases (``gnt-instance modify -m``).
+- Fixed live migration under Xen's ``xl`` mode.
+- Fixed ``gnt-instance console`` with ``xl``.
+- Fixed building with newer Haskell compiler/libraries.
+- Fixed PID file writing in Haskell daemons (confd); this prevents
+ restart issues if confd was launched manually (outside of
+ ``daemon-util``) while another copy of it was running
+- Fixed a type error when doing live migrations with KVM (issue 297) and
+ the error messages for failing migrations have been improved.
+- Fixed opcode validation for the out-of-band commands (``gnt-node
+ power``).
+- Fixed a type error when unsetting OS hypervisor parameters (issue
+ 311); now it's possible to unset all OS-specific hypervisor
+ parameters.
+- Fixed the ``dry-run`` mode for many operations: verification of
+ results was over-zealous but didn't take into account the ``dry-run``
+ operation, resulting in "wrong" failures.
+- Fixed bash completion in ``gnt-job list`` when the job queue has
+ hundreds of entries; especially with older ``bash`` versions, this
+ results in significant CPU usage.
+
+And lastly, a few other improvements have been made:
+
+- Added option to force master-failover without voting (issue 282).
+- Clarified error message on lock conflict (issue 287).
+- Logging of newly submitted jobs has been improved (issue 290).
+- Hostname checks have been made uniform between instance rename and
+ create (issue 291).
+- The ``--submit`` option is now supported by ``gnt-debug delay``.
+- Shutting down the master daemon by sending SIGTERM now stops it from
+ processing jobs waiting for locks; instead, those jobs will be started
+ once again after the master daemon is started the next time (issue
+ 296).
+- Support for Xen's ``xl`` program has been improved (besides the fixes
+ above).
+- Reduced logging noise in the Haskell confd daemon (only show one log
+ entry for each config reload, instead of two).
+- Several man page updates and typo fixes.
+
+