A Python agent for provisioning and deprovisioning Bare Metal servers.
Go to file
Dmitry Tantsur 3fba1ee8db Wait for the interfaces to get IP addresses before inspection
In the DIB build the DHCP code (provided by the dhcp-all-interfaces element)
races with the service starting IPA. It does not matter for deployment itself,
as we're waiting for the route to the Ironic API to appear. However, for
inspection it may result in reporting back all NIC's without IP addresses.
Inspection fails in this case.

This change makes inspection wait for *all* NIC's to get their IP addresses up
to a small timeout. The timeout is 60 seconds by default and can be changed
via the new ipa-inspection-dhcp-wait-timeout kernel option (0 to not wait).

After the wait inspection proceedes in any case, so the worst downside
is making inspection 60 seconds longer.

To avoid waiting for NIC's that are not even connected, this change extends the
NetworkInterface class with 'has_carrier' field.

Closes-Bug: #1564954
Change-Id: I5bf14de4c1c622f4bf6e3eadbe20c44759da5d66
(cherry picked from commit 3deb25a3ce)
2016-04-14 15:12:36 +00:00
doc/source Correct link to enabling agent drivers 2016-04-01 14:24:59 +00:00
etc/ironic_python_agent Added some infrastructure tools 2014-04-03 21:09:11 +04:00
imagebuild Fix full_trusty_build once and for all 2016-03-30 11:33:22 +00:00
ironic_python_agent Wait for the interfaces to get IP addresses before inspection 2016-04-14 15:12:36 +00:00
releasenotes Wait for the interfaces to get IP addresses before inspection 2016-04-14 15:12:36 +00:00
tools Added some infrastructure tools 2014-04-03 21:09:11 +04:00
.gitignore Add support for proxy servers during image build 2016-02-04 14:27:49 -08:00
.gitreview Update .gitreview for stable/mitaka 2016-03-21 21:37:35 -04:00
.testr.conf Split functional and py27 tests 2015-08-28 14:16:34 -07:00
.travis.yml Preparing for OpenStack testing environment 2014-03-11 12:50:12 -07:00
Dockerfile Add psmisc and dosfstools to IPA packages list 2016-03-21 15:04:12 +00:00
LICENSE add license file 2013-09-17 13:41:59 -07:00
README.rst Add DIB ironic-agent element to readme for IPA 2016-02-24 15:32:10 -06:00
plugin-requirements.txt Add "logs" and "extra-hardware" inspection collectors 2015-10-01 18:25:30 +02:00
proxy.sh Add support for proxy servers during image build 2016-02-04 14:27:49 -08:00
requirements.txt Add support for partition images in agent driver. 2016-03-18 08:21:01 +00:00
setup.cfg Switch to post-versioning 2016-01-12 10:49:36 +01:00
setup.py Updated from global requirements 2015-09-17 16:39:02 +00:00
test-requirements.txt Updated from global requirements 2016-01-28 13:20:06 +00:00
tox.ini Add reno for release notes management 2015-12-16 16:04:29 -08:00

README.rst

ironic-python-agent

An agent for controlling and deploying Ironic controlled baremetal nodes.

The ironic-python-agent works with the agent driver in Ironic to provision the node. Starting with ironic-python-agent running on a ramdisk on the unprovisioned node, Ironic makes API calls to ironic-python-agent to provision the machine. This allows for greater control and flexibility of the entire deployment process.

The ironic-python-agent may also be used with the original Ironic pxe drivers as of the Kilo OpenStack release.

Building the IPA deployment ramdisk

For more information see the Image Builder section of the Ironic Python Agent developer guide.

Using IPA with devstack

This is covered in the Deploying Ironic with DevStack section of the Ironic dev-quickstart guide.

Project Resources

Project status, bugs, and blueprints are tracked on Launchpad:

http://launchpad.net/ironic-python-agent

Developer documentation can be found here:

http://docs.openstack.org/developer/ironic-python-agent

Additional resources are linked from the project wiki page:

https://wiki.openstack.org/wiki/Ironic-python-agent

IRC channel:

#openstack-ironic

To contribute, start here: Openstack: How to contribute.