Uploaded image for project: 'OpenShift Pipelines'
  1. OpenShift Pipelines
  2. SRVKP-1637

Better support for LimitRange in Pipelines

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Done
    • Icon: Critical Critical
    • Pipelines 1.6
    • None
    • None
    • None
    • 8
    • False
    • False
    • Undefined
    • Pipelines Sprint 205, Pipelines Sprint 206, Pipelines Sprint 207

      As of today, support for LimitRange in pipeline is relative bare and is causing problems, see the following cases

      We need to fix that by supporting fully LimitRange objects.

      The way Limits and Requests works in Kubernetes is because it is assumed that all containers run in parallel (which they do — except in tekton with some hack), and init container run before, each one after the others.

      That assumption — running in parallel — is not really true in Tekton. They do all start together (because there is no way around this) but the /entrypoint hack/ is making sure they actually run in sequence and thus there is always only one container that is actually consuming some resource at the same time.

      This means, we need to handle limits, request and LimitRanges in a /non-standard/ way. Let's try to define that. Tekton needs to take into account all the aspect of the LimitRange : the min/max as well as the default. If there is no default, but there is min/max, Tekton need then to set a default value that is between the min/max. If we set the value too low, the Pod won't be able to be created, similar if we set the value too high. But those values are set on containers, so we have to do our own computation to know what request to put on each containers. To add to the complexity here, we also need to support MaxLimitRequestRatio, which is just adding complexity on top of something complex.

              vdemeest Vincent Demeester
              vdemeest Vincent Demeester
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: