Bug 1656251 - When using "IsolCpusList", setting TunedProfileName to anything other than cpu-partitioning fails deployment
Summary: When using "IsolCpusList", setting TunedProfileName to anything other than cp...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tripleo-heat-templates
Version: 13.0 (Queens)
Hardware: All
OS: Unspecified
high
high
Target Milestone: async
: 13.0 (Queens)
Assignee: Rabi Mishra
QA Contact: Gurenko Alex
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-12-05 03:16 UTC by Nick Satsia
Modified: 2019-02-12 22:05 UTC (History)
9 users (show)

Fixed In Version: openstack-tripleo-heat-templates-8.0.7-17.el7ost
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-02-12 22:05:18 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
OpenStack gerrit 622840 'None' MERGED Update tuned profile variable configuration file if it exists 2020-02-07 22:28:34 UTC
Red Hat Product Errata RHBA-2019:0068 None None None 2019-01-16 17:55:38 UTC

Description Nick Satsia 2018-12-05 03:16:49 UTC
Description of problem:
deploying an environment with a mix of Intel64 and PowerPC64 computes.
Using role ComputePPC64LE which sets TunedProfileName "virtual-host" and failing as the file does not exist:

---------------------------------------
     Stack overcloud CREATE_FAILED

    overcloud.ComputePPC64LE.0.PreNetworkConfig.HostParametersDeployment:
      resource_type: OS::Heat::SoftwareDeployment
      physical_resource_id: e4bd51f7-6ac7-4990-8c2a-6e168335d1da
      status: CREATE_FAILED
      status_reason: |
        Error: resources.HostParametersDeployment: Deployment to server failed: deploy_status_code : Deployment exited with non-zero status code: 2
      deploy_stdout: |
        ...
        TASK [Generate grub config file] ***********************************************
        changed: [localhost]

        TASK [Tune-d Configuration] ****************************************************
        fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "Destination /etc/tuned/virtual-host-variables.conf does not exist !", "rc": 257}
            to retry, use: --limit @/var/lib/heat-config/heat-config-ansible/c915d33a-c3c2-44e9-862c-fb5c78e34023_playbook.retry

        PLAY RECAP *********************************************************************
        localhost                  : ok=4    changed=3    unreachable=0    failed=1

        (truncated, view all with --long)
      deploy_stderr: |

    Heat Stack create failed.
---------------------------------------



Contents of /usr/share/openstack-tripleo-heat-templates/roles/ComputePPC64LE.yaml

-------------------------
    ###############################################################################
    # Role: ComputePPC64LE                                                        #
    ###############################################################################
    - name: ComputePPC64LE
      description: |
        Basic Compute Node role for ppc64le servers
      CountDefault: 0
      networks:
        - InternalApi
        - Tenant
        - Storage
      HostnameFormatDefault: '%stackname%-novacomputeppc64le-%index%'
      ImageDefault: ppc64le-overcloud-full
      RoleParametersDefault:
        TunedProfileName: "virtual-host"
    .
    .
-------------------------

Version-Release number of selected component (if applicable):
RHOSP13

How reproducible:
100%

Steps to Reproduce:
1. Deploy a PowerPC64 compute with isolcpu partitioning.
2.
3.

Actual results:


Expected results:


Additional info:
With customer we added the following block to /usr/share/openstack-tripleo-heat-templates/extraconfig/pre_network/ansible_host_config.yaml and redeployed successfully 

------------------------------
    diff --git a/extraconfig/pre_network/ansible_host_config.yaml b/extraconfig/pre_network/ansible_host_config.yaml
    index 9a0b54a..64b3079 100644
    --- a/extraconfig/pre_network/ansible_host_config.yaml
    +++ b/extraconfig/pre_network/ansible_host_config.yaml
    @@ -24,6 +24,14 @@

         # Tune-d Configuration
         - block:
    +        - name: Ensure Tune-d Configuration exists
    +          file:
    +            path: /etc/tuned/{{ _TUNED_PROFILE_NAME_ }}-variables.conf
    +            state: touch
    +            owner: root
    +            group: root
    +            mode: 0644
    +
             - name: Tune-d Configuration
               lineinfile:
                 dest: /etc/tuned/{{ _TUNED_PROFILE_NAME_ }}-variables.conf

------------------------------

Comment 1 Sadique Puthen 2018-12-06 05:57:16 UTC
Rabi,

Can you please help with a hotfix?

Comment 14 Saravanan KR 2018-12-13 13:01:01 UTC
A look at the templates would be more helpful. But here is what i infer, ComputePPC64LE role uses virtual-guest tuned profile, but it also tries to apply _TUNED_CORES_ (IsolCpusList) and fails. For virtual-guest profile, IsolCpusList parameter is not required. If this parameter is moved a role-specific as like KernelArgs (only for the role which has cpu-parititioning profile), the issue should have been fixed. To confirm the issue, a look at the templates would be helpful.

Comment 26 Gurenko Alex 2019-01-07 15:59:23 UTC
Verified on puddle 2019-01-03.1

openstack-tripleo-heat-templates-8.0.7-21.el7ost.noarch

Comment 28 errata-xmlrpc 2019-01-16 17:55:29 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, 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/RHBA-2019:0068


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