====
-Version 2.8.0 beta1
--------------------
+Version 2.8.4
+-------------
-*(unreleased)*
+*(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 minimum Python version needed to run Ganeti is now 2.6.
- 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``.
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).
-Version 2.7.0 rc1
+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
-----------------
-*(unreleased)*
+*(Released Tue, 17 Sep 2013)*
-- Fix hail to verify disk instance policies on a per-disk basis (Issue 418).
+- 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.7.0 beta2
--------------------
+Version 2.8.0 rc2
+-----------------
-*(Released Tue, 2 Apr 2013)*
+*(Released Tue, 27 Aug 2013)*
-- Networks no longer have a "type" slot, since this information was
- unused in Ganeti: instead of it tags should be used.
-- Diskless instances are now externally mirrored (Issue 237). This for
- now has only been tested in conjunction with explicit target nodes for
- migration/failover.
-- 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.
+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.7.0 beta1
+
+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 Wed, 6 Feb 2013)*
+*(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
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
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.
-- 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.
- 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
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.
-- The functionality for allocating multiple instances at once has been
- overhauled and is now also available through :doc:`RAPI <rapi>`.
-- Man pages can now be included when the documentation is built, in
- which case the output is in ``doc/man-html``. The configure-time
- option is ``--enable-manpages-in-doc``. Sphinx 1.0 or higher is
- required.
-- A new htool called ``hroller`` helps scheduling parallel shutdown of
- nodes on clusters where all instances are shut down, but without ever
- rebooting both primary and secondary node for an instance at the same
- time.
+- 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 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)`.
-- 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)`.
-- New ``exclusive-storage`` node parameter added. 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.
-- 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)`.
-- Instance renames of LVM-based instances will now update the LV tags
- (which can be used to recover the instance-to-LV mapping in case of
- emergencies)
-- ``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
+- 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