Derived Parameters workflow doesn't support node placement scheduler hints

Bug #1760659 reported by Alan Bishop
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
Medium
Alan Bishop

Bug Description

The Derived Parameters workflow needs to associate overcloud nodes with their TripleO role. This means matching nodes by their profile/flavor, or by matching nodes using scheduler hints. However, matching nodes using scheduler hints is missing in the current implementation, which causes the Derived Parameters workflow to fail.

Here is an example when trying to derive parameters for HCI, where the OsdCompute role uses scheduler hints. The hci.yaml environment file contains:

parameter_defaults:
  OsdComputeSchedulerHints:
    'capabilities:node': 'osd-compute-%index%'

% openstack overcloud deploy -r /home/stack/hci_roles.yaml -p /home/stack/templates/plan-samples/plan-environment-derived-params.yaml --templates /home/stack/templates --libvirt-type qemu --control-flavor oooq_control --compute-flavor oooq_compute --ceph-storage-flavor oooq_ceph --timeout 60 -e /home/stack/cloud-names.yaml -e /home/stack/templates/environments/docker.yaml -e /home/stack/templates/environments/low-memory-usage.yaml -e /home/stack/templates/environments/disable-telemetry.yaml -e /home/stack/templates/environments/ceph-ansible/ceph-ansible.yaml -e /home/stack/inject-trust-anchor.yaml -e /home/stack/network-environment.yaml -e /home/stack/containers-de
fault-parameters.yaml -e /home/stack/hci.yaml --ntp-server pool.ntp.org
Waiting for messages on queue 'tripleo' with no timeout.
Removing the current plan files
Uploading new plan files
Plan updated.
Processing templates in the directory /tmp/tripleoclient-nkuKvH/tripleo-heat-templates
Invoking workflow (tripleo.derive_params.v1.derive_parameters) specified in plan-environment file
Workflow execution is failed: Role 'OsdCompute': Unable to determine profile for flavor (flavor name: baremetal)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-common (master)

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

Changed in tripleo:
status: Triaged → In Progress
Changed in tripleo:
milestone: rocky-1 → rocky-2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-common (stable/queens)

Fix proposed to branch: stable/queens
Review: https://review.openstack.org/566110

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-common (stable/queens)

Reviewed: https://review.openstack.org/566110
Committed: https://git.openstack.org/cgit/openstack/tripleo-common/commit/?id=ee9ace2087e979326a890eccad8f9010fa1e6440
Submitter: Zuul
Branch: stable/queens

commit ee9ace2087e979326a890eccad8f9010fa1e6440
Author: Alan Bishop <email address hidden>
Date: Mon Apr 2 16:57:58 2018 -0400

    Use scheduler hints in derived_parameters workflow

    Update the tripleo.derive_params.v1.derived_parameters workflow to use
    scheduler hints associated with a given role. The scheduler hints are
    used to identify overcloud nodes associated with the role, and take
    precedence over nodes identified by their profile/flavor. If a role does
    not specify any scheduler hints then the workflow falls back to matching
    nodes by profile/flavor.

    Add a tripleo.baremetal.v1.nodes_with_node_id workflow that searches
    for ironic nodes matching a node placement regex. This workflow is
    analogous to the existing nodes_with_profile workflow that searches
    for nodes that match a given profile.

    Add a tripleo.baremetal.get_node_id Mistral action that returns the node
    placement ID (e.g. "controller-0") for a given node, or None if a node
    ID is not defined. This is analogous to the existing get_profile action
    that returns the profile assigned to the node.

    Fix the 'message' published when a derived parameter sub-workflow fails
    so it just returns the sub-workflow 'message' and not the entire sub-
    workflow result. The 'message' portion is the only part that is meaningful
    to the user.

    Closes-Bug: #1760659
    Change-Id: I7eff355620aecaca49e77112ba491a5f3ce2eed6
    (cherry picked from commit e25e8564a42d1074034a76da5412bea4fb77b414)

tags: added: in-stable-queens
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-common (stable/pike)

Fix proposed to branch: stable/pike
Review: https://review.openstack.org/566334

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-common (stable/pike)

Reviewed: https://review.openstack.org/566334
Committed: https://git.openstack.org/cgit/openstack/tripleo-common/commit/?id=23ead4df9cdc60b1ca7ab6681467f5e0b23657c2
Submitter: Zuul
Branch: stable/pike

commit 23ead4df9cdc60b1ca7ab6681467f5e0b23657c2
Author: Alan Bishop <email address hidden>
Date: Mon Apr 2 16:57:58 2018 -0400

    Use scheduler hints in derived_parameters workflow

    Update the tripleo.derive_params.v1.derived_parameters workflow to use
    scheduler hints associated with a given role. The scheduler hints are
    used to identify overcloud nodes associated with the role, and take
    precedence over nodes identified by their profile/flavor. If a role does
    not specify any scheduler hints then the workflow falls back to matching
    nodes by profile/flavor.

    Add a tripleo.baremetal.v1.nodes_with_node_id workflow that searches
    for ironic nodes matching a node placement regex. This workflow is
    analogous to the existing nodes_with_profile workflow that searches
    for nodes that match a given profile.

    Add a tripleo.baremetal.get_node_id Mistral action that returns the node
    placement ID (e.g. "controller-0") for a given node, or None if a node
    ID is not defined. This is analogous to the existing get_profile action
    that returns the profile assigned to the node.

    Fix the 'message' published when a derived parameter sub-workflow fails
    so it just returns the sub-workflow 'message' and not the entire sub-
    workflow result. The 'message' portion is the only part that is meaningful
    to the user.

    Closes-Bug: #1760659
    Change-Id: I7eff355620aecaca49e77112ba491a5f3ce2eed6
    (cherry picked from commit e25e8564a42d1074034a76da5412bea4fb77b414)
    (cherry picked from commit ee9ace2087e979326a890eccad8f9010fa1e6440)
    Conflicts:
     workbooks/derive_params.yaml

tags: added: in-stable-pike
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-common 7.6.13

This issue was fixed in the openstack/tripleo-common 7.6.13 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-common 8.6.2

This issue was fixed in the openstack/tripleo-common 8.6.2 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-common 9.1.0

This issue was fixed in the openstack/tripleo-common 9.1.0 release.

Changed in tripleo:
milestone: rocky-2 → rocky-3
Changed in tripleo:
milestone: rocky-3 → rocky-rc1
Changed in tripleo:
milestone: rocky-rc1 → stein-1
Revision history for this message
Alan Bishop (alan-bishop) wrote :

The patch on master merged, and the fix was released per comment #8.

Changed in tripleo:
status: In Progress → Fix Released
Changed in tripleo:
milestone: stein-1 → rocky-rc1
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.