summaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
authorDevananda van der Veen <devananda.vdv@gmail.com>2013-05-20 08:41:50 -0700
committerDevananda van der Veen <devananda.vdv@gmail.com>2013-05-20 09:35:32 -0700
commit0515326f856fcfb0fb02145988f548f5f95f4099 (patch)
treed22a056b68023391ed102402412762eb0e32b748 /README.rst
parent5b78a8d4845c0661e25ebfd8dd28b811db51e96b (diff)
downloadironic-0515326f856fcfb0fb02145988f548f5f95f4099.tar.gz
Add some API definitions to the README.
Change-Id: I549de0d298d030308971c2739bf1ff88ef9363e1
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst27
1 files changed, 26 insertions, 1 deletions
diff --git a/README.rst b/README.rst
index 53541d388..429ad5768 100644
--- a/README.rst
+++ b/README.rst
@@ -3,7 +3,12 @@ Ironic
Ironic is an Incubated OpenStack project which aims to provision
bare metal machines instead of virtual machines, forked from the
-Nova Baremetal driver.
+Nova Baremetal driver. It is best thought of as a bare metal
+hypervisor **API** and a set of plugins which interact with
+the bare metal hypervisors. By default, it will use PXE and IPMI
+in concert to provision and turn on/off machines, but Ironic
+also supports vendor-specific plugins which may implement additional
+functionality.
-----------------
Project Resources
@@ -50,6 +55,26 @@ An Ironic deployment will be composed of the following components:
booted on-demand. The agent is never run inside a tenant instance.
- A **Database** and a DB API for storing persistent state of the Manager and Drivers.
+
+In addition to the two types of drivers, BMCDriver and DeploymentDriver, there
+are three categories of driver functionality: core, common, and vendor:
+
+- "Core" functionality represents the minimal API for that driver type, eg.
+ power on/off for a BMCDriver.
+- "Common" functionality represents an extended but supported API, and any
+ driver which implements it must be consistent with all other driver
+ implementations of that functionality. For example, if a driver supports
+ enumerating PCI devices, it must return that list as well-structured JSON. In
+ this case, Ironic may validate the API input's structure, but will pass it
+ unaltered to the driver. This ensures compatibility for common features
+ across drivers.
+- "Vendor" functionality allows an excemption to the API contract when a vendor
+ wishes to expose unique functionality provided by their hardware and is
+ unable to do so within the core or common APIs. In this case, Ironic will
+ neither store nor introspect the messages passed between the API and the
+ driver.
+
+
-----------
Development
-----------