derive paramters hci deploy fails with cephadm: No devices defined in CephAnsibleDisksConfig

Bug #1920954 reported by John Fulton
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
Medium
John Fulton

Bug Description

cephadm deployments don't define CephAnsibleDisksConfig by design. However the derive parameter workflow expects this. Thus, the cephadm RBD integration needs include an update to derive parameters.

    openstack overcloud deploy \
          ...
          -r hci_roles.yaml \
          -p /usr/share/openstack-tripleo-heat-templates/plan-samples/plan-environment-derived-params.yaml \
          -n ../network-data.yaml \
          ...

resulted in...

2021-03-23 14:54:59.708754 | 24420110-dcc7-b74e-91cc-0000000000e8 | TIMING | tripleo_derived_parameters : extract average guest cpu and memory | localhost | 0:00:11.079387 | 0.05s
2021-03-23 14:54:59.711794 | 24420110-dcc7-b74e-91cc-0000000000e9 | TASK | Default derive parameters for HCI
2021-03-23 14:54:59.735922 | 24420110-dcc7-b74e-91cc-0000000000e9 | OK | Default derive parameters for HCI | localhost | result={"ansible_facts": {"derived_parameters": {}}, "changed
": false}
2021-03-23 14:54:59.736741 | 24420110-dcc7-b74e-91cc-0000000000e9 | TIMING | tripleo_derived_parameters : Default derive parameters for HCI | localhost | 0:00:11.107375 | 0.02s
2021-03-23 14:54:59.739320 | 24420110-dcc7-b74e-91cc-0000000000ea | TASK | Derive parameters for HCI (collocated ceph-osd/nova-compute nodes)
2021-03-23 14:55:00.106436 | 24420110-dcc7-b74e-91cc-0000000000ea | FATAL | Derive parameters for HCI (collocated ceph-osd/nova-compute nodes) | localhost | error={"changed": false, "de
rived_parameters": {}, "message": "Unable to determine the amount of physical memory (no 'memory_mb' found in introspection_data).\nNo OSDs were found in deployment definition under CephAnsi
bleDisksConfig\n\nWarning: OSD type distribution: \nNo devices defined in CephAnsibleDisksConfig\n"} 2021-03-23 14:55:00.116403 | 24420110-dcc7-b74e-91cc-0000000000ea | TIMING | tripleo_derived_parameters : Derive parameters for HCI (collocated ceph-osd/nova-compute nodes) | localhost |
 0:00:11.487024 | 0.38s

Revision history for this message
John Fulton (jfulton-org) wrote :
Changed in tripleo:
status: Triaged → In Progress
Changed in tripleo:
milestone: wallaby-rc1 → xena-1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to tripleo-ansible (master)

Reviewed: https://review.opendev.org/c/openstack/tripleo-ansible/+/782610
Committed: https://opendev.org/openstack/tripleo-ansible/commit/b015a79dc4628b9d2b5907739c22ff3b4e6379a3
Submitter: "Zuul (22348)"
Branch: master

commit b015a79dc4628b9d2b5907739c22ff3b4e6379a3
Author: John Fulton <email address hidden>
Date: Tue Mar 23 21:21:55 2021 +0000

    Add CephHciOsdCount/CephHciOsdType to tripleo_derive_hci_parameters

    The tripleo_derive_hci_parameters module uses the devices and
    lvm_volumes list in CephAnsibleDisksConfig from Heat to count the
    expected number of OSDs. However, with the move to cephadm, the
    OSD service spec language is more flexible and the user can pass
    a description like "all available block devices". As a result,
    the module can no longer count the expected number of OSDs. As
    an alternative expose a paramter so the user may directly pass
    CephOsdCount. Similarly expose a CephOsdType parameter (HDD, SSD)
    since there is no path to lookup the device in Ironic.

    Related-Bug: #1920954
    Change-Id: Ia6bbdf023e2a0961cd91d3e9f40a8a5a26253ba3

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-heat-templates (master)

Reviewed: https://review.opendev.org/c/openstack/tripleo-heat-templates/+/782611
Committed: https://opendev.org/openstack/tripleo-heat-templates/commit/f14bfb14c7cb8b0af2d1663160ff43e1e38bb882
Submitter: "Zuul (22348)"
Branch: master

commit f14bfb14c7cb8b0af2d1663160ff43e1e38bb882
Author: John Fulton <email address hidden>
Date: Tue Mar 23 21:24:42 2021 +0000

    Introduce CephHciOsdCount and CephHciOsdType

    CephHciOsdCount is the number of expected Ceph OSDs per HCI node.
    CephHciOsdType is the type of data_device (not db_device) used for
    each OSD and must be one of hdd, ssd, or nvme. These are used by
    the Ansible module tripleo_derive_hci_parameters. Since CephOsdSpec,
    as used by cephadm, might only specify a description of devices to
    be used as OSDs (e.g. all devices), and not a list of devices like
    CephAnsibleDisksConfig, setting the count directly is necessary in
    order to know how much CPU/RAM to reserve. Similarly, because a
    device path is not hard coded, we cannot look up that device in
    Ironic to determine its type.

    Closes-Bug: #1920954
    Depends-On: Ia6bbdf023e2a0961cd91d3e9f40a8a5a26253ba3
    Change-Id: Iccf97ca676ee6096e47474c571bd4f53381ce1c9

Changed in tripleo:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to tripleo-ansible (stable/wallaby)

Related fix proposed to branch: stable/wallaby
Review: https://review.opendev.org/c/openstack/tripleo-ansible/+/792166

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-heat-templates (stable/wallaby)

Fix proposed to branch: stable/wallaby
Review: https://review.opendev.org/c/openstack/tripleo-heat-templates/+/792165

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to tripleo-ansible (stable/wallaby)

Reviewed: https://review.opendev.org/c/openstack/tripleo-ansible/+/792166
Committed: https://opendev.org/openstack/tripleo-ansible/commit/d5cb7ce3938d60bcf81f6d6c3b0e2971b7c0434d
Submitter: "Zuul (22348)"
Branch: stable/wallaby

commit d5cb7ce3938d60bcf81f6d6c3b0e2971b7c0434d
Author: John Fulton <email address hidden>
Date: Tue Mar 23 21:21:55 2021 +0000

    Add CephHciOsdCount/CephHciOsdType to tripleo_derive_hci_parameters

    The tripleo_derive_hci_parameters module uses the devices and
    lvm_volumes list in CephAnsibleDisksConfig from Heat to count the
    expected number of OSDs. However, with the move to cephadm, the
    OSD service spec language is more flexible and the user can pass
    a description like "all available block devices". As a result,
    the module can no longer count the expected number of OSDs. As
    an alternative expose a paramter so the user may directly pass
    CephOsdCount. Similarly expose a CephOsdType parameter (HDD, SSD)
    since there is no path to lookup the device in Ironic.

    Related-Bug: #1920954
    Change-Id: Ia6bbdf023e2a0961cd91d3e9f40a8a5a26253ba3
    (cherry picked from commit b015a79dc4628b9d2b5907739c22ff3b4e6379a3)

tags: added: in-stable-wallaby
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-heat-templates (stable/wallaby)

Reviewed: https://review.opendev.org/c/openstack/tripleo-heat-templates/+/792165
Committed: https://opendev.org/openstack/tripleo-heat-templates/commit/e86165354e792749acdb6e04bd7cbc626ea14456
Submitter: "Zuul (22348)"
Branch: stable/wallaby

commit e86165354e792749acdb6e04bd7cbc626ea14456
Author: John Fulton <email address hidden>
Date: Tue Mar 23 21:24:42 2021 +0000

    Introduce CephHciOsdCount and CephHciOsdType

    CephHciOsdCount is the number of expected Ceph OSDs per HCI node.
    CephHciOsdType is the type of data_device (not db_device) used for
    each OSD and must be one of hdd, ssd, or nvme. These are used by
    the Ansible module tripleo_derive_hci_parameters. Since CephOsdSpec,
    as used by cephadm, might only specify a description of devices to
    be used as OSDs (e.g. all devices), and not a list of devices like
    CephAnsibleDisksConfig, setting the count directly is necessary in
    order to know how much CPU/RAM to reserve. Similarly, because a
    device path is not hard coded, we cannot look up that device in
    Ironic to determine its type.

    Closes-Bug: #1920954
    Depends-On: Ia6bbdf023e2a0961cd91d3e9f40a8a5a26253ba3
    Change-Id: Iccf97ca676ee6096e47474c571bd4f53381ce1c9
    (cherry picked from commit f14bfb14c7cb8b0af2d1663160ff43e1e38bb882)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-heat-templates 14.1.2

This issue was fixed in the openstack/tripleo-heat-templates 14.1.2 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-heat-templates 15.0.0

This issue was fixed in the openstack/tripleo-heat-templates 15.0.0 release.

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.