Inspection hooks¶
Inspection hooks are a type of the Bare Metal service plug-ins responsible for processing data from in-band inspection. By configuring these hooks, an operator can fully customize the inspection processing phase. How the data is collected can be configured with inspection collectors.
Configuring hooks¶
Two configuration options are responsible for inspection hooks:
inspector.default_hooks defines which hooks run by
default, while inspector.hooks defines which hooks to run
in your deployment. Only the second option should be modified by operators,
while the first one is to provide the defaults without hardcoding them:
[inspector]
hooks = $default_hooks
To make a hook run after the default ones, append it to the list, e.g.
[inspector]
hooks = $default_hooks,extra-hardware
Default hooks¶
In the order they go in the inspector.default_hooks
option:
ramdisk-errorProcesses the
errorfield from the ramdisk, aborting inspection if it is not empty.validate-interfacesValidates network interfaces and stores the result in the
plugin_datain two fields:all_interfaces- all interfaces that pass the basic functional check.valid_interfaces- interfaces that satisfy the configuration in theinspector.add_portsoption.
In both cases, interfaces get an addition field:
pxe_enabled- whether PXE was enabled on this interface during the inspection boot.
portsCreates ports for interfaces in
valid_interfacesas set by thevalidate-interfaceshook.Deletes ports that don’t match the
inspector.keep_portssetting.architecturePopulates the
cpu_archproperty on the node.
Optional hooks¶
acceleratorsPopulates the
acceleratorsproperty based on the reported PCI devices. The known accelerators are specified in the YAML file linked in theinspector.known_acceleratorsoption. The default file is the following:pci_devices: - vendor_id: "10de" device_id: "1eb8" type: GPU device_info: NVIDIA Corporation Tesla T4 - vendor_id: "10de" device_id: "1df6" type: GPU device_info: NVIDIA Corporation GV100GL - vendor_id: "10de" device_id: "2236" type: GPU device_info: NVIDIA Corporation A10 - vendor_id: "10de" device_id: "2235" type: GPU device_info: NVIDIA Corporation A40 - vendor_id: "10de" device_id: "26b9" type: GPU device_info: NVIDIA Corporation L40S - vendor_id: "10de" device_id: "26ba" type: GPU device_info: NVIDIA Corporation L20
boot-modeSets the
boot_modecapability based on the observed boot mode, see Boot mode support.cpu-capabilitiesUses the CPU flags to discover CPU capabilities. The exact mapping can be customized via configuration:
[inspector] cpu_capabilities = vmx:cpu_vt,svm:cpu_vt
See
inspector.cpu_capabilitiesfor the default mapping.extra-hardwareConverts the data collected by python-hardware from its raw format into nested dictionaries under the
extraplugin data field.local-link-connectionUses the LLDP information from the ramdisk to populate the
local_link_connectionfield on ports with the physical switch information.memoryPopulates the
memory_mbproperty based on physical RAM information from DMI.parse-lldpParses the raw binary LLDP information from the ramdisk and populates the
parsed_lldpdictionary in plugin data. The keys are network interface names, the values are dictionaries with LLDP values. Example:"parsed_lldp": { "eth0": { "switch_chassis_id": "11:22:33:aa:bb:cc", "switch_system_name": "sw01-dist-1b-b12" } }
pci-devicesPopulates the capabilities based on PCI devices. The mapping is provided by the
inspector.pci_device_aliasoption.physical-networkPopulates the
physical_networkport field for Networking with the Bare Metal service based on the detected IP addresses. The mapping is provided by theinspector.physical_network_cidr_mapoption.raid-deviceDetects the newly created RAID device and populates the
root_deviceproperty used in root device hints. Requires two inspections: one before and one after the RAID creation.root-deviceUses root device hints on the node and the storage device information from the ramdisk to calculate the expected root device and populate the
local_gbproperty (taking theinspector.disk_partitioning_spacingoption into account).