Reorganize the existing docs to give space to more information. Cover the most critical topics, except for installation. Change-Id: If0f185e0303d6f8071306edbc64b9c5704f58d16
4.7 KiB
Inspection hooks
Inspection hooks are a type of the Bare Metal service plug-ins responsible for processing data from in-band inspection. By confuguring 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:
:oslo.configinspector.default_hooks
defines which hooks run by
default, while :oslo.configinspector.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 :oslo.configinspector.default_hooks
option:
ramdisk-error
-
Processes the
error
field from the ramdisk, aborting inspection if it is not empty. validate-interfaces
-
Validates network interfaces and stores the result in the
plugin_data
in two fields:all_interfaces
- all interfaces that pass the basic sanity check.valid_interfaces
- interfaces that satisfy the configuration in the :oslo.configinspector.add_ports
option.
In both cases, interfaces get an addition field:
pxe_enabled
- whether PXE was enabled on this interface during the inspection boot.
ports
-
Creates ports for interfaces in
valid_interfaces
as set by thevalidate-interfaces
hook.Deletes ports that don't match the :oslo.config
inspector.keep_ports
setting. architecture
-
Populates the
cpu_arch
property on the node.
Optional hooks
accelerators
-
Populates the
accelerators
property based on the reported PCI devices. The known accelerators are specified in the YAML file linked in the :oslo.configinspector.known_accelerators
option. The default file is the following:../../../../ironic/drivers/modules/inspector/hooks/known_accelerators.yaml
boot-mode
-
Sets the
boot_mode
capability based on the observed boot mode, seeboot_mode_support
. cpu-capabilities
-
Uses the CPU flags to
discover CPU capabilities <capabilities-discovery>
. The exact mapping can be customized via configuration:[inspector] cpu_capabilities = vmx:cpu_vt,svm:cpu_vt
See :oslo.config
inspector.cpu_capabilities
for the default mapping. extra-hardware
-
Converts the data collected by python-hardware from its raw format into nested dictionaries under the
extra
plugin data field. local-link-connection
-
Uses the LLDP information from the ramdisk to populate the
local_link_connection
field on ports with the physical switch information. memory
-
Populates the
memory_mb
property based on physical RAM information from DMI. parse-lldp
-
Parses the raw binary LLDP information from the ramdisk and populates the
parsed_lldp
dictionary 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-devices
-
Populates the capabilities based on PCI devices. The mapping is provided by the :oslo.config
inspector.pci_device_alias
option. physical-network
-
Populates the
physical_network
port field for/admin/multitenancy
based on the detected IP addresses. The mapping is provided by the :oslo.configinspector.physical_network_cidr_map
option. raid-device
-
Detects the newly created RAID device and populates the
root_device
property used inroot device hints <root-device-hints>
. Requires two inspections: one before and one after the RAID creation. root-device
-
Uses
root device hints <root-device-hints>
on the node and the storage device information from the ramdisk to calculate the expected root device and populate thelocal_gb
property (taking the :oslo.configinspector.disk_partitioning_spacing
option into account).