Create an ironic Datasource Driver¶
Include the URL of your launchpad blueprint:
https://blueprints.launchpad.net/congress/+spec/ironic-datasource-driver
This ironic driver will allow Congress to interact with the Openstack ironic API for orchestration. The first version will provide data from ironic’s read API calls until Congress does have infrastructure to handle writing to drivers. Subsequent versions may be able to send requests and write to the ironic API.
Problem description¶
Today, there is no Congress driver for ironic, either for reading or writing. This driver will give Congress eyes into ironic so that a policy writer can inspect Bare Metal state such as details about enabled drivers, each chassis, each node, each port, supported boot devices of a node.
Proposed change¶
This driver will be similar to other existing drivers like neutron_driver.py and nova_driver.py. The ironic driver will read data from the following ironic API calls and convert the responses to Congress tables:
list enabled drivers
show driver detail
list driver properties
list chassis
show chassis detail
list nodes contained in a chassis
list registered nodes
show node detail
list supported boot devices for a node
list ports assocaited with a node
list all registered ports
show port detail
Alternatives¶
The alternative is to have no driver for ironic, which is not a good option for those admins that use ironic in their cloud to manage bare metal servers.
Policy¶
N/A
Policy actions¶
N/A
Data sources¶
Openstack ironic
Data model impact¶
N/A
REST API impact¶
N/A
Security impact¶
The ironic driver will need to authenticate to the ironic API just like all the other datasource drivers.
Notifications impact¶
N/A
Other end user impact¶
N/A
Performance impact¶
It is possible that the API calls will be expensive. We will need to measure the impact of the API calls on ironic and Congress performance.
Other deployer impact¶
N/A
Developer impact¶
N/A
Implementation¶
Assignee(s)¶
- Primary assignee:
zhenzan-zhou
Work items¶
Write unit test
Write tempest test
Write API client code
Write translators for tables
Dependencies¶
N/A
Testing¶
This work must include a unit test and a tempest test. The driver translator infrastructure makes most of the translation code robust, but the driver is still dependent on the ironic API, so the tempest test is particularly important as an integration test.
Documentation impact¶
N/A