Bug 1473474 - [RFE] Add new feature in global build override config to support builder pods specific resource limit/request more than project default
[RFE] Add new feature in global build override config to support builder pods...
Product: OpenShift Container Platform
Classification: Red Hat
Component: RFE (Show other bugs)
Unspecified Unspecified
unspecified Severity high
: ---
: ---
Assigned To: Ben Parees
Xiaoli Tian
Depends On:
  Show dependency treegraph
Reported: 2017-07-20 20:22 EDT by Takayoshi Tanaka
Modified: 2018-02-11 10:58 EST (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2018-02-11 10:58:48 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Takayoshi Tanaka 2017-07-20 20:22:13 EDT
3. What is the nature and description of the request? 
To have global build override config to override the default limits/request at namespace level.

4. Why does the customer need this? (List the business requirements here)
To improve the performance on builder pods

5. How would the customer like to achieve this? (List the functional requirements here)
To override the namespace default limits/requests for builder pods 

6. For each functional requirement listed, specify how Red Hat and the customer can test to confirm the requirement is successfully implemented.
Currently no.

7. Is there already an existing RFE upstream or in Red Hat Bugzilla?

10. List any affected packages or components.
master config
Comment 4 Ben Parees 2018-02-08 10:24:23 EST
Does https://docs.openshift.org/latest/install_config/build_defaults_overrides.html#ansible-setting-global-build-defaults not accomplish what you need?  I believe setting up a global default for build resources will take effect before the namespace default is applied.
Comment 5 Takayoshi Tanaka 2018-02-10 23:56:57 EST

I think it doesn't achieve the customer's demand. The customer wants to do something like the following:

- All pods except build pods will run on the node with region=primary.
- All build pods will run on the node with region=build
- region=primary and region=build are exclusive.

I think it's still impossible. If you have an idea, could you tell us?
Comment 6 Ben Parees 2018-02-11 10:58:48 EST
That(controlling build pod placement) has nothing to do with the subject+summary of this bug, which is about specifying resource limits/requests.

In any case that is possible using taints+tolerations+nodeselectors.

Unfortunately build toleration support was alpha and got removed in 3.7, however we are restoring it as a first class feature in 3.9:

You will therefore be able to:

1) create nodes with region=build and region=app label, plus a taint on that region=build nodes to prevent pods from landing there normally.
2) set a project default nodeselector, e.g. ("region=build || region=app")
3) set a build nodeselector which is a subset of (2) ("region=build")
4) set a build toleration default which will allow build pods to land on the region=build nodes. 

The taint will prevent app pods from landing there since they will not have the toleration.

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