Trait Based Networking Configuration File Reference¶
Introduction¶
Trait Based Networking’s trait configuration file is a YAML format file which defines a set of traits, and their corresponding actions. This file is ingested and validated by the Ironic conductor at start-up.
Trait Layout¶
Below is a valid YAML example trait:
CUSTOM_TRAIT_NAME:
order: 1
actions:
- action: group_and_attach_ports
filter: port.vendor == 'vendor_string'
min_count: 2
- action: attach_port
filter: port.vendor == 'vendor_string' && port.is_portgroup
max_count: 1
CUSTOM_TRAIT_NAME is the trait’s name. Each trait is identified by a name
which must start with CUSTOM. It’s order is 1. Ordering is
ascending, so lower orders will apply first.
actions is a list of actions to apply if this trait matches one defined
in a node’s instance_info.traits field.
Each action has the following necessary keys:
action- The action to take.filter- The Filter Expression to apply with this action.
Note
Refer to Filter Expression Reference for detailed explanations on how to write valid filter expressions.
and the following optional keys:
max_count- The maximum number of objects that can match this action. There is no default maximum.min_count- The minimum number of objects that must match before this action applies. The default minimum is effectively 1.
Available Actions¶
The following actions are currently available:
attach_port- Attach (port, network) pairs that pass this action’s filter expression.attach_portgroup- Attach (portgroup, network) pairs that pass this action’s filter expression.group_and_attach_ports- Select a set of ports. Create a dynamic portgroup comprised of the set of ports. Then attach the newly created dynamic portgroup to a suitable network. This action must set amin_countof at least 2. Also note that all ports selected for the portgroup must have the samephysical_network.
Future actions are planned. This document will be updated as they become available.
Example Configuration File¶
An example Trait Based Networking configuration file is shipped with Ironic. A copy is available here. While backwards compatibility breaking changes are generally avoided where possible, please be aware that the linked copy may not be compatible with your version of Ironic.