Hardware introspection daemon for OpenStack Ironic
Go to file
Dmitry Tantsur 33cea4cceb Include man page into manifest 2014-10-08 12:28:28 +02:00
bin Added main script and updated setup.py 2014-10-03 13:16:43 +02:00
ironic_discoverd Make interface configurable 2014-10-08 11:31:06 +02:00
.gitignore New structure, getting ready for PyPI 2014-10-02 18:17:38 +02:00
.travis.yml Enable Travis and make test 2014-10-02 18:37:01 +02:00
LICENSE Apache license 2014-10-03 17:15:55 +02:00
MANIFEST.in Include man page into manifest 2014-10-08 12:28:28 +02:00
Makefile Update README and drop make run target 2014-10-03 16:56:40 +02:00
README.rst Updated README 2014-10-08 11:46:46 +02:00
example.conf Make interface configurable 2014-10-08 11:31:06 +02:00
ironic-discoverd.8 Simple man page 2014-10-08 12:16:28 +02:00
requirements.txt (Try to) switch to eventlet 2014-10-06 19:45:06 +02:00
setup.py Version bump 2014-10-08 11:21:24 +02:00

README.rst

Hardware properties discovery for OpenStack Ironic

image

This is an auxiliary service for discovering basic hardware properties for a node managed by OpenStack Ironic. It fulfills the following tasks:

  • Initiating discovery for given nodes.
  • Managing iptables settings to allow/deny access to PXE boot server (usually dnsmasq) for nodes under discovery.
  • Receiving and processing data from discovery ramdisk booted on a node.

Starting dnsmasq and configuring PXE boot environment is not part of this package and should be done separately.

Running

We're available on PyPI:

pip install ironic-discoverd
ironic-discoverd /path/to/conf

Or you can test locally:

make test_env  # only the first time
make test  # run tests
.env/bin/python setup.py develop
.env/bin/ironic-discoverd example.conf

Of course you may want to modify example.conf to match your OpenStack environment.

API

HTTP API consist of 2 endpoints:

  • /v1/discover initiate hardware discovery. Request body: JSON - list of UUID's of nodes to discover. All power management configuration for these nodes needs to be done prior to calling the endpoint.

    Note

    Right now this endpoint is not authenticated. It will switch to OpenStack authentication in the near future.

  • /v1/continue internal endpoint for the discovery ramdisk to post back discovered data. Should not be used for anything other than implementing the ramdisk. Request body: JSON dictionary with keys:

    • cpus number of CPU
    • cpu_arch architecture of the CPU
    • memory_mb RAM in MiB
    • local_gb hard drive size in GiB
    • macs list of MAC addresses for all NIC's