Jump to: navigation, search

Difference between revisions of "Ironic/Drivers"

(Nuke the drivers page, it's horribly outdated. Link to the actual docs.)
Line 1: Line 1:
 
== Drivers ==
 
== Drivers ==
  
Ironic supports pluggable back-end drivers for different types of hardware to enable features specific to unique hardware platforms and leverage divergent capabilities via a common API . This API is divided into three sections: core, common, and vendor. While authors of vendor drivers may break new ground in the designated "vendor_passthru" section of the API, they are strongly encouraged to converge on a common API across vendors. More details may be found under the [http://docs.openstack.org/developer/ironic/dev/architecture.html#drivers system architecture] description.
+
Ironic supports pluggable back-end drivers for different types of hardware to enable features specific to unique hardware platforms and leverage divergent capabilities via a common API. Drivers are composed from ''hardware types'' and "hardware interfaces".
 +
* [https://docs.openstack.org/ironic/latest/install/enabling-drivers.html Installation: enabling hardware types and interfaces]
 +
* [https://docs.openstack.org/ironic/latest/admin/drivers.html Available hardware types and interfaces]
 +
* [https://docs.openstack.org/ironic/latest/contributor/drivers.html#writing-a-hardware-type Writing a new hardware type]
  
Hardware drivers must undergo CI testing so as to ensure their continued functionality. Some drivers will be tested upstream, while many will require third-party CI testing due to the unique nature of their hardware (and the unmanageable complexity of a single team required to maintain a test infrastructure encompassing hardware from many diverse vendors). Guidelines on that testing can be found on the [[Ironic/Testing]] wiki page.
 
  
Out-of-tree drivers are supported by Ironic and may be loaded via python entrypoints. Here is a list of known out-of-tree drivers:
+
Every supported driver is covered either by the standard CI or by a [https://wiki.openstack.org/wiki/ThirdPartySystems Third Party CI]. The [https://github.com/openstack/ironic-staging-drivers ironic-staging-drivers project] hosts a few drivers that are '''complete unsupported by the community'''.
 
 
{| class="wikitable"
 
|-
 
! Name !! Link !! Comments
 
|-
 
| Cisco UCS || https://communities.cisco.com/docs/DOC-56373 ||
 
|-
 
| bareon-ironic || https://github.com/openstack/bareon-ironic ||
 
|}
 
 
 
The table below describes the CI test coverage of the current set of drivers. Note that drivers are composed of more than one interface (eg, power and deploy). Not all combinations of interfaces are necessarily tested together, but we are striving to get test coverage for each interface in at least one driver.
 
 
 
 
 
{| class="wikitable"
 
|-
 
! Interface Type !! Interface Name !! Test coverage provided by driver name
 
|-
 
| deploy || agent || agent_ssh; agent_ipmitool is used in production for Rackspace OnMetal
 
|-
 
| deploy || pxe || pxe_ssh
 
|-
 
| deploy || iscsi || none
 
|-
 
| power || drac || pxe_drac
 
|-
 
| power || ilo || None
 
|-
 
| power || ipminative || pxe_ipminative (provided by ibm-xcat-ci)
 
|-
 
| power || ipmitool || ** most widely used power driver in production, but lacks upstream CI
 
|-
 
| power || seamicro || None
 
|-
 
| power || snmp || None
 
|-
 
| power || ssh || pxe_ssh
 
|-
 
| power || amt|| None
 
|-
 
| power || irmc|| None
 
|-
 
| power || iboot || None
 
|-
 
| power || virtualbox || None
 
|-
 
| power || Wake-On-Lan || None
 
|}
 
 
 
 
 
Links to graphs of the CI system's current status should be included in the table below, when available.
 
 
 
{| class="wikitable"
 
|-
 
! Driver Name !! Primary Contact Email and IRC handle !! Testing Status
 
|-
 
| pxe_ssh || devananda (devananda dot vdv at gmail) / lucasagomes (lucasagomes at gmail) || [http://no-carrier.net/~adam/openstack/ironic_gate_status.html tested in the upstream gate]
 
|-
 
| pxe_ipminative || Yuan Y Bai <bybai at cn dot ibm dot com> / Long LA Cheng <chenglch at cn dot ibm dot com> / Jarrod Johnson (jjohnson2 at lenovo dot com) || Third-party CI: "ibm-xcat-ci" <xcat@cn.ibm.com>
 
|-
 
| pxe_ipmitool || devananda (devananda dot vdv at gmail) / lucasagomes (lucasagomes at gmail) || used by TripleO, but not CI tested
 
|-
 
| agent_ssh || jroll (jim at jimrollenhagen dot com) || [http://no-carrier.net/~adam/openstack/ironic_gate_status.html tested in the upstream gate]
 
|-
 
| agent_ipmitool || jroll (jim at jimrollenhagen dot com) || used by Rackspace OnMetal, not CI tested upstream
 
|-
 
| PXEDracDriver || cdearborn Christopher Dearborn (Christopher_Dearborn at dell dot com) / mgould (mgould at redhat dot com) ||  Third-party CI:"Dell Ironic CI"
 
|-
 
| pxe_ipa || lucasagomes (lucasagomes at gmail) || [http://no-carrier.net/~adam/openstack/ironic_gate_status.html tested in the upstream gate]
 
|-
 
| iscsi_ilo ||  ilo_drivers (ilo_drivers at groups.ext.hpe.com) || Third-party CI: "HPE Proliant iLO drivers CI"
 
|}
 
 
 
== 3rd Party Drivers ==
 
 
 
{| class="wikitable"
 
|-
 
! Driver Name !! Description !! Primary Contact Email and IRC handle !! More information
 
|-
 
| pxe_ilo || Uses pxe for booting bare metal, deploys using iSCSI from Ironic conductor node, and uses iLO for managing bare metal. ||  stendulker, nisha (ilo_drivers at groups.ext.hpe.com) || https://wiki.openstack.org/wiki/Ironic/Drivers/iLODrivers
 
|-
 
| iscsi_ilo || Uses virtual media for booting bare metal, deploys using iSCSI from Ironic conductor node, and uses iLO for managing bare metal. ||  stendulker, nisha (ilo_drivers at groups.ext.hpe.com) || https://wiki.openstack.org/wiki/Ironic/Drivers/iLODrivers
 
|-
 
| agent_ilo || Uses virtual media for booting bare metal, deploys from within the bare metal node, and uses iLO for managing bare metal. || stendulker, nisha (ilo_drivers at groups.ext.hpe.com) || https://wiki.openstack.org/wiki/Ironic/Drivers/iLODrivers
 
|-
 
|iscsi_pxe_oneview|| Uses PXE for booting, the default iSCSI deploy and interacts with OneView's REST interface for power and management || xavierr, nicodemos || http://docs.openstack.org/developer/ironic/drivers/oneview.html
 
|-
 
|agent_pxe_oneview|| Uses PXE for booting, a modified Agent deploy interface to bypass changing the boot device with the server powered on; and interacts with OneView's REST interface for power and management || xavierr, nicodemos || http://docs.openstack.org/developer/ironic/drivers/oneview.html
 
|-
 
|pxe_ipmitool (ppc64)|| Uses the pxe_ipmitool driver on IBM OpenPOWER Servers || krtaylor, maurosr, mjturek || https://wiki.openstack.org/wiki/PowerKVM
 
|-
 
|agent_irmc|| This driver enables Virtual Media deploy with IPA (Ironic Python Agent) and power control via ServerView Common Command Interface (SCCI). || naohirot, watanabe_isao || http://docs.openstack.org/developer/ironic/drivers/irmc.html
 
|-
 
|pxe_irmc|| This driver enables PXE deploy and power control via ServerView Common Command Interface (SCCI). || naohirot, watanabe_isao || http://docs.openstack.org/developer/ironic/drivers/irmc.html
 
|-
 
|iscsi_irmc|| This driver enables Virtual Media deploy with image build from Diskimage Builder and power control via ServerView Common Command Interface (SCCI). || naohirot, watanabe_isao || http://docs.openstack.org/developer/ironic/drivers/irmc.html
 
|}
 
 
 
=== 3rd Party CI required implementation status ===
 
* Refer to spec: https://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/third-party-ci.html
 
* Infra CI requirements: http://docs.openstack.org/infra/system-config/third_party.html
 
* Ironic test systems status: http://ci-watch.tintri.com/project?project=ironic&time=7+days
 
* '''NOTE''': for drivers to be included in the OpenStack driver marketplace, they must be added to Stackalytics: https://wiki.openstack.org/wiki/DriverLog#How_To:_Add_a_new_driver_to_DriverLog
 
{| class="wikitable"
 
|-
 
! Driver Name !! Gerrit Acct/Contact (M2) !! Receive events/sandbox comments (M Freeze) !! Per patch testing/comments !! Stackalytics !! Third party systems page !! Notes
 
|-
 
| iscsi_ilo || Yes? || No || Yes || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/HPE_Proliant_iLO_drivers_CI || not able to verify Gerrit account, contact info different
 
|-
 
| agent_ilo || Yes? || No || Yes || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/HPE_Proliant_iLO_drivers_CI || not able to verify Gerrit account, contact info different
 
|-
 
| pxe_ilo || Yes? || No || Yes || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/HPE_Proliant_iLO_drivers_CI || not able to verify Gerrit account, contact info different
 
|-
 
| PXEDracDriver || Yes || Yes || Yes || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/Dell_EMC_Ironic_CI ||
 
|-
 
| pxe_ipmitool (ppc64) || Yes || Yes || Yes || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/IBMPowerKVMCI ||
 
|-
 
| agent_ipmitool (ppc64) || Yes || Yes || No || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/IBMPowerKVMCI ||
 
|-
 
| pxe_ipmitool || No || No || No || Yes || - ||  Community - testing?
 
|-
 
| agent_ipmitool || No || No || No || Yes || - || Community - testing?
 
|-
 
| pxe_ipminative || Yes || No || No || Yes || None || old info - IBM xCat Team?
 
|-
 
| pxe_snmp || No || No || No || Yes || None || old info - Cray?
 
|-
 
| pxe_amt || No || No || No || No || None || moved to https://github.com/openstack/ironic-staging-drivers
 
|-
 
| agent_irmc || Yes || Yes || Yes || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/Fujitsu_iRMC_CI ||
 
|-
 
| pxe_irmc || Yes || Yes || Yes || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/Fujitsu_iRMC_CI ||
 
|-
 
| iscsi_irmc || Yes || Yes || Yes || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/Fujitsu_iRMC_CI ||
 
|-
 
| pxe_iboot || No || No || No || Yes || None || Community - testing?
 
|-
 
| VirtualBox || No || No || No || Yes || None || old contact info
 
|-
 
| Wake-on-lan || Yes? || No || No || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/RedHat_CI || RedHat CI?
 
|-
 
| iscsi_pxe_oneview || Yes || Yes || Yes || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/UFCG_OneView_CI ||
 
|-
 
| agent_pxe_oneview || Yes || Yes || Yes || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/UFCG_OneView_CI ||
 
|-
 
| CIMC pxe_iscsi_cimc || Yes || Yes || Yes || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/Cisco_Ironic_CI ||
 
|-
 
| UCSM pxe_ucs || Yes || Yes || Yes || Yes || https://wiki.openstack.org/wiki/ThirdPartySystems/Cisco_Ironic_CI ||
 
|-
 
| MSFTOCS || No || No || No || Yes || None || old contact info
 
|-
 
| pxe_seamicro || No || No || No || Yes || None || old contact info
 
|-
 
| pxe_ssh || - || - || - || Yes || - || Community - tested in gate
 
|-
 
| agent_ssh || - || - || - || Yes || - || Community - tested in gate
 
|-
 
|}
 

Revision as of 17:05, 26 March 2018

Drivers

Ironic supports pluggable back-end drivers for different types of hardware to enable features specific to unique hardware platforms and leverage divergent capabilities via a common API. Drivers are composed from hardware types and "hardware interfaces".


Every supported driver is covered either by the standard CI or by a Third Party CI. The ironic-staging-drivers project hosts a few drivers that are complete unsupported by the community.