Service Container -- Define CPU/memory limits/requests per service
Description
Followup on #25317 (closed).
It would be very helpful to have the ability to define resource limits for individual containerised services. Current solution with limits per CI job waste a lot of resources when there are uneven requirements for multiple services for given CI job (one service requires 4GB of RAM, another only 256MB).
Proposal
(From related MR !2117 (closed))
While setting uniform service requests/limits for all services within a job works well with similar services having the same needs, precious resources can be wasted if the service topology is heterogenous: a lightweight redis service will not need the same resources requests as a mongodb service. Or another database service may be cpu throttled if the global service cpu limits are too restrictive, but a user cannot risk changing that global service cpu limit which may lead to node cpu contention if the cpu requests were not precisely tailored. (update: the same goes with services' ephemeral storage overwrites, which this MR now also handles)
Links to related issues and merge requests / references
This feature has been implemented in (!2117 (closed)) years ago.
I'm not advocating for particular implementation - I decided to reopen an issue as no related issue for tracking progress of this feature exists and the MR seems to be dead.