A service for managing and provisioning Bare Metal servers.
Go to file
Mark Goddard 65a68e4e96 Deploy steps - conductor & drivers
This adds a 'deploy_step' decorator. A deploy step must take as the
only positional argument, a TaskManager object.

A step can be executed synchronously or asynchronously. A step should
return None if the method has completed synchronously or
states.DEPLOYWAIT if the step will continue to execute asynchronously.
If the step executes asynchronously, it should issue a call to the
'continue_node_deploy' RPC, so the conductor can begin the next
deploy step.

Only steps with priorities greater than 0 are used.
These steps are ordered by priority from highest value to lowest
value. For steps with the same priority, they are ordered by driver
interface priority (see conductor.manager.DEPLOYING_INTERFACE_PRIORITY).

All in-tree DeployInterfaces are converted to have one big deploy_step
(their existing deploy() method).

A new RPC method 'continue_node_deploy' (RPC API version 1.45) is used
by deploy steps to notify the conductor to continue node deployment
(e.g. execute the next deploy step).

Similar to cleaning, the conductor gets the node's deploy steps and
executes them, one at a time (one deploy step right now). The conductor
also handles out-of-tree drivers that don't have deploy steps yet; a
warning is logged in these cases.

Co-Authored-By: Ruby Loo <rloo@oath.com>

Change-Id: I5feac3856cc4b87a850180b7fd0b3b9805f9225f
Story: #1753128
Task: #22592
2018-07-11 16:18:59 +00:00
api-ref Fix list node vifs api error 2018-07-03 11:23:25 +00:00
devstack Merge "Ensure we allow Ironic API traffic from baremetal network" 2018-07-04 16:43:38 +00:00
doc Follow-up to RAID configuration via iRMC driver patch 2018-07-10 20:58:18 +07:00
etc Remove sample policy and config files 2018-02-02 11:21:29 +00:00
ironic Deploy steps - conductor & drivers 2018-07-11 16:18:59 +00:00
playbooks/legacy Remove the ipmitool classic drivers 2018-06-27 13:08:42 +02:00
releasenotes Deploy steps - conductor & drivers 2018-07-11 16:18:59 +00:00
tools Merge "Add optional healthcheck middleware" 2018-03-16 20:46:35 +00:00
zuul.d Remove dulicate uses for zuul-cloner 2018-06-07 10:23:02 +01:00
.gitignore Migrate to stestr as unit tests runner 2017-09-22 08:56:34 +00:00
.gitreview Added project infrastructure needs. 2013-05-02 14:55:43 -04:00
.mailmap Update mailmap for Joe Gordon 2013-10-28 10:19:15 +00:00
.stestr.conf Migrate to stestr as unit tests runner 2017-09-22 08:56:34 +00:00
CONTRIBUTING.rst Update Launchpad references to Storyboard 2018-04-09 12:37:14 -07:00
LICENSE Added project infrastructure needs. 2013-05-02 14:55:43 -04:00
README.rst Add release notes link to README 2018-06-12 14:28:27 +08:00
Vagrantfile Change vagrant.yml to vagrant.yaml 2015-08-07 09:51:32 +00:00
babel.cfg Run extract_messages 2013-07-22 09:51:10 +02:00
bindep.txt change python-libguestfs to python-guestfs for ubuntu 2018-03-12 03:32:11 +00:00
driver-requirements.txt Support RAID configuration for BM via iRMC driver 2018-07-04 15:45:34 +07:00
lower-constraints.txt Bump osprofiler minimum requirement to 1.5.0 2018-07-06 16:38:12 +02:00
requirements.txt Bump osprofiler minimum requirement to 1.5.0 2018-07-06 16:38:12 +02:00
setup.cfg Support RAID configuration for BM via iRMC driver 2018-07-04 15:45:34 +07:00
setup.py Updated from global requirements 2017-03-02 11:45:27 +00:00
test-requirements.txt Fix stestr has no lower bound in test-requirements 2018-06-18 09:23:02 +07:00
tox.ini Make the lower-constraints tox env actually use lower-constraints 2018-07-10 11:42:40 +00:00
vagrant.yaml Merge "Update the documentation links - code comments" 2017-08-15 14:48:41 +00:00

README.rst

Team and repository tags

image

Ironic

Ironic consists of an API and plug-ins for managing and provisioning physical machines in a security-aware and fault-tolerant manner. It can be used with nova as a hypervisor driver, or standalone service using bifrost. By default, it will use PXE and IPMI to interact with bare metal machines. Ironic also supports vendor-specific plug-ins which may implement additional functionality.

Ironic is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.

Project resources

Project status, bugs, and requests for feature enhancements (RFEs) are tracked in StoryBoard: https://storyboard.openstack.org/#!/project/943

For information on how to contribute to ironic, see https://docs.openstack.org/ironic/latest/contributor