059bbf3eed | ||
---|---|---|
bin | ||
ironic_discoverd | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
MANIFEST.in | ||
Makefile | ||
README.rst | ||
example.conf | ||
ironic-discoverd.8 | ||
requirements.txt | ||
setup.py |
README.rst
Hardware properties discovery for OpenStack Ironic
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 CPUcpu_arch
architecture of the CPUmemory_mb
RAM in MiBlocal_gb
hard drive size in GiBmacs
list of MAC addresses for all NIC's