Mitaka Series (2.3.0 - 3.2.x) Release Notes¶
Use only single quotes for strings inside SQL statements. Fixes a crash when PostgreSQL is used as a database backend.
The “size” root device hint is now always converted to an integer for consistency with IPA.
Fixes a problem which caused an unhandled TypeError exception to bubble up when inspector was attempting to convert some eDeploy data to integer.
Fixed a regression in the firewall code, which causes re-running introspection for an already inspected node to fail.
Fixed the “is-empty” condition to return True on missing values.
- OpenStack CrossProject Spec:
- Oslo_Middleware Docs:
- OpenStack Cloud Admin Guide:
DHCP is now disabled completely when no nodes are on introspection and the “node_not_found_hook” is not set. This reduces probability of serving DHCP to wrong nodes, if their NIC is not registered in Ironic. See https://bugs.launchpad.net/ironic-inspector/+bug/1557979 and https://bugzilla.redhat.com/show_bug.cgi?id=1317695 for details.
Don’t fail on finish power off if node in ‘enroll’ state. Nodes in ‘enroll’ state are not expected to have power credentials.
Introduced API “POST /v1/introspection/<UUID>/abort” for aborting the introspection process.
New condition plugins “contains” and “matches” allow to match value against regular expressions.
Added new condition plugin “is-empty”, which allows to match empty string, list, dictionary or None.
Add a new node_not_found hook - enroll, which allows automatically discover Ironic’s node.
Conditions now support comparing fields from node info;
Actions support formatting to fetch values from introspection data. See http://docs.openstack.org/developer/ironic-inspector/usage.html#introspection-rules
Introspection rules conditions got a new generic “invert” parameter that inverts the result of the condition.
Switch required Ironic API version to ‘1.11’, which supports ‘enroll’ state.
Minimum possible value for the “max_concurrency” setting is now 2.
Removed deprecated support for passing “node_patches” and “ports_patches” arguments to processing hooks.
Ramdisk logs are no longer part of data stored to Swift and returned by the API.
Introspection rules actions ‘set-attribute’, ‘set-capability’ and ‘extend-attribute’ no longer have the opposite effect on nodes that do not match a rule.
The rollback actions for introspection rules are deprecated. No in-tree actions are using them, 3rdpart should stop using them as soon as possible.
Using the root_device_hint alias for the raid_device plugin is deprecated.
Fixed extra_hardware plugin connection to Swift.
Only issue iptables calls when list of active MAC’s changes.
Dropped rollback actions from ‘set-attribute’, ‘set-capability’ and ‘extend-attribute’ introspection rules actions, as they were confusing, completely undocumented and broke some real world use cases (e.g. setting driver field).
Introspection rules (e.g. set-attribute action) now accept ‘path’ field without leading forward slash as Ironic cli does.
Switched to Futurist library for asynchronous tasks.
Log level for error when node was not found in Inspector cache was changed from error to info level. It was done because not_found_hook may handle this case, so this wouldn’t be error anymore.
Starting with this release, ironic-python-agent becomes the default introspection ramdisk, with the old bash-based ramdisk being deprecated.
Inspector no longer requires old-style “local_gb”, “memory_mb”, “cpus” and “cpu_arch” fields from the introspection ramdisk. They are still supported, though, for compatibility with the old ramdisk.
Removed support for introspecting nodes in maintenance mode, deprecated in the liberty cycle. Use “inspecting”, “manageable” or “enroll” states instead.
The root_disk_selection processing hook will now error out if root device hints are specified on ironic node, but ironic-python-agent is not used as an introspection ramdisk.
Using old bash-based ramdisk is deprecated, please switch to ironic-python-agent as soon as possible.
Fixed confusing error message shown to user when something bad happens during preprocessing (https://launchpad.net/bugs/1523907).
The data processing API endpoint now validates that data received from the ramdisk is actually a JSON object instead of failing the internal error later (issue https://bugs.launchpad.net/bugs/1525876).
Make debug-level logging more compact by removing newlines from firewall logging and disabling some 3rdparty debug messages by default.
Improve logging for ramdisk logs collection.
Logging during processing is now more consistent in terms of how it identifies the node. Now we try to prefix the log message with node UUID, BMC address and PXE MAC address (if available). Logging BMC addresses can be disabled via new “log_bmc_address” option in the “processing” section.
This release includes automatic docs generation via Sphinx.
Never enable Flask debug mode as it may allow remote code execution. See https://bugs.launchpad.net/bugs/1506419 for details.
Log a warning when add_ports is set to pxe, but no PXE MAC is returned from the ramdisk.
Acquire a lock on a node UUID when handling it.
IPA (ironic-python-agent) is now fully supported in the devstack plugin and will become the default ramdisk in the next release.
Allow autogeneration of database migrations.