From 62407cce183e33a6f25f7a74eb953445b7cd66e4 Mon Sep 17 00:00:00 2001
From: Ruby Loo <rloo@yahoo-inc.com>
Date: Thu, 26 Nov 2015 20:04:05 +0000
Subject: [PATCH] Add release notes from Icehouse to Liberty

This is the new location for release notes, so this patch includes all
release notes available for ironic. Specifically, it:
- adds links to release notes for icehouse, juno, kilo
- updates the liberty release notes to include 4.0.0 - 4.2.1. This is
  basically a copy of the information from
  https://github.com/openstack/ironic/blob/7c1bc82858533b4b7563fedabb84aed8e721b7a6/doc/source/releasenotes/index.rst
  A follow-up patch will update doc/source/releasenotes/index.rst
  to point to these release notes.

Change-Id: I2511e7564673f4306429ad8b017a1706d4db1af9
---
 releasenotes/source/index.rst   |   7 +-
 releasenotes/source/liberty.rst | 218 ++++++++++++++++++++++++++++++++
 2 files changed, 223 insertions(+), 2 deletions(-)

diff --git a/releasenotes/source/index.rst b/releasenotes/source/index.rst
index 437a6f5841..0d73521af8 100644
--- a/releasenotes/source/index.rst
+++ b/releasenotes/source/index.rst
@@ -5,5 +5,8 @@
 .. toctree::
    :maxdepth: 1
 
-   liberty
-   unreleased
+   Current (4.3.0 - unreleased) <unreleased>
+   Liberty (4.0.0 - 4.2.x) <liberty>
+   Kilo (2015.1) <https://wiki.openstack.org/wiki/Ironic/ReleaseNotes/Kilo>
+   Juno (2014.2) <https://wiki.openstack.org/wiki/Ironic/ReleaseNotes/Juno>
+   Icehouse (2014.1) <https://wiki.openstack.org/wiki/Ironic/ReleaseNotes/Icehouse>
diff --git a/releasenotes/source/liberty.rst b/releasenotes/source/liberty.rst
index 67b4cd976b..80ae5f8ea1 100644
--- a/releasenotes/source/liberty.rst
+++ b/releasenotes/source/liberty.rst
@@ -4,3 +4,221 @@ Liberty Series Release Notes
 
 .. release-notes::
    :branch: origin/stable/liberty
+
+.. _V4-2-1:
+
+4.2.1
+=====
+
+This release is a patch release on top of 4.2.0, as part of the stable
+Liberty series. Full details are available on Launchpad:
+https://launchpad.net/ironic/liberty/4.2.1.
+
+* Import Japanese translations - our first major translation addition!
+
+* Fix a couple of locale issues with deployments, when running on a system
+  using the Japanese locale
+
+.. _V4-2-0:
+
+4.2.0
+=====
+
+This release is proposed as the stable Liberty release for Ironic, and brings
+with it some bug fixes and small features. Full release details are available
+on Launchpad: https://launchpad.net/ironic/liberty/4.2.0.
+
+* Deprecated the bash ramdisk
+
+  The older bash ramdisk built by diskimage-builder is now deprecated and
+  support will be removed at the beginning of the "N" development cycle. Users
+  should migrate to a ramdisk running ironic-python-agent, which now also
+  supports the pxe_* drivers that the bash ramdisk was responsible for.
+  For more info on building an ironic-python-agent ramdisk, see:
+  http://docs.openstack.org/developer/ironic/deploy/install-guide.html#building-or-downloading-a-deploy-ramdisk-image
+
+* Raised API version to 1.14
+
+  * 1.12 allows setting RAID properties for a node; however support for
+    putting this configuration on a node is not yet implemented for in-tree
+    drivers; this will be added in a future release.
+
+  * 1.13 adds a new 'abort' verb to the provision state API. This may be used
+    to abort cleaning for nodes in the CLEANWAIT state.
+
+  * 1.14 makes the following endpoints discoverable in the API:
+
+    * /v1/nodes/<UUID or logical name>/states
+
+    * /v1/drivers/<driver name>/properties
+
+* Implemented a new Boot interface for drivers
+
+  This change enhances the driver interface for driver authors, and should not
+  affect users of Ironic, by splitting control of booting a server from the
+  DeployInterface. The BootInterface is responsible for booting an image on a
+  server, while the DeployInterface is responsible for deploying a tenant image
+  to a server.
+
+  This has been implemented in most in-tree drivers, and is a
+  backwards-compatible change for out-of-tree drivers. The following in-tree
+  drivers will be updated in a forth-coming release:
+
+  * agent_ilo
+
+  * agent_irmc
+
+  * iscsi_ilo
+
+  * iscsi_irmc
+
+* Implemented a new RAID interface for drivers
+
+  This change enhances the driver interface for driver authors. Drivers may
+  begin implementing this interface to support RAID configuration for nodes.
+  This is not yet implemented for any in-tree drivers.
+
+* Image size is now checked before deployment with agent drivers
+
+  The agent must download the tenant image in full before writing it to disk.
+  As such, the server being deployed must have enough RAM for running the
+  agent and storing the image. This is now checked before Ironic tells the
+  agent to deploy an image. An optional config [agent]memory_consumed_by_agent
+  is provided. When Ironic does this check, this config option may be set to
+  factor in the amount of RAM to reserve for running the agent.
+
+* Added Cisco IMC driver
+
+  This driver supports managing Cisco UCS C-series servers through the
+  CIMC API, rather than IPMI. Documentation is available at:
+  http://docs.openstack.org/developer/ironic/drivers/cimc.html
+
+* iLO virtual media drivers can work without Swift
+
+  iLO virtual media drivers (iscsi_ilo and agent_ilo) can work standalone
+  without Swift, by configuring an HTTP(S) server for hosting the
+  deploy/boot images. A web server needs to be running on every conductor
+  node and needs to be configured in ironic.conf.
+
+  iLO driver documentation is available at:
+  http://docs.openstack.org/developer/ironic/drivers/ilo.html
+
+Known issues
+~~~~~~~~~~~~
+
+* Out of tree drivers may be broken by this release. The AgentDeploy and
+  ISCSIDeploy (formerly known as PXEDeploy) classes now depend on drivers to
+  utilize an instance of a BootInterface. For drivers that exist out of tree,
+  that use these deploy classes, an error will be thrown during
+  deployment. There is a simple fix. For drivers that expect these deploy
+  classes to handle PXE booting, one can add the following code to the driver's
+  `__init__` method::
+
+    from ironic.drivers.modules import pxe
+
+    class YourDriver(...):
+        def __init__(self):
+            # ...
+            self.boot = pxe.PXEBoot()
+
+  A driver that handles booting itself (for example, a driver that implements
+  booting from virtual media) should use the following to make calls to the boot
+  interface a no-op::
+
+    from ironic.drivers.modules import fake
+
+    class YourDriver(...)
+        def __init__(self):
+            # ...
+            self.boot = fake.FakeBoot()
+
+  Additionally, as mentioned before, `ironic.drivers.modules.pxe.PXEDeploy`
+  has moved to `ironic.drivers.modules.iscsi_deploy.ISCSIDeploy`, which will
+  break drivers that use this class.
+
+  The Ironic team apologizes profusely for this inconvenience.
+
+.. _V4-1-0:
+
+4.1.0
+=====
+
+This brings some bug fixes and small features on top of Ironic 4.0.0.
+Major changes are listed below, and full release details are available
+on Launchpad: https://launchpad.net/ironic/liberty/4.1.0.
+
+* Added CORS support
+
+  The Ironic API now has support for CORS requests, that may be used by,
+  for example, web browser-based clients. This is configured in the [cors]
+  section of ironic.conf.
+
+* Removed deprecated 'admin_api' policy rule
+
+* Deprecated the 'parallel' option to periodic task decorator
+
+.. _V4-0-0:
+
+4.0.0   First semver release
+============================
+
+This is the first semver-versioned release of Ironic, created during the
+OpenStack "Liberty" development cycle.  It marks a pivot in our
+versioning schema from date-based versioning; the previous released
+version was 2015.1. Full release details are available on Launchpad:
+https://launchpad.net/ironic/liberty/4.0.0.
+
+* Raised API version to 1.11
+
+ - v1.7 exposes a new 'clean_step' property on the Node resource.
+ - v1.8 and v1.9 improve query and filter support
+ - v1.10 fixes Node logical names to support all `RFC 3986`_ unreserved
+   characters
+ - v1.11 changes the default state of newly created Nodes from AVAILABLE to
+   ENROLL
+
+* Support for the new ENROLL workflow during Node creation
+
+  Previously, all Nodes were created in the "available" provision state - before
+  management credentials were validated, hardware was burned in, etc. This could
+  lead to workloads being scheduled to Nodes that were not yet ready for it.
+
+  Beginning with API v1.11, newly created Nodes begin in the ENROLL state,
+  and must be "managed" and "provided" before they are made available for
+  provisioning. API clients must be updated to handle the new workflow when they
+  begin sending the X-OpenStack-Ironic-API-Version header with a value >= 1.11.
+
+* Migrations from Nova "baremetal" have been removed
+
+  After a deprecation period, the scripts and support for migrating from
+  the old Nova "baremetal" driver to the new Nova "ironic" driver have
+  been removed from Ironic's tree.
+
+* Removal of deprecated vendor driver methods
+
+  A new @passthru decorator was introduced to the driver API in a previous
+  release. In this release, support for vendor_passthru and
+  driver_vendor_passthru methods has been removed. All in-tree drivers have
+  been updated. Any out of tree drivers which did not update to the
+  @passthru decorator during the previous release will need to do so to be
+  compatible with this release.
+
+* Introduce new BootInterface to the Driver API
+
+  Drivers may optionally add a new BootInterface. This is merely a
+  refactoring of the Driver API to support future improvements.
+
+* Several hardware drivers have been added or enhanced
+
+ - Add OCS Driver
+ - Add UCS Driver
+ - Add Wake-On-Lan Power Driver
+ - ipmitool driver supports IPMI v1.5
+ - Add support to SNMP driver for "APC MasterSwitchPlus" series PDU's
+ - pxe_ilo driver now supports UEFI Secure Boot (previous releases of the
+   iLO driver only supported this for agent_ilo and iscsi_ilo)
+ - Add Virtual Media support to iRMC Driver
+ - Add BIOS config to DRAC Driver
+ - PXE drivers now support GRUB2
+
+.. _`RFC 3986`: https://www.ietf.org/rfc/rfc3986.txt