
This patch increments the API version for the Secure RBAC as was covered in the specification in order to signify to API consumers that may need to be aware if the API surface can support Secure RBAC policy configuration. Change-Id: Ia659708bb89ff416b65367505d3e068c6d4a198f
620 lines
18 KiB
ReStructuredText
620 lines
18 KiB
ReStructuredText
========================
|
|
REST API Version History
|
|
========================
|
|
|
|
1.71 (Wallaby)
|
|
--------------
|
|
|
|
Signifier of the API supporting keystone ``system`` scoped roles and
|
|
access controls. This is an informational flag for clients to be aware of
|
|
the server's capability.
|
|
|
|
1.70 (Wallaby)
|
|
--------------
|
|
|
|
Add support for ``disable_ramdisk`` parameter to provisioning endpoint
|
|
``/v1/nodes/{node_ident}/states/provision``.
|
|
|
|
|
|
1.69 (Wallaby, 16.2)
|
|
----------------------
|
|
|
|
Add support for ``deploy_steps`` parameter to provisioning endpoint
|
|
``/v1/nodes/{node_ident}/states/provision``. Available and optional when target
|
|
is 'active' or 'rebuild'.
|
|
|
|
1.68 (Victoria, 16.0)
|
|
-----------------------
|
|
|
|
Added the ``agent_verify_ca`` parameter to the ramdisk heartbeat API.
|
|
|
|
1.67 (Victoria, 15.1)
|
|
-----------------------
|
|
|
|
Add support for the mutually exclusive ``port_uuid`` and ``portgroup_uuid``
|
|
fields by having the node vif_attach API accept those values within
|
|
``vif_info``.
|
|
If one is specified, then Ironic will attempt to attach a VIF to the relative
|
|
port or portgroup.
|
|
|
|
1.66 (Victoria, 15.1)
|
|
-----------------------
|
|
|
|
Add ``network_data`` field to the node object, that will be used by
|
|
stand-alone ironic to pass L3 network configuration information to
|
|
ramdisk.
|
|
|
|
1.65 (Ussuri, 15.0)
|
|
---------------------
|
|
|
|
Added ``lessee`` field to the node object. The field should match the
|
|
``project_id`` of the intended lessee. If an allocation has an owner,
|
|
then the allocation process will only match the allocation with a node
|
|
that has the same ``owner`` or ``lessee``.
|
|
|
|
1.64 (Ussuri, 15.0)
|
|
---------------------
|
|
|
|
Added the ``network_type`` to the port objects ``local_link_connection`` field.
|
|
The ``network_type`` can be set to either ``managed`` or ``unmanaged``. When the
|
|
type is ``unmanaged`` other fields are not required. Use ``unmanaged`` when the
|
|
neutron ``network_interface`` is required, but the network is in fact a flat
|
|
network where no actual switch management is done.
|
|
|
|
1.63 (Ussuri, 15.0)
|
|
---------------------
|
|
|
|
Added the following new endpoints for indicator management:
|
|
|
|
* ``GET /v1/nodes/<node_ident>/management/indicators`` to list all
|
|
available indicators names for each of the hardware component.
|
|
Currently known components are: ``chassis``, ``system``, ``disk``, ``power``
|
|
and ``nic``.
|
|
* ``GET /v1/nodes/<node_ident>/management/indicators/<component>/<indicator_ident>``
|
|
to retrieve all indicators and their states for the hardware component.
|
|
* ``PUT /v1/nodes/<node_ident>/management/indicators/<component>/<indicator_ident>``
|
|
change state of the desired indicators of the component.
|
|
|
|
1.62 (Ussuri, 15.0)
|
|
---------------------
|
|
|
|
This version of the API is to signify capability of an ironic deployment
|
|
to support the ``agent token`` functionality with the
|
|
``ironic-python-agent``.
|
|
|
|
1.61 (Ussuri, 14.0)
|
|
---------------------
|
|
|
|
Added ``retired`` field to the node object to mark nodes for retirement.
|
|
If set, this flag will move nodes to ``manageable`` upon automatic
|
|
cleaning. ``manageable`` nodes which have this flag set cannot be
|
|
moved to available. Also added ``retired_reason`` to specify the
|
|
retirement reason.
|
|
|
|
1.60 (Ussuri, 14.0)
|
|
---------------------
|
|
|
|
Added ``owner`` field to the allocation object. The field should match the
|
|
``project_id`` of the intended owner. If the ``owner`` field is set, the
|
|
allocation process will only match the allocation with a node that has the
|
|
same ``owner`` field set.
|
|
|
|
1.59 (Ussuri, 14.0)
|
|
---------------------
|
|
|
|
Added the ability to specify a ``vendor_data`` dictionary field in the
|
|
``configdrive`` parameter submitted with the deployment of a node. The value
|
|
is a dictionary which is served as ``vendor_data2.json`` in the config drive.
|
|
|
|
1.58 (Train, 12.2.0)
|
|
--------------------
|
|
|
|
Added the ability to backfill allocations for already deployed nodes by
|
|
creating an allocation with ``node`` set.
|
|
|
|
1.57 (Train, 12.2.0)
|
|
--------------------
|
|
|
|
Added the following new endpoint for allocation:
|
|
|
|
* ``PATCH /v1/allocations/<allocation_ident>`` that allows updating ``name``
|
|
and ``extra`` fields for an existing allocation.
|
|
|
|
1.56 (Stein, 12.1.0)
|
|
--------------------
|
|
|
|
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.
|
|
|
|
1.55 (Stein, 12.1.0)
|
|
--------------------
|
|
|
|
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.
|
|
|
|
1.54 (Stein, 12.1.0)
|
|
--------------------
|
|
|
|
Added new endpoints for external ``events``:
|
|
|
|
* POST /v1/events for creating events. (This endpoint is only intended for
|
|
internal consumption.)
|
|
|
|
1.53 (Stein, 12.1.0)
|
|
--------------------
|
|
|
|
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``.
|
|
|
|
1.52 (Stein, 12.1.0)
|
|
--------------------
|
|
|
|
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.
|
|
|
|
1.51 (Stein, 12.1.0)
|
|
--------------------
|
|
|
|
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.
|
|
|
|
1.50 (Stein, 12.1.0)
|
|
--------------------
|
|
|
|
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.
|
|
|
|
1.49 (Stein, 12.0.0)
|
|
--------------------
|
|
|
|
Added new endpoints for retrieving conductors information, and added a
|
|
``conductor`` field to node object.
|
|
|
|
1.48 (Stein, 12.0.0)
|
|
--------------------
|
|
|
|
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.
|
|
|
|
1.47 (Stein, 12.0.0)
|
|
--------------------
|
|
|
|
Added ``automated_clean`` field to the node object, enabling cleaning per node.
|
|
|
|
1.46 (Rocky, 11.1.0)
|
|
--------------------
|
|
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.
|
|
|
|
1.45 (Rocky, 11.1.0)
|
|
--------------------
|
|
|
|
Added ``reset_interfaces`` parameter to node's PATCH request, to specify
|
|
whether to reset hardware interfaces to their defaults on driver's update.
|
|
|
|
1.44 (Rocky, 11.1.0)
|
|
--------------------
|
|
|
|
Added ``deploy_step`` to the node object, to indicate the current deploy
|
|
step (if any) being performed on the node.
|
|
|
|
1.43 (Rocky, 11.0.0)
|
|
--------------------
|
|
|
|
Added ``?detail=`` boolean query to the API list endpoints to provide a more
|
|
RESTful alternative to the existing ``/nodes/detail`` and similar endpoints.
|
|
|
|
1.42 (Rocky, 11.0.0)
|
|
--------------------
|
|
|
|
Added ``fault`` to the node object, to indicate currently detected fault on
|
|
the node.
|
|
|
|
1.41 (Rocky, 11.0.0)
|
|
--------------------
|
|
|
|
Added support to abort inspection of a node in the ``inspect wait`` state.
|
|
|
|
1.40 (Rocky, 11.0.0)
|
|
--------------------
|
|
|
|
Added BIOS properties as sub resources of nodes:
|
|
|
|
* GET /v1/nodes/<node_ident>/bios
|
|
* GET /v1/nodes/<node_ident>/bios/<setting_name>
|
|
|
|
Added ``bios_interface`` field to the node object to allow getting and
|
|
setting the interface.
|
|
|
|
1.39 (Rocky, 11.0.0)
|
|
--------------------
|
|
|
|
Added ``inspect wait`` to available provision states. A node is shown as
|
|
``inspect wait`` instead of ``inspecting`` during asynchronous inspection.
|
|
|
|
1.38 (Queens, 10.1.0)
|
|
---------------------
|
|
|
|
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.
|
|
|
|
1.37 (Queens, 10.1.0)
|
|
---------------------
|
|
|
|
Adds support for node traits, with the following new endpoints.
|
|
|
|
* GET /v1/nodes/<node identifier>/traits lists the traits for a node.
|
|
|
|
* PUT /v1/nodes/<node identifier>/traits sets all traits for a node.
|
|
|
|
* PUT /v1/nodes/<node identifier>/traits/<trait> adds a trait to a node.
|
|
|
|
* DELETE /v1/nodes/<node identifier>/traits removes all traits from a node.
|
|
|
|
* DELETE /v1/nodes/<node identifier>/traits/<trait> removes a trait from a
|
|
node.
|
|
|
|
A node's traits are also included the following node query and list responses:
|
|
|
|
* GET /v1/nodes/<node identifier>
|
|
|
|
* GET /v1/nodes/detail
|
|
|
|
* GET /v1/nodes?fields=traits
|
|
|
|
Traits cannot be specified on node creation, nor can they be updated via a
|
|
PATCH request on the node.
|
|
|
|
1.36 (Queens, 10.0.0)
|
|
---------------------
|
|
|
|
Added ``agent_version`` parameter to deploy heartbeat request for version
|
|
negotiation with Ironic Python Agent features.
|
|
|
|
1.35 (Queens, 9.2.0)
|
|
--------------------
|
|
|
|
Added ability to provide ``configdrive`` when node is updated
|
|
to ``rebuild`` provision state.
|
|
|
|
1.34 (Pike, 9.0.0)
|
|
------------------
|
|
|
|
Adds a ``physical_network`` field to the port object. All ports in a
|
|
portgroup must have the same value in their ``physical_network`` field.
|
|
|
|
1.33 (Pike, 9.0.0)
|
|
------------------
|
|
|
|
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.
|
|
|
|
1.32 (Pike, 9.0.0)
|
|
------------------
|
|
|
|
Added new endpoints for remote volume configuration:
|
|
|
|
* GET /v1/volume as a root for volume resources
|
|
* GET /v1/volume/connectors for listing volume connectors
|
|
* POST /v1/volume/connectors for creating a volume connector
|
|
* GET /v1/volume/connectors/<UUID> for showing a volume connector
|
|
* PATCH /v1/volume/connectors/<UUID> for updating a volume connector
|
|
* DELETE /v1/volume/connectors/<UUID> for deleting a volume connector
|
|
* GET /v1/volume/targets for listing volume targets
|
|
* POST /v1/volume/targets for creating a volume target
|
|
* GET /v1/volume/targets/<UUID> for showing a volume target
|
|
* PATCH /v1/volume/targets/<UUID> for updating a volume target
|
|
* DELETE /v1/volume/targets/<UUID> for deleting a volume target
|
|
|
|
Volume resources also can be listed as sub resources of nodes:
|
|
|
|
* GET /v1/nodes/<node identifier>/volume
|
|
* GET /v1/nodes/<node identifier>/volume/connectors
|
|
* GET /v1/nodes/<node identifier>/volume/targets
|
|
|
|
1.31 (Ocata, 7.0.0)
|
|
-------------------
|
|
|
|
Added the following fields to the node object, to allow getting and
|
|
setting interfaces for a dynamic driver:
|
|
|
|
* boot_interface
|
|
* console_interface
|
|
* deploy_interface
|
|
* inspect_interface
|
|
* management_interface
|
|
* power_interface
|
|
* raid_interface
|
|
* vendor_interface
|
|
|
|
1.30 (Ocata, 7.0.0)
|
|
-------------------
|
|
|
|
Added dynamic driver APIs:
|
|
|
|
* GET /v1/drivers now accepts a ``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.
|
|
|
|
* GET /v1/drivers now accepts a ``detail`` parameter (optional, one of
|
|
``True`` or ``False``), to show all fields for a driver. Defaults to
|
|
``False``.
|
|
|
|
* GET /v1/drivers now returns an additional ``type`` field to show if the
|
|
driver is classic or dynamic.
|
|
|
|
* GET /v1/drivers/<name> now returns an additional ``type`` field to show
|
|
if the driver is classic or dynamic.
|
|
|
|
* GET /v1/drivers/<name> now returns additional fields that are null for
|
|
classic drivers, and set as following for dynamic drivers:
|
|
|
|
* The value of the default_<interface-type>_interface is the entrypoint
|
|
name of the calculated default interface for that type:
|
|
|
|
* default_boot_interface
|
|
* default_console_interface
|
|
* default_deploy_interface
|
|
* default_inspect_interface
|
|
* default_management_interface
|
|
* default_network_interface
|
|
* default_power_interface
|
|
* default_raid_interface
|
|
* default_vendor_interface
|
|
|
|
* The value of the enabled_<interface-type>_interfaces is a list of
|
|
entrypoint names of the enabled interfaces for that type:
|
|
|
|
* enabled_boot_interfaces
|
|
* enabled_console_interfaces
|
|
* enabled_deploy_interfaces
|
|
* enabled_inspect_interfaces
|
|
* enabled_management_interfaces
|
|
* enabled_network_interfaces
|
|
* enabled_power_interfaces
|
|
* enabled_raid_interfaces
|
|
* enabled_vendor_interfaces
|
|
|
|
1.29 (Ocata, 7.0.0)
|
|
-------------------
|
|
|
|
Add a new management API to support inject NMI,
|
|
'PUT /v1/nodes/(node_ident)/management/inject_nmi'.
|
|
|
|
1.28 (Ocata, 7.0.0)
|
|
-------------------
|
|
|
|
Add '/v1/nodes/<node identifier>/vifs' endpoint for attach, detach and list of VIFs.
|
|
|
|
1.27 (Ocata, 7.0.0)
|
|
-------------------
|
|
|
|
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.
|
|
|
|
1.26 (Ocata, 7.0.0)
|
|
-------------------
|
|
|
|
Add portgroup ``mode`` and ``properties`` fields.
|
|
|
|
1.25 (Ocata, 7.0.0)
|
|
-------------------
|
|
|
|
Add possibility to unset chassis_uuid from a node.
|
|
|
|
1.24 (Ocata, 7.0.0)
|
|
-------------------
|
|
|
|
Added new endpoints '/v1/nodes/<node>/portgroups' and '/v1/portgroups/<portgroup>/ports'.
|
|
Added new field ``port.portgroup_uuid``.
|
|
|
|
1.23 (Ocata, 7.0.0)
|
|
-------------------
|
|
|
|
Added '/v1/portgroups/ endpoint.
|
|
|
|
1.22 (Newton, 6.1.0)
|
|
--------------------
|
|
|
|
Added endpoints for deployment ramdisks.
|
|
|
|
1.21 (Newton, 6.1.0)
|
|
--------------------
|
|
|
|
Add node ``resource_class`` field.
|
|
|
|
1.20 (Newton, 6.1.0)
|
|
--------------------
|
|
|
|
Add node ``network_interface`` field.
|
|
|
|
1.19 (Newton, 6.1.0)
|
|
--------------------
|
|
|
|
Add ``local_link_connection`` and ``pxe_enabled`` fields to the port object.
|
|
|
|
1.18 (Newton, 6.1.0)
|
|
--------------------
|
|
|
|
Add ``internal_info`` readonly field to the port object, that will be used
|
|
by ironic to store internal port-related information.
|
|
|
|
1.17 (Newton, 6.0.0)
|
|
--------------------
|
|
|
|
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.
|
|
|
|
1.16 (Mitaka, 5.0.0)
|
|
--------------------
|
|
|
|
Add ability to filter nodes by driver.
|
|
|
|
1.15 (Mitaka, 5.0.0)
|
|
--------------------
|
|
|
|
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:[...].
|
|
|
|
1.14 (Liberty, 4.2.0)
|
|
---------------------
|
|
|
|
Make the following endpoints discoverable via Ironic API:
|
|
|
|
* '/v1/nodes/<UUID or logical name>/states'
|
|
* '/v1/drivers/<driver name>/properties'
|
|
|
|
1.13 (Liberty, 4.2.0)
|
|
---------------------
|
|
|
|
Add a new verb ``abort`` to the API used to abort nodes in
|
|
``CLEANWAIT`` state.
|
|
|
|
1.12 (Liberty, 4.2.0)
|
|
---------------------
|
|
|
|
This API version adds the following abilities:
|
|
|
|
* Get/set ``node.target_raid_config`` and to get
|
|
``node.raid_config``.
|
|
* Retrieve the logical disk properties for the driver.
|
|
|
|
1.11 (Liberty, 4.0.0, breaking change)
|
|
--------------------------------------
|
|
|
|
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``.
|
|
|
|
1.10 (Liberty, 4.0.0)
|
|
---------------------
|
|
|
|
Logical node names support all RFC 3986 unreserved characters.
|
|
Previously only valid fully qualified domain names could be used.
|
|
|
|
1.9 (Liberty, 4.0.0)
|
|
--------------------
|
|
|
|
Add ability to filter nodes by provision state.
|
|
|
|
1.8 (Liberty, 4.0.0)
|
|
--------------------
|
|
|
|
Add ability to return a subset of resource fields.
|
|
|
|
1.7 (Liberty, 4.0.0)
|
|
--------------------
|
|
|
|
Add node ``clean_step`` field.
|
|
|
|
1.6 (Kilo)
|
|
----------
|
|
|
|
Add :ref:`inspection` process: introduce ``inspecting`` and ``inspectfail``
|
|
provision states, and ``inspect`` action that can be used when a node is in
|
|
``manageable`` provision state.
|
|
|
|
1.5 (Kilo)
|
|
----------
|
|
|
|
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.
|
|
|
|
1.4 (Kilo)
|
|
----------
|
|
|
|
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.
|
|
|
|
1.3 (Kilo)
|
|
----------
|
|
|
|
Add node ``driver_internal_info`` field.
|
|
|
|
1.2 (Kilo, breaking change)
|
|
---------------------------
|
|
|
|
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.
|
|
|
|
1.1 (Kilo)
|
|
----------
|
|
|
|
This was the initial version when API versioning was introduced.
|
|
Includes the following changes from Kilo release cycle:
|
|
|
|
* Add node ``maintenance_reason`` field and an API endpoint to
|
|
set/unset the node maintenance mode.
|
|
|
|
* Add sync and async support for vendor passthru methods.
|
|
|
|
* Vendor passthru endpoints support different HTTP methods, not only
|
|
``POST``.
|
|
|
|
* Make vendor methods discoverable via the Ironic API.
|
|
|
|
* Add logic to store the config drive passed by Nova.
|
|
|
|
This has been the minimum supported version since versioning was
|
|
introduced.
|
|
|
|
1.0 (Juno)
|
|
----------
|
|
|
|
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.
|
|
|
|
.. _fully qualified domain name: https://en.wikipedia.org/wiki/Fully_qualified_domain_name
|