"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]}
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
*** Bug 2074001 has been marked as a duplicate of this bug. ***
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