Switch undercloud from using Nova capabilities

Bug #1793134 reported by Dmitry Tantsur on 2018-09-18
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
High
Dmitry Tantsur

Bug Description

ComputeCapabilitiesFilter is going to be deprecated in favour of traits. Traits are similar to capabilities, but they are binary. A capability has a value (profile=compute), but a trait is either present (CUSTOM_PROFILE_COMPUTE) or not. The reasons for this decision are outside of this bug, but we have to get ready to Nova stopping using capabilities for scheduling.

Our options are:
1. Switch to traits ourselves.
2. Keep support for capabilities in our custom TripleOCapabilitiesFilter.
3. Speed up switch to metalsmith, as it still supports capabilities.

I think the only reasonable option currently is #1 - use traits. We are not ready to switch to metalsmith yet, and I'd highly avoid relying more on the TripleO-specific scheduling code.

The rough list of actions items for this is:
1. Update instackenv.json with support for "profile" field. It will be used to transparently set capabilities and/or traits. Deprecate setting "capabilities" via instackenv.json.
1.1. Provide conversion between capabilities and traits during the deprecation period.
2. On undercloud upgrade:
2.1. Add a trait CUSTOM_PROFILE_<PROFILE> for each node that has a profile already.
2.2. Change each flavor that refer to a profile to refer to a trait.
3. Update validations to look at traits (if needed).
4. Update profile matching commands to look at traits.

Updating profile matching requires ironic-inspector to support traits in the introspection rules. It is tracked in https://storyboard.openstack.org/#!/story/2003788.

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

Changed in tripleo:
status: Triaged → In Progress

Change abandoned by Juan Antonio Osorio Robles (<email address hidden>) on branch: master
Review: https://review.openstack.org/616585
Reason: clearing the gate

Reviewed: https://review.openstack.org/616585
Committed: https://git.openstack.org/cgit/openstack/tripleo-common/commit/?id=e3a410f699efb3fbdc34f95299c68c75bbc2de0a
Submitter: Zuul
Branch: master

commit e3a410f699efb3fbdc34f95299c68c75bbc2de0a
Author: Dmitry Tantsur <email address hidden>
Date: Thu Nov 8 15:52:19 2018 +0100

    Supports specifying profile explicitly in instackenv.json

    One day Nova will deprecate capabilities, and we'll have to use
    something else for profiles. As a preparational steps, start
    accepting profile as a separate instackenv.json field, thus decoupling
    it from the underlying implementation.

    Partial-Bug: #1793134
    Change-Id: Ife97a0955a480bcc41b3453d58ef7fe6488b476c

Changed in tripleo:
milestone: stein-2 → stein-3
Changed in tripleo:
milestone: stein-3 → stein-rc1
Changed in tripleo:
milestone: stein-rc1 → train-1
Changed in tripleo:
milestone: train-1 → train-2
Changed in tripleo:
milestone: train-2 → train-3
Changed in tripleo:
milestone: train-3 → ussuri-1
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers