Export docs from wiki to repo
[ganeti-local] / NEWS
diff --git a/NEWS b/NEWS
index 417d59f..a2cdec7 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,10 +2,551 @@ News
 ====
 
 
-Version 2.7.0 rc2
+Version 2.10.0 rc1
+------------------
+
+*(Released Tue, 17 Dec 2013)*
+
+Incompatible/important changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- Adding disks with 'gnt-instance modify' now waits for the disks to sync per
+  default. Specify --no-wait-for-sync to override this behavior.
+- The Ganeti python code now adheres to a private-module layout. In particular,
+  the module 'ganeti' is no longer in the python search path.
+- On instance allocation, the iallocator now considers non-LVM storage
+  properly. In particular, actual file storage space information is used
+  when allocating space for a file/sharedfile instance.
+- When disabling disk templates cluster-wide, the cluster now first
+  checks whether there are instances still using those templates.
+- 'gnt-node list-storage' now also reports storage information about
+  file-based storage types.
+- In case of non drbd instances, export \*_SECONDARY environment variables
+  as empty strings (and not "None") during 'instance-migrate' related hooks.
+
+New features
+~~~~~~~~~~~~
+
+- KVM hypervisors can now access RBD storage directly without having to
+  go through a block device.
+- A new command 'gnt-cluster upgrade' was added that automates the upgrade
+  procedure between two Ganeti versions that are both 2.10 or higher.
+- The move-instance command can now change disk templates when moving
+  instances, and does not require any node placement options to be
+  specified if the destination cluster has a default iallocator.
+- Users can now change the soundhw and cpuid settings for XEN hypervisors.
+- Hail and hbal now have the (optional) capability of accessing average CPU
+  load information through the monitoring deamon, and to use it to dynamically
+  adapt the allocation of instances.
+- Hotplug support. Introduce new option '--hotplug' to ``gnt-instance modify``
+  so that disk and NIC modifications take effect without the need of actual
+  reboot. There are a couple of constrains currently for this feature:
+
+   - only KVM hypervisor (versions >= 1.0) supports it,
+   - one can not (yet) hotplug a disk using userspace access mode for RBD
+   - in case of a downgrade instances should suffer a reboot in order to
+     be migratable (due to core change of runtime files)
+
+Misc changes
+~~~~~~~~~~~~
+
+- A new test framework for logical units was introduced and the test
+  coverage for logical units was improved significantly.
+- Opcodes are entirely generated from Haskell using the tool 'hs2py' and
+  the module 'src/Ganeti/OpCodes.hs'.
+- Constants are also generated from Haskell using the tool
+  'hs2py-constants' and the module 'src/Ganeti/Constants.hs', with the
+  exception of socket related constants, which require changing the
+  cluster configuration file, and HVS related constants, because they
+  are part of a port of instance queries to Haskell.  As a result, these
+  changes will be part of the next release of Ganeti.
+
+New dependencies
+~~~~~~~~~~~~~~~~
+
+The following new dependencies have been added/updated.
+
+Python
+
+- The version requirements for ``python-mock`` have increased to at least
+  version 1.0.1. It is still used for testing only.
+
+Since 2.10.0 beta1
+~~~~~~~~~~~~~~~~~~
+
+- All known issues in 2.10.0 beta1 have been resolved (see changes from
+  the 2.8 branch).
+- Improve handling of KVM runtime files from earlier Ganeti versions
+- Documentation fixes
+
+Inherited from the 2.9 branch:
+
+- use custom KVM path if set for version checking
+- SingleNotifyPipeCondition: don't share pollers
+
+Inherited from the 2.8 branch:
+
+- 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.10.0 beta1
+--------------------
+
+*(Released Wed, 27 Nov 2013)*
+
+This was the first beta release of the 2.10 series. All important changes
+are listed in the latest 2.10 entry.
+
+Known issues
+~~~~~~~~~~~~
+
+The following issues are known to be present in the beta and will be fixed
+before rc1.
+
+- Issue 477: Wrong permissions for confd LUXI socket
+- Issue 621: Instance related opcodes do not aquire network/group locks
+- Issue 622: Assertion Error: Node locks differ from node resource locks
+- Issue 623: IPv6 Masterd <-> Luxid communication error
+
+
+Version 2.9.2
+-------------
+
+*(Released Fri, 13 Dec 2013)*
+
+- use custom KVM path if set for version checking
+- SingleNotifyPipeCondition: don't share pollers
+
+Inherited from the 2.8 branch:
+
+- 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.9.1
+-------------
+
+*(Released Wed, 13 Nov 2013)*
+
+- fix bug, that kept nodes offline when readding
+- when verifying DRBD versions, ignore unavailable nodes
+- fix bug that made the console unavailable on kvm in split-user
+  setup (issue 608)
+- DRBD: ensure peers are UpToDate for dual-primary (inherited 2.8.2)
+
+
+Version 2.9.0
+-------------
+
+*(Released Tue, 5 Nov 2013)*
+
+Incompatible/important changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- hroller now also plans for capacity to move non-redundant instances off
+  any node to be rebooted; the old behavior of completely ignoring any
+  non-redundant instances can be restored by adding the --ignore-non-redundant
+  option.
+- The cluster option '--no-lvm-storage' was removed in favor of the new option
+  '--enabled-disk-templates'.
+- On instance creation, disk templates no longer need to be specified
+  with '-t'. The default disk template will be taken from the list of
+  enabled disk templates.
+- The monitoring daemon is now running as root, in order to be able to collect
+  information only available to root (such as the state of Xen instances).
+- The ConfD client is now IPv6 compatible.
+- File and shared file storage is no longer dis/enabled at configure time,
+  but using the option '--enabled-disk-templates' at cluster initialization and
+  modification.
+- The default directories for file and shared file storage are not anymore
+  specified at configure time, but taken from the cluster's configuration.
+  They can be set at cluster initialization and modification with
+  '--file-storage-dir' and '--shared-file-storage-dir'.
+- Cluster verification now includes stricter checks regarding the
+  default file and shared file storage directories. It now checks that
+  the directories are explicitely allowed in the 'file-storage-paths' file and
+  that the directories exist on all nodes.
+- The list of allowed disk templates in the instance policy and the list
+  of cluster-wide enabled disk templates is now checked for consistency
+  on cluster or group modification. On cluster initialization, the ipolicy
+  disk templates are ensured to be a subset of the cluster-wide enabled
+  disk templates.
+
+New features
+~~~~~~~~~~~~
+
+- DRBD 8.4 support. Depending on the installed DRBD version, Ganeti now uses
+  the correct command syntax. It is possible to use different DRBD versions
+  on different nodes as long as they are compatible to each other. This
+  enables rolling upgrades of DRBD with no downtime. As permanent operation
+  of different DRBD versions within a node group is discouraged,
+  ``gnt-cluster verify`` will emit a warning if it detects such a situation.
+- New "inst-status-xen" data collector for the monitoring daemon, providing
+  information about the state of the xen instances on the nodes.
+- New "lv" data collector for the monitoring daemon, collecting data about the
+  logical volumes on the nodes, and pairing them with the name of the instances
+  they belong to.
+- New "diskstats" data collector, collecting the data from /proc/diskstats and
+  presenting them over the monitoring daemon interface.
+- The ConfD client is now IPv6 compatible.
+
+New dependencies
+~~~~~~~~~~~~~~~~
+The following new dependencies have been added.
+
+Python
+
+- ``python-mock`` (http://www.voidspace.org.uk/python/mock/) is now a required
+  for the unit tests (and only used for testing).
+
+Haskell
+
+- ``hslogger`` (http://software.complete.org/hslogger) is now always
+  required, even if confd is not enabled.
+
+Since 2.9.0 rc3
+~~~~~~~~~~~~~~~
+
+- Correctly start/stop luxid during gnt-cluster master-failover (inherited
+  from stable-2.8)
+- Improved error messsages (inherited from stable-2.8)
+
+
+Version 2.9.0 rc3
+-----------------
+
+*(Released Tue, 15 Oct 2013)*
+
+The third release candidate in the 2.9 series. Since 2.9.0 rc2:
+
+- in implicit configuration upgrade, match ipolicy with enabled disk templates
+- improved harep documentation (inherited from stable-2.8)
+
+
+Version 2.9.0 rc2
+-----------------
+
+*(Released Wed, 9 Oct 2013)*
+
+The second release candidate in the 2.9 series. Since 2.9.0 rc1:
+
+- Fix bug in cfgupgrade that led to failure when upgrading from 2.8 with
+  at least one DRBD instance.
+- Fix bug in cfgupgrade that led to an invalid 2.8 configuration after
+  downgrading.
+
+
+Version 2.9.0 rc1
+-----------------
+
+*(Released Tue, 1 Oct 2013)*
+
+The first release candidate in the 2.9 series. Since 2.9.0 beta1:
+
+- various bug fixes
+- update of the documentation, in particular installation instructions
+- merging of LD_* constants into DT_* constants
+- python style changes to be compatible with newer versions of pylint
+
+
+Version 2.9.0 beta1
+-------------------
+
+*(Released Thu, 29 Aug 2013)*
+
+This was the first beta release of the 2.9 series. All important changes
+are listed in the latest 2.9 entry.
+
+
+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
 -----------------
 
-*(unreleased)*
+*(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
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -110,7 +651,28 @@ Misc changes
 - The functionality for allocating multiple instances at once has been
   overhauled and is now also available through :doc:`RAPI <rapi>`.
 
-Since rc1:
+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.