Merge branch 'stable-2.9' into stable-2.10
authorHrvoje Ribicic <riba@google.com>
Thu, 10 Dec 2015 18:04:48 +0000 (19:04 +0100)
committerHrvoje Ribicic <riba@google.com>
Fri, 11 Dec 2015 02:22:49 +0000 (03:22 +0100)
* stable-2.9
  Bump revision number
  Update NEWS file for 2.9.7 release
  Improve RAPI section on security

Conflicts:
  NEWS - leave 2.9.7 info in
  configure.ac - revert version bump

Signed-off-by: Hrvoje Ribicic <riba@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

1  2 
NEWS
doc/security.rst

diff --cc NEWS
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -2,354 -2,67 +2,415 @@@ New
  ====
  
  
 +Version 2.10.7
 +--------------
 +
 +*(Released Thu, 7 Aug 2014)*
 +
 +Important security release. In 2.10.0, the
 +'gnt-cluster upgrade' command was introduced. Before
 +performing an upgrade, the configuration directory of
 +the cluster is backed up. Unfortunately, the archive was
 +written with permissions that make it possible for
 +non-privileged users to read the archive and thus have
 +access to cluster and RAPI keys. After this release,
 +the archive will be created with privileged access only.
 +
 +We strongly advise you to restrict the permissions of
 +previously created archives. The archives are found in
 +/var/lib/ganeti*.tar (unless otherwise configured with
 +--localstatedir or --with-backup-dir).
 +
 +If you suspect that non-privileged users have accessed
 +your archives already, we advise you to renew the
 +cluster's crypto keys using 'gnt-cluster renew-crypto'
 +and to reset the RAPI credentials by editing
 +/var/lib/ganeti/rapi_users (respectively under a
 +different path if configured differently with
 +--localstatedir).
 +
 +Other changes included in this release:
 +
 +- Fix handling of Xen instance states.
 +- Fix NIC configuration with absent NIC VLAN
 +- Adapt relative path expansion in PATH to new environment
 +- Exclude archived jobs from configuration backups
 +- Fix RAPI for split query setup
 +- Allow disk hot-remove even with chroot or SM
 +
 +Inherited from the 2.9 branch:
 +
 +- Make htools tolerate missing 'spfree' on luxi
 +
 +
 +Version 2.10.6
 +--------------
 +
 +*(Released Mon, 30 Jun 2014)*
 +
 +- Make Ganeti tolerant towards differnt openssl library
 +  version on different nodes (issue 853).
 +- Allow hspace to make useful predictions in multi-group
 +  clusters with one group overfull (isse 861).
 +- Various gnt-network related fixes.
 +- Fix disk hotplug with userspace access.
 +- Various documentation errors fixed.
 +
 +
 +Version 2.10.5
 +--------------
 +
 +*(Released Mon, 2 Jun 2014)*
 +
 +- Two new options have been added to gnt-group evacuate.
 +  The 'sequential' option forces all the evacuation steps to
 +  be carried out sequentially, thus avoiding congestion on a
 +  slow link between node groups. The 'force-failover' option
 +  disallows migrations and forces failovers to be used instead.
 +  In this way evacuation to a group with vastly differnet
 +  hypervisor is possible.
 +- In tiered allocation, when looking for ways on how to shrink
 +  an instance, the canoncial path is tried first, i.e., in each
 +  step reduce on the resource most placements are blocked on. Only
 +  if no smaller fitting instance can be found shrinking a single
 +  resource till fit is tried.
 +- For finding the placement of an instance, the duplicate computations
 +  in the computation of the various cluster scores are computed only
 +  once. This significantly improves the performance of hspace for DRBD
 +  on large clusters; for other clusters, a slight performance decrease
 +  might occur. Moreover, due to the changed order, floating point
 +  number inaccuracies accumulate differently, thus resulting in different
 +  cluster scores. It has been verified that the effect of these different
 +  roundings is less than 1e-12.
 +- network queries fixed with respect to instances
 +- relax too strict prerequisite in LUClusterSetParams for DRBD helpers
 +- VArious improvements to QA and build-time tests
 +
 +
 +Version 2.10.4
 +--------------
 +
 +*(Released Thu, 15 May 2014)*
 +
 +- Support restricted migration in hbal
 +- Fix for the --shared-file-storage-dir of gnt-cluster modify (issue 811)
 +- Fail in replace-disks if attaching disks fails (issue 814)
 +- Set IFF_ONE_QUEUE on created tap interfaces for KVM
 +- Small fixes and enhancements in the build system
 +- Various documentation fixes (e.g. issue 810)
 +
 +
 +Version 2.10.3
 +--------------
 +
 +*(Released Wed, 16 Apr 2014)*
 +
 +- Fix filtering of pending jobs with -o id (issue 778)
 +- Make RAPI API calls more symmetric (issue 770)
 +- Make parsing of old cluster configuration more robust (issue 783)
 +- Fix wrong output of gnt-instance info after migrations
 +- Fix reserved PCI slots for KVM hotplugging
 +- Use runtime hypervisor parameters to calculate bockdevice options for KVM
 +- Fix high node daemon load during disk sync if the sync is paused manually
 +  (issue 792)
 +- Improve opportunistic locking during instance creation (issue 791)
 +
 +Inherited from the 2.9 branch:
 +
 +- Make watcher submit queries low priority (issue 772)
 +- Add reason parameter to RAPI client functions (issue 776)
 +- Fix failing gnt-node list-drbd command (issue 777)
 +- Properly display fake job locks in gnt-debug.
 +- small fixes in documentation
 +
 +
 +Version 2.10.2
 +--------------
 +
 +*(Released Mon, 24 Mar 2014)*
 +
 +- Fix conflict between virtio + spice or soundhw (issue 757)
 +- accept relative paths in gnt-cluster copyfile (issue 754)
 +- Introduce shutdown timeout for 'xm shutdown' command
 +- Improve RAPI detection of the watcher (issue 752)
 +
 +
 +Version 2.10.1
 +--------------
 +
 +*(Released Wed, 5 Mar 2014)*
 +
 +- Fix incorrect invocation of hooks on offline nodes (issue 742)
 +- Fix incorrect exit code of gnt-cluster verify in certain circumstances
 +  (issue 744)
 +
 +Inherited from the 2.9 branch:
 +
 +- Fix overflow problem in hbal that caused it to break when waiting for
 +  jobs for more than 10 minutes (issue 717)
 +- Make hbal properly handle non-LVM storage
 +- Properly export and import NIC parameters, and do so in a backwards
 +  compatible way (issue 716)
 +- Fix net-common script in case of routed mode (issue 728)
 +- Improve documentation (issues 724, 730)
 +
 +
 +Version 2.10.0
 +--------------
 +
 +*(Released Thu, 20 Feb 2014)*
 +
 +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)
 +   - ``python-fdsend`` is required for NIC hotplugging.
 +
 +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.
 +- ``python-fdsend`` (https://gitorious.org/python-fdsend) is optional
 +  but required for KVM NIC hotplugging to work.
 +
 +Since 2.10.0 rc3
 +~~~~~~~~~~~~~~~~
 +
 +- Fix integer overflow problem in hbal
 +
 +
 +Version 2.10.0 rc3
 +------------------
 +
 +*(Released Wed, 12 Feb 2014)*
 +
 +This was the third RC release of the 2.10 series. Since 2.10.0 rc2:
 +
 +- Improved hotplug robustness
 +- Start Ganeti daemons after ensure-dirs during upgrade
 +- Documentation improvements
 +
 +Inherited from the 2.9 branch:
 +
 +- Fix the RAPI instances-multi-alloc call
 +- assign unique filenames to file-based disks
 +- gracefully handle degraded non-diskless instances with 0 disks (issue 697)
 +- noded now runs with its specified group, which is the default group,
 +  defaulting to root (issue 707)
 +- make using UUIDs to identify nodes in gnt-node consistently possible
 +  (issue 703)
 +
 +
 +Version 2.10.0 rc2
 +------------------
 +
 +*(Released Fri, 31 Jan 2014)*
 +
 +This was the second RC release of the 2.10 series. Since 2.10.0 rc1:
 +
 +- Documentation improvements
 +- Run drbdsetup syncer only on network attach
 +- Include target node in hooks nodes for migration
 +- Fix configure dirs
 +- Support post-upgrade hooks during cluster upgrades
 +
 +Inherited from the 2.9 branch:
 +
 +- Ensure that all the hypervisors exist in the config file (Issue 640)
 +- Correctly recognise the role as master node (Issue 687)
 +- configure: allow detection of Sphinx 1.2+ (Issue 502)
 +- gnt-instance now honors the KVM path correctly (Issue 691)
 +
 +Inherited from the 2.8 branch:
 +
 +- 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 if ConfD was disabled. (Issue 685)
 +
 +
 +Version 2.10.0 rc1
 +------------------
 +
 +*(Released Tue, 17 Dec 2013)*
 +
 +This was the first RC release of the 2.10 series. 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.7
+ -------------
+ *(Released Fri, 11 Dec 2015)*
+ Important changes and security notes
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Security release.
+ CVE-2015-7944
+ Ganeti provides a RESTful control interface called the RAPI. Its HTTPS
+ implementation is vulnerable to DoS attacks via client-initiated SSL
+ parameter renegotiation. While the interface is not meant to be exposed
+ publicly, due to the fact that it binds to all interfaces, we believe
+ some users might be exposing it unintentionally and are vulnerable. A
+ DoS attack can consume resources meant for Ganeti daemons and instances
+ running on the master node, making both perform badly.
+ Fixes are not feasible due to the OpenSSL Python library not exposing
+ functionality needed to disable client-side renegotiation. Instead, we
+ offer instructions on how to control RAPI's exposure, along with info
+ on how RAPI can be setup alongside an HTTPS proxy in case users still
+ want or need to expose the RAPI interface. The instructions are
+ outlined in Ganeti's security document: doc/html/security.html
+ CVE-2015-7945
+ Ganeti leaks the DRBD secret through the RAPI interface. Examining job
+ results after an instance information job reveals the secret. With the
+ DRBD secret, access to the local cluster network, and ARP poisoning,
+ an attacker can impersonate a Ganeti node and clone the disks of a
+ DRBD-based instance. While an attacker with access to the cluster
+ network is already capable of accessing any data written as DRBD
+ traffic is unencrypted, having the secret expedites the process and
+ allows access to the entire disk.
+ Fixes contained in this release prevent the secret from being exposed
+ via the RAPI. The DRBD secret can be changed by converting an instance
+ to plain and back to DRBD, generating a new secret, but redundancy will
+ be lost until the process completes.
+ Since attackers with node access are capable of accessing some and
+ potentially all data even without the secret, we do not recommend that
+ the secret be changed for existing instances.
+ Minor changes
+ ~~~~~~~~~~~~~
+ - gnt-instance replace-disks no longer crashes when --ignore-policy is
+   passed to it
+ - Stop MonD when removing a node from a cluster
+ - Fix file descriptor leak in Confd client
+ - Always install SIGHUP handler for Haskell daemons (Issue 755)
+ - Make ganeti-cleaner switch to a safe working directory (Issue 880)
+ - Make htools tolerate missing "spfree" on Luxi
+ - DRBD parser: consume initial empty resource lines (Issue 869)
+ - KVM: set IFF_ONE_QUEUE on created tap interfaces
+ - Set exclusion tags correctly in requested instance
  Version 2.9.6
  -------------
  
Simple merge