Specification for enable OpenStack Bare Metal Service

Change-Id: I792e4127c31718d2fda9b738f1ea0503fbf1cfcf
Implements: blueprint bare-metal-enablement
This commit is contained in:
wenchma 2014-12-11 16:02:24 +08:00
parent 7bc2a4d4e9
commit 49206cfd7b
2 changed files with 202 additions and 0 deletions

View File

@ -11,6 +11,7 @@ Juno specs:
:maxdepth: 4
specs/juno/**
specs/kilo/**
==================
Indices and tables

View File

@ -0,0 +1,201 @@
==========================================
Enable Bare Metal Service by Chef
==========================================
Include the URL of your launchpad blueprint:
https://blueprints.launchpad.net/openstack-chef/+spec/bare-metal-enablement
OpenStack Bare Metal Service known as Ironic OpenStack project name provisions
Bare Metal machines by leveraging common technologies such as [PXE]_ boot and
[IPMI]_ to cover a wide range of hardware.
Problem description
===================
* OpenStack Bare Metal Service was available as an incubated project in the
"Icehouse" release, with many stability and feature improvements in the
"Juno", it is officially integrated with OpenStack beginning with the "Kilo"
release.
* Currently, there is no Chef cookbook support to install and configure
OpenStack Bare Metal Service.
Proposed change
===============
Add a cookbook included recipes and related attributes/unit tests to install
and configure OpenStack Bare Metal Service.
The packages which need to be installed include:
* Fedora/RHEL: openstack-ironic-api, openstack-ironic-conductor,
openstack-ironic-common and python-ironicclient.
For PXE: tftp-server and syslinux-tftpboot.
For IMPI: ipmitool.
* Ubuntu: ironic-api, ironic-conductor and python-ironicclient.
For PXE: tftpd-hpa, syslinux and syslinux-common.
For IMPI: ipmitool.
Alternatives
------------
None
Data model impact
-----------------
None
REST API impact
---------------
Refer to [REST_API_V1]_ for details.
Security impact
---------------
* Authentication method to use when connecting to OpenStack other components is
keystone with PKI as well as others.
* Allow ironicclient to preform "secure" SSL (https) requests, the SSL/TLS
versions TLSv1.2. TLSv1.0 and TLSv1.1 are only recommended, but the
certificates and key exchange are not in the scope of enabling Bare Metal
Service.
* Hash algorithms to use for hashing PKI tokens include md5, etc.
* The commands which require the use of sudo are:
qemu-img
iscsiadm
blkid
blockdev
mkswap
mkfs
mount
umount
dd
fuser
parted
* About resource exhaustion attack, there is no security impact of this Spec.
Notifications impact
--------------------
None
Other end user impact
---------------------
None
Performance Impact
------------------
None
Other deployer impact
---------------------
None
Developer impact
----------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
- wenchma@cn.ibm.com
Other contributors:
- None
Work Items
----------
* Add a basic cookbook with the default files for getting through first gate
.gitignore
.gitreview
.rubocop.yml
Berksfile
CONTRIBUTING.md
Gemfile
metadata.md
Rakefile
README.md
TESTING.md
/spec/spec_helper.rb
* Add the default attribute file to determine Bare Metal Service configuration
items.
* Add the recipe files to install the packages of Bare Metal Service,
configure the [BARE_METAL_TEMPLATE]_ and start Bare Metal services.
* Add the template files to enable Bare Metal Service to be configurable.
* Add the unit tests.
Dependencies
============
* Ironic requires the supported Bare Metal hardwares, such as x68 servers,
HP iLO, and Intel AMT platforms so far.
* This requires the supported platform operating systems, such as Fedora,
RHEL and Ubuntu.
* This depends on the blueprint [BARE_METAL_ENABLEMENT]_
* This requires configuring the Bare Metal Service's driver for Compute Service.
* This requires the setup of supported boot mode, such as [PXE]_ and [IPMI]_.
Testing
=======
* Add unit tests for the recipes.
* For function and CI integration test, at least one node with OpenStack
all-in-one deployment is recommended.
Documentation Impact
====================
* Add README.md.
References
==========
.. [BARE_METAL_TEMPLATE] `Bare Metal Template values
<http://docs.openstack.org/trunk/config-reference/content/ch_configuring-openstack-bare-metal.html>`_
.. [BARE_METAL_ENABLEMENT] `Bare Metal enablement blueprint
<https://blueprints.launchpad.net/openstack-chef/+spec/bare-metal-enablement>`_
.. [IPMI] `IPMI tool source code
<http://ipmitool.sourceforge.net/>`_
.. [IRONIC_INSTALLATION_GUIDE] `Bare Metal Service Installation Guide
<http://docs.openstack.org/developer/ironic/deploy/install-guide.html>`_
.. [PXE] `PXE user guide
<http://docs.openstack.org/developer/ironic/deploy/user-guide.html#pxe>`_
.. [REST_API_V1] `Bare Metal RESTful Web API v1
<http://docs.openstack.org/developer/ironic/webapi/v1.html>`_