Uploaded image for project: 'OpenShift Edge Enablement'
  1. OpenShift Edge Enablement
  2. OCPEDGE-57

Extend workload partitioning to support cpu limits

XMLWordPrintable

    • Extend workload partitioning to support cpu limits
    • Done
    • Product / Portfolio Work
    • OCPSTRAT-1145Extend workload partitioning to support cpu limits
    • 0% To Do, 0% In Progress, 100% Done
    • False
    • None
    • False
    • Not Selected
    • Hide

      We have merged in the upstream change to CRI-O for this feature and backported it to 1.29, the latest nightly for 4.16 includes the change. We now just have one more PR to k8s to utilize the addition.

      Show
      We have merged in the upstream change to CRI-O for this feature and backported it to 1.29, the latest nightly for 4.16 includes the change. We now just have one more PR to k8s to utilize the addition.
    • M

      OCP/Telco Definition of Done
      Epic Template descriptions and documentation.

      <--- Cut-n-Paste the entire contents of this description into your new Epic --->

      Epic Goal

      Workload partitioning currently does not support mutating containers that have cpu limits. The workload partitioning admission plugin will skip those over those containers. 

      The original premise was that all ocp pods did not set limits, however it has been found that at least one klusteret containers does set limits. This will be worked around in 4.8 but in 4.9 a proper solution is required to deal with these exceptions. In addition, the desire in the future is to support different workload types which would require limit support. 

      Summary of changes: 

      1) Add another annotation to the crio drop in to represent the limit, "cpuquota"

      [crio.runtime.workloads.management]
      activation_annotation = "target.workload.openshift.io/management"
      annotation_prefix = "resources.workload.openshift.io"
      resources = { "cpushares" = 0,  "cpuquota"=0, "cpuset" = "0-1,52-53" }

      2) Modify the admission plugin to take cpu limits and add a cpuquota annotation. The cpu limits would be stripped. A new annotation or extend the existing one i.e.

      annotations:

          resources.workload.openshift.io/foo: {"cpushares": 20, "cpuquota": 50}

      3) Modify crio to set cfs.quota for the contatiner to the value of cpuquota

      Assumption: 

      4.8 -> 4.9 SNO upgrades are not supported therefore the upgrades scenario will not have to be dealt with.

      Why is this important?

      Scenarios

      1. ...

      Acceptance Criteria

      • CI - MUST be running successfully with tests automated
      • All SNO CI jobs must be at 95% pass rate or better.

      Dependencies (internal and external)

      1. ...

      Previous Work (Optional):

      1.  

      Open questions:

      1.  

      Done Checklist

      • CI - CI is running, tests are automated and merged.

       

       

       

       

              ehila@redhat.com Egli Hila
              browsell@redhat.com Brent Rowsell
              None
              Sunil Choudhary Sunil Choudhary
              Donagh Brennan Donagh Brennan
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated:
                Resolved: