0.14.0.rst 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. =========================
  2. Salt 0.14.0 Release Notes
  3. =========================
  4. :release: 2013-03-23
  5. Salt 0.14.0 is here! This release was held up primarily by PyCon, Scale, and
  6. illness, but has arrived! 0.14.0 comes with many new features and is breaking
  7. ground for Salt in the area of cloud management with the introduction of Salt
  8. providing basic cloud controller functionality.
  9. Major Features
  10. ==============
  11. Salt - As a Cloud Controller
  12. ----------------------------
  13. This is the first primitive inroad to using Salt as a cloud controller is
  14. available in 0.14.0. Be advised that this is alpha, only tested in a few very
  15. small environments.
  16. The cloud controller is built using kvm and libvirt for the hypervisors.
  17. Hypervisors are autodetected as minions and only need to have libvirt running
  18. and kvm installed to function. The features of the Salt cloud controller are
  19. as follows:
  20. - Basic vm discovery and reporting
  21. - Creation of new virtual machines
  22. - Seeding virtual machines with Salt via qemu-nbd or libguestfs
  23. - Live migration (shared and non shared storage)
  24. - Delete existing VMs
  25. It is noteworthy that this feature is still Alpha, meaning that all rights
  26. are reserved to change the interface if needs be in future releases!
  27. Libvirt State
  28. -------------
  29. One of the problems with libvirt is management of certificates needed for live
  30. migration and cross communication between hypervisors. The new ``libvirt``
  31. state makes the Salt Master hold a CA and manage the signing and distribution
  32. of keys onto hypervisors, just add a call to the libvirt state in the sls
  33. formulas used to set up a hypervisor:
  34. .. code-block:: yaml
  35. libvirt_keys:
  36. libvirt.keys
  37. New get Functions
  38. -----------------
  39. An easier way to manage data has been introduced. The pillar, grains, and config
  40. execution modules have been extended with the new ``get`` function. This
  41. function works much in the same way as the get method in a python dict, but with
  42. an enhancement, nested dict components can be extracted using a `:` delimiter.
  43. If a structure like this is in pillar:
  44. .. code-block:: yaml
  45. foo:
  46. bar:
  47. baz: quo
  48. Extracting it from the raw pillar in an sls formula or file template is done
  49. this way:
  50. .. code-block:: jinja
  51. {{ pillar['foo']['bar']['baz'] }}
  52. Now with the new get function the data can be safely gathered and a default
  53. can be set allowing the template to fall back if the value is not available:
  54. .. code-block:: jinja
  55. {{ salt['pillar.get']('foo:bar:baz', 'qux') }}
  56. This makes handling nested structures much easier, and defaults can be cleanly
  57. set. This new function is being used extensively in the new formulae repository
  58. of salt sls formulas.