[RFE] for rolling upgrades, pin the API version

Bug #1708549 reported by Ruby Loo on 2017-08-03
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fix Released
Dmitry Tantsur

Bug Description

Now that we have the rolling upgrades infrastructure in place, let's refine it! During a rolling upgrade, the new ironic-api and ironic-conductor services are pinned so that they use the same RPC vesions and IronicObject versions as the older service (thus allowing them to talk to each other without getting upset).

For the ironic-api service, we should also pin the API microversion. Pinning this would:

- make it easier for the new ironic-api services to know when/how to reject new features that the old ironic-api services cannot handle. They would return HTTP code 406 (Not Acceptable)
- change the response header so that the maximum API version would be the pinned version

This would take effect using the same [DEFAULT]pin_release_version configuration option, so no extra things for the operator to do .

Documentation will be updated to reflect this.

Ruby Loo (rloo) on 2017-08-04
description: updated
Ruby Loo (rloo) on 2017-09-26
tags: added: rfe
Vladyslav Drok (vdrok) on 2017-11-03
Changed in ironic:
status: New → Confirmed

Fix proposed to branch: master
Review: https://review.openstack.org/518411

Changed in ironic:
status: Confirmed → In Progress

Fix proposed to branch: master
Review: https://review.openstack.org/518648

Ruby Loo (rloo) wrote :

Discussed in ironic meeting [1]. Dmitry and Julia are good with this.

[1] http://eavesdrop.openstack.org/meetings/ironic/2017/ironic.2017-11-20-17.00.log.html#l-268

tags: added: rfe-approved
removed: rfe
description: updated
Changed in ironic:
assignee: Ruby Loo (rloo) → Dmitry Tantsur (divius)

Reviewed: https://review.openstack.org/518411
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=feac8cfb786f7490743b3f270aa569054795ef4f
Submitter: Zuul
Branch: master

commit feac8cfb786f7490743b3f270aa569054795ef4f
Author: Ruby Loo <email address hidden>
Date: Tue Nov 7 17:47:40 2017 -0500

    Pin API version during rolling upgrade

    During a rolling upgrade, when the new services are pinned to the
    old release, the API version will also be pinned to the old release.
    This will prevent users from accessing new features that may not quite

    The .sample was updated to reflect the change to the help string for
    the [DEFAULT]/pin_release_version configuration option. The update also
    pulled in changes for other options, from other (non-ironic) libraries.

    Change-Id: I38a0f106b589945fb62071f3dfe5bff43c6fee93
    Partial-Bug: #1708549

Reviewed: https://review.openstack.org/518648
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=76312313d4ab43a84a9069108bbce5befabcc689
Submitter: Zuul
Branch: master

commit 76312313d4ab43a84a9069108bbce5befabcc689
Author: Ruby Loo <email address hidden>
Date: Wed Nov 8 22:59:57 2017 -0500

    Update docs to include API version pinning

    This updates the documentation to include API version pinning
    during the rolling upgrade process.

    Change-Id: I493cd6229a8bd68720da4d5c25983a3662f4f35a
    Closes-Bug: #1708549

Changed in ironic:
status: In Progress → Fix Released

This issue was fixed in the openstack/ironic 10.0.0 release.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers