1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687
|
========================
REST API Version History
========================
1.80 (Zed, 21.1)
----------------------
This verison is a signifier of additional RBAC functionality allowing
a project scoped ``admin`` to create or delete nodes in Ironic.
1.79 (Zed, 21.0)
----------------------
A node with the same name as the allocation ``name`` is moved to the
start of the derived candidate list.
1.78 (Xena, 18.2)
----------------------
Add endpoints to allow history events for nodes to be retrieved via
the REST API.
* ``GET /v1/nodes/{node_ident}/history/``
* ``GET /v1/nodes/{node_ident}/history/{event_uuid}``
1.77 (Xena, 18.2)
----------------------
Add a fields selector to the the Drivers list:
* ``GET /v1/drivers?fields=``
Also add a fields selector to the the Driver detail:
* ``GET /v1/drivers/{driver_name}?fields=``
1.76 (Xena, 18.2)
----------------------
Add endpoints for changing boot mode and secure boot state of node
asynchronously:
* ``PUT /v1/nodes/{node_ident}/states/boot_mode``
* ``PUT /v1/nodes/{node_ident}/states/secure_boot``
1.75 (Xena, 18.1)
----------------------
Add ``boot_mode`` and ``secure_boot`` to node object and expose their state at:
* ``/v1/nodes/{node_ident}/states``
1.74 (Xena, 18.0)
----------------------
Add support for BIOS registry fields which include details about the BIOS
setting. Included in the ``/v1/nodes/{node_ident}/bios/{setting}`` response.
Add a new selector to include the fields in the BIOS settings list:
* ``/v1/nodes/{node_ident}/bios/?detail=``
Also add a fields selector to the the BIOS settings list:
* ``/v1/nodes/{node_ident}/bios/?fields=``
1.73 (Xena, 18.0)
----------------------
Add a new ``deploy`` verb as an alias to ``active`` and
``undeploy`` verb as an alias to ``deleted``.
1.72 (Wallaby, 17.0)
----------------------
Add support for ``agent_status`` and ``agent_status_message`` to /v1/heartbeat.
These fields are used for external installation tools, such as Anaconda, to
report back status.
1.71 (Wallaby, 17.0)
----------------------
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, 17.0)
----------------------
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
|