Bug 2028881

Summary: Override not working for the PerformanceProfile template
Product: OpenShift Container Platform Reporter: Mario Vázquez <mavazque>
Component: Telco EdgeAssignee: Ian Miller <imiller>
Telco Edge sub component: ZTP QA Contact: yliu1
Status: CLOSED ERRATA Docs Contact:
Severity: high    
Priority: medium CC: alosadag, yliu1
Version: 4.8   
Target Milestone: ---   
Target Release: 4.10.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Cause: User supplied fields in PolicyGenTemplate overlay are not copied to generated manifests if the field does not exist in the base source CR. Consequence: Some user content missing. Fix: Update policyGen tool to support these fields. Result: Expected content is found in generated CR.
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-03-10 16:31:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2030845    

Description Mario Vázquez 2021-12-03 16:35:21 UTC
Description of problem:

In the PolicyGenTemplate we're defining a PerformanceProfile with the parameter "globallyDisableIrqLoadBalancing" set to false. When the template gets rendered we can see that it has no "globallyDisableIrqLoadBalancing" set and as such when it gets created, it gets configured with the default value which is "true". On top of that we can see that the apiVersion used is "apiVersion: performance.openshift.io/v1" and it should be "apiVersion: performance.openshift.io/v2".


The template being used:


    - fileName: PerformanceProfile.yaml
      policyName: "perfprofile-policy"
      metadata:
        name: performance-sno
        annotations:
          kubeletconfig.experimental: |
            {"topologyManagerScope": "pod",
             "systemReserved": {"memory": "9Gi"}
            }
      spec:
        additionalKernelArgs:
        - "idle=poll"
        - "rcupdate.rcu_normal_after_boot=0"
        - "nohz_full=2-15,18-19,22-23,26-31"
        cpu:
          isolated: "2-15,18-19,22-23,26-31"
          reserved: "0-1,16-17,20-21,24-25"
        globallyDisableIrqLoadBalancing: false
        hugepages:
          defaultHugepagesSize: 1G
          pages:
            - size: 1G
              count: 4
        numa:
          topologyPolicy: single-numa-node
        realTimeKernel:
          enabled: true
        net:
          userLevelNetworking: true




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

How reproducible:
Always

Steps to Reproduce:
1. Create a performanceprofile template with the parameter set to false
2. Check that it gets loaded in the cluster with the default value of true
3.

Actual results:

PerformanceProfile object gets rendered without the globallyDisableIrqLoadBalancing parameter.


Expected results:


PerformanceProfile object gets rendered with the globallyDisableIrqLoadBalancing parameter.

Additional info:

Comment 2 yliu1 2022-01-07 16:22:00 UTC
Verified using cnf-features-deploy master branch.
Before and after override on my cluster:
[kni@provisionhost-0-0 ~]$ oc get performanceprofiles.performance.openshift.io -o yaml | grep Irq
    globallyDisableIrqLoadBalancing: true

[kni@provisionhost-0-0 ~]$ oc get performanceprofiles.performance.openshift.io -o yaml | grep Irq
    globallyDisableIrqLoadBalancing: false

Comment 5 errata-xmlrpc 2022-03-10 16:31:36 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 (Moderate: OpenShift Container Platform 4.10.3 security update), 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/RHSA-2022:0056