Package: networking-mlnx-baremetal
networking-mlnx-baremetalOverviewThis project aims to provide a OpenStack Neutron ML2 mechanism driver for
binding or unbinding partition key for mellanox infiniband port when
provisioning baremetal node using OpenStack Ironic component.Those baremetal nodes are expected to have “VLAN” or “VXLAN” ethernet segment
bound by other driver[1], andnetworking-mlnx-baremetalwill bind partition
key which have exactly the same segmentation-id as former ethernet segment for
Mellanox infiniband ports on the same node.This hierarchical network topologies is supported by Neutron and mentioned
on specHierarchical Port Binding. The final network topology looks like:+-----------------+                +-------------+
| Mellanox Switch |                | Core Switch |
+---+-----+-------+                +-------+-----+
    |     |                                |
    |     |                                |
    |     |                         +------+-----+
    |     |                         | ToR Switch |
    |     |                         +--+------+--+
    |     |                                |
    |     |                            |      |
    |     |                            |      |
    |     |  IB  +--------------+  eth |      |
    |     +------+ Ironic Node  +------+      |
    |   PKey     +--------------+    VXLAN    |
    |                                         |
    |     IB     +--------------+    eth      |
    +------------+ Ironic Node  +-------------+
  PKey           +--------------+           VXLANCurrently, this driver is only tested along withnetworking-huaweidriverand Ironicramdiskdeploy interface on OpenStackstable/trainrelease.InstallationBefore using this driver, it should be installed on OpenStack Neutron
controller node. You may install it:From PyPi:$pipinstallnetworking-mlnx-baremetalor$easy_installnetworking-mlnx-baremetalOr from source:$gitclonehttps://github.com/IamFive/networking-mlnx-baremetal.git$cdnetworking-mlnx-baremetal$gitcheckoutstable/train$pipinstall-rrequirements.txt-cupper-constraints.txt$pythonsetup.pyinstallUsageConfigurationThis driver will load configuration options in two namespaces:mlnx.baremetal.driver: configuration options for driver itselfmlnx.ironic.client: configuration options for connecting to Ironic controllerSo, afternetworking-mlnx-baremetalis installed, you may run this
command to get a full list ofmlnx.baremetal.driverconfiguration options:$oslo-config-generator--namespacemlnx.baremetal.driverThe default configurations may looks like:[DEFAULT][mlnx:baremetal]## From mlnx.baremetal.driver## UFM REST API endpoint. (string value)#endpoint = http://127.0.0.1# Username for UFM REST API authentication. (string value)#username = <None># Password for UFM REST API authentication. (string value)#password = <None># Either a Boolean value, a path to a CA_BUNDLE file or directory with# certificates of trusted CAs. If set to True the driver will verify# the UFMhost certificates; if False the driver will ignore verifying# the SSL certificate. If it's a path the driver will use the# specified certificate or one of the certificates in the directory.# Defaults to True. Optional. (string value)#verify_ca = True# HTTP timeout in seconds. (integer value)#timeout = 10# Comma-separated list of physical_network which this driver should# watch. * means any physical_networks including None. (list value)#physical_networks = *Of course, you should generate options formlnx.ironic.clienttoo, then
update those options and add them to neutron config-file.Enable driverThe entry point name of this driver ismlnx_ib_bm. To enable, addmlnx_ib_bmto ML2 mechanism driver list:[ml2]tenant_network_types=vxlanmechanism_drivers=mlnx_ib_bm,other_vxlan_driver,...,openvswitchConfig Ironic-InspectorBy default, inspector will only detect PXE port information. To also get
infiniband port,add_portshould be set toall.[processing]processing_hooks=$default_processing_hooks,extra_hardware,lldp_basic,local_link_connectionadd_ports=allAlso, remember Mellanox infiniband hardware driver should be packaged in
inspect ramdisk image.