Added the ability to backfill allocations for already deployed nodes by
creating an allocation with node
set.
Added the following new endpoint for allocation:
PATCH /v1/allocations/<allocation_ident>
that allows updating name
and extra
fields for an existing allocation.Added the ability for the configdrive
parameter submitted with
the deployment of a node, to include a meta_data
, network_data
and user_data
dictionary fields. Ironic will now use the supplied
data to create a configuration drive for the user. Prior uses of the
configdrive
field are unaffected.
Added the following new endpoints for deploy templates:
GET /v1/deploy_templates
to list all deploy templates.GET /v1/deploy_templates/<deploy template identifier>
to retrieve details
of a deploy template.POST /v1/deploy_templates
to create a deploy template.PATCH /v1/deploy_templates/<deploy template identifier>
to update a
deploy template.DELETE /v1/deploy_templates/<deploy template identifier>
to delete a
deploy template.Added new endpoints for external events
:
Added is_smartnic
field to the port object to enable Smart NIC port
creation in addition to local link connection attributes port_id
and
hostname
.
Added allocation API, allowing reserving a node for deployment based on resource class and traits. The new endpoints are:
POST /v1/allocations
to request an allocation.GET /v1/allocations
to list all allocations.GET /v1/allocations/<ID or name>
to retrieve the allocation details.GET /v1/nodes/<ID or name>/allocation
to retrieve an allocation
associated with the node.DELETE /v1/allocations/<ID or name>
to remove the allocation.DELETE /v1/nodes/<ID or name>/allocation
to remove an allocation
associated with the node.Also added a new field allocation_uuid
to the node resource.
Added description
field to the node object to enable operators to store
any information relates to the node. The field is limited to 4096 characters.
Added owner
field to the node object to enable operators to store
information in relation to the owner of a node. The field is up to 255
characters and MAY be used in a later point in time to allow designation
and deligation of permissions.
Added new endpoints for retrieving conductors information, and added a
conductor
field to node object.
Added protected
field to the node object to allow protecting deployed nodes
from undeploying, rebuilding or deletion. Also added protected_reason
to specify the reason of making the node protected.
Added automated_clean
field to the node object, enabling cleaning per node.
Added conductor_group
field to the node and the node response,
as well as support to the API to return results by matching
the parameter.
Added reset_interfaces
parameter to node’s PATCH request, to specify
whether to reset hardware interfaces to their defaults on driver’s update.
Added deploy_step
to the node object, to indicate the current deploy
step (if any) being performed on the node.
Added ?detail=
boolean query to the API list endpoints to provide a more
RESTful alternative to the existing /nodes/detail
and similar endpoints.
Added fault
to the node object, to indicate currently detected fault on
the node.
Added support to abort inspection of a node in the inspect wait
state.
Added BIOS properties as sub resources of nodes:
Added bios_interface
field to the node object to allow getting and
setting the interface.
Added inspect wait
to available provision states. A node is shown as
inspect wait
instead of inspecting
during asynchronous inspection.
Added provision_state verbs rescue
and unrescue
along with
the following states: rescue
, rescue failed
, rescue wait
,
rescuing
, unrescue failed
, and unrescuing
. After rescuing
a node, it will be left in the rescue
state running a rescue
ramdisk, configured with the rescue_password
, and listening with
ssh on the specified network interfaces. Unrescuing a node will return
it to active
.
Added rescue_interface
to the node object, to
allow setting the rescue interface for a dynamic driver.
Adds support for node traits, with the following new endpoints.
A node’s traits are also included the following node query and list responses:
Traits cannot be specified on node creation, nor can they be updated via a PATCH request on the node.
Added agent_version
parameter to deploy heartbeat request for version
negotiation with Ironic Python Agent features.
Added ability to provide configdrive
when node is updated
to rebuild
provision state.
Adds a physical_network
field to the port object. All ports in a
portgroup must have the same value in their physical_network
field.
Added storage_interface
field to the node object to allow getting and
setting the interface.
Added default_storage_interface
and enabled_storage_interfaces
fields to the driver object to show the information.
Added new endpoints for remote volume configuration:
Volume resources also can be listed as sub resources of nodes:
Added the following fields to the node object, to allow getting and setting interfaces for a dynamic driver:
Added dynamic driver APIs:
type
parameter (optional, one of
classic
or dynamic
), to limit the result to only classic drivers
or dynamic drivers (hardware types). Without this parameter, both
classic and dynamic drivers are returned.detail
parameter (optional, one of
True
or False
), to show all fields for a driver. Defaults to
False
.type
field to show if the
driver is classic or dynamic.type
field to show
if the driver is classic or dynamic.Add a new management API to support inject NMI, ‘PUT /v1/nodes/(node_ident)/management/inject_nmi’.
Add ‘/v1/nodes/<node identifier>/vifs’ endpoint for attach, detach and list of VIFs.
Add soft rebooting
and soft power off
as possible values
for the target
field of the power state change payload, and
also add timeout
field to it.
Add portgroup mode
and properties
fields.
Add possibility to unset chassis_uuid from a node.
Added new endpoints ‘/v1/nodes/<node>/portgroups’ and ‘/v1/portgroups/<portgroup>/ports’.
Added new field port.portgroup_uuid
.
Added ‘/v1/portgroups/ endpoint.
Added endpoints for deployment ramdisks.
Add node resource_class
field.
Add node network_interface
field.
Add local_link_connection
and pxe_enabled
fields to the port object.
Add internal_info
readonly field to the port object, that will be used
by ironic to store internal port-related information.
Addition of provision_state verb adopt
which allows an operator
to move a node from manageable
state to active
state without
performing a deployment operation on the node. This is intended for
nodes that have already been deployed by external means.
Add ability to filter nodes by driver.
Add ability to do manual cleaning when a node is in the manageable provision state via PUT v1/nodes/<identifier>/states/provision, target:clean, clean_steps:[…].
Make the following endpoints discoverable via Ironic API:
Add a new verb abort
to the API used to abort nodes in
CLEANWAIT
state.
This API version adds the following abilities:
node.target_raid_config
and to get
node.raid_config
.Newly registered nodes begin in the enroll
provision state by default,
instead of available
. To get them to the available
state,
the manage
action must first be run to verify basic hardware control.
On success the node moves to manageable
provision state. Then the
provide
action must be run. Automated cleaning of the node is done and
the node is made available
.
Logical node names support all RFC 3986 unreserved characters. Previously only valid fully qualified domain names could be used.
Add ability to filter nodes by provision state.
Add ability to return a subset of resource fields.
Add node clean_step
field.
Add Hardware Inspection process: introduce inspecting
and inspectfail
provision states, and inspect
action that can be used when a node is in
manageable
provision state.
Add logical node names that can be used to address a node in addition to the node UUID. Name is expected to be a valid fully qualified domain name in this version of API.
Add manageable
state and manage
transition, which can be used to
move a node to manageable
state from available
.
The node cannot be deployed in manageable
state.
This change is mostly a preparation for future inspection work
and introduction of enroll
provision state.
Add node driver_internal_info
field.
Renamed NOSTATE (None
in Python, null
in JSON) node state to
available
. This is needed to reduce confusion around None
state,
especially when future additions to the state machine land.
This was the initial version when API versioning was introduced. Includes the following changes from Kilo release cycle:
maintenance_reason
field and an API endpoint to
set/unset the node maintenance mode.POST
.This has been the minimum supported version since versioning was introduced.
This version denotes Juno API and was never explicitly supported, as API versioning was not implemented in Juno, and 1.1 became the minimum supported version in Kilo.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.