Bug 2041429 - Support NFV Deployments with "overcloud node provision" command
Summary: Support NFV Deployments with "overcloud node provision" command
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: tripleo-ansible
Version: 17.0 (Wallaby)
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: ---
Assignee: Vadim Khitrin
QA Contact: Joe H. Rahme
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-01-17 10:45 UTC by Saravanan KR
Modified: 2023-01-25 16:02 UTC (History)
9 users (show)

Fixed In Version: tripleo-ansible-3.3.1-0.20220512232330.47d0ab5..el9ost, tripleo-ansible-3.3.1-0.20220513002809.47d0ab5.el8ost
Doc Type: Enhancement
Doc Text:
You can now pre-provision bare metal nodes in your application by using the `overcloud node [un]provision` command.
Clone Of:
Environment:
Last Closed: 2022-09-21 12:18:11 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
OpenStack gerrit 836174 0 None MERGED Add ansible_playbook to support NFV deployment during "overcloud node provision" command 2022-05-05 07:16:39 UTC
OpenStack gerrit 840680 0 None MERGED Add ansible_playbook to support NFV deployment during "overcloud node provision" command 2022-05-18 13:10:10 UTC
Red Hat Issue Tracker NFV-2394 0 None None None 2022-01-18 04:58:31 UTC
Red Hat Issue Tracker OSP-12152 0 None None None 2022-01-17 10:48:43 UTC
Red Hat Product Errata RHEA-2022:6543 0 None None None 2022-09-21 12:18:34 UTC

Description Saravanan KR 2022-01-17 10:45:40 UTC
"openstack overcloud node provision" will provision the overcloud nodes as per the provided baremetal_deployment.yaml file and then run network-config (os-net-config).

For NFV, before running os-net-config, there are a few other steps to be run to successfully complete os-net-config. First is kernel args, which is addressed by BZ #2035325. Second is to configure OvS-DPDK, which requires to be configured before os-net-config but after kernel args.


Refer the deploy_steps_tasks from https://github.com/openstack/tripleo-heat-templates/blob/master/deployment/openvswitch/openvswitch-dpdk-baremetal-ansible.yaml file (pasted below for reference). There need to be an option to configure OvS-DPDK before network config on "overcloud node provision" command.

      deploy_steps_tasks:
        - - name: Ddp packages and select the package
            vars:
              ddp_package: {get_attr: [RoleParametersDpdk, value, ddp_package]}
            block:
              - name: Gets latest version of required Ddp package
                shell: "ls --sort=version -r /lib/firmware/intel/ice/{{ ddp_package }}/ice[_-]?*.pkg"
                register: ddp_package_files
              - name: ddp package selection
                vars:
                  ddp_package_file: "{{ ddp_package_files.stdout.split('\n')[0] }}"
                shell: |
                  rm -f /lib/firmware/intel/ice/ddp/ice.pkg
                  ln -s {{ ddp_package_file }} /lib/firmware/intel/ice/ddp/ice.pkg
                  dracut -f
                when: ddp_package_files is defined and ddp_package_file|string != ""
            when: step|int == 0 and ddp_package|string != "ddp"
        - get_attr: [BootParams, role_data, deploy_steps_tasks]
        - - name: Run ovs-dpdk role
            when: step|int == 0
            include_role:
              name: tripleo_ovs_dpdk
            vars:
              tripleo_ovs_dpdk_pmd_core_list: {get_attr: [RoleParametersDpdk, value, pmd]}
              tripleo_ovs_dpdk_lcore_list: {get_attr: [RoleParametersDpdk, value, lcore]}
              tripleo_ovs_dpdk_memory_channels: {get_attr: [RoleParametersDpdk, value, memory_channels]}
              tripleo_ovs_dpdk_socket_memory: {get_attr: [RoleParametersDpdk, value, socket_mem]}
              tripleo_ovs_dpdk_revalidator_cores: {get_attr: [RoleParametersDpdk, value, revalidator]}
              tripleo_ovs_dpdk_handler_cores: {get_attr: [RoleParametersDpdk, value, handler]}
              tripleo_ovs_dpdk_pmd_auto_lb: {get_attr: [RoleParametersDpdk, value, pmd_auto_lb]}
              tripleo_ovs_dpdk_pmd_load_threshold: {get_attr: [RoleParametersDpdk, value, pmd_load_threshold]}
              tripleo_ovs_dpdk_pmd_improvement_threshold: {get_attr: [RoleParametersDpdk, value, pmd_improvement_threshold]}
              tripleo_ovs_dpdk_pmd_rebal_interval: {get_attr: [RoleParametersDpdk, value, pmd_rebal_interval]}
              tripleo_ovs_dpdk_emc_insertion_probablity:
                if:
                - {get_param: OvsDisableEMC}
                - 0
              tripleo_ovs_dpdk_enable_tso: {get_attr: [RoleParametersDpdk, value, enable_tso]}
              tripleo_ovs_dpdk_vhost_postcopy_support:
                if:
                  - is_realtime
                  - false
                  - {get_attr: [RoleParametersDpdk, value, nova_postcopy]}

Comment 2 Steve Baker 2022-01-17 21:11:44 UTC
The kernelargs playbook[1] shows exactly how to develop for and use the provision ansible_playbooks mechanism. I think it is more appropriate for the NVF squad to write this DPDK specific playbook. We can help though, feel free to ask questions and add us to reviews.

[1] https://review.opendev.org/c/openstack/tripleo-ansible/+/823734
    https://review.opendev.org/c/openstack/tripleo-docs/+/823735

Comment 3 Haresh Khandelwal 2022-04-13 08:01:34 UTC
*** Bug 2074001 has been marked as a duplicate of this bug. ***

Comment 15 errata-xmlrpc 2022-09-21 12:18:11 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Release of components for Red Hat OpenStack Platform 17.0 (Wallaby)), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2022:6543


Note You need to log in before you can comment on or make changes to this bug.