-
Epic
-
Resolution: Unresolved
-
Major
-
None
-
aaq-cpuallocationratio
-
Incidents & Support
-
77
-
False
-
-
False
-
None
-
To Do
-
100% To Do, 0% In Progress, 0% Done
Goal
Currently, the VirtualResources config tracks the VM vCPU count (vmi.spec.domain.cpu.cores * vmi.spec.domain.cpu.sockets * vmi.spec.domain.cpu.threads ).
However, the virt-launcher CPU allocation will depend on vmiCPUAllocationRatio.
One option is to change the config to "VmiPodUsage" which will track virt-launcher pod usage, (ie the resources.requests and resources.limits of virt-launcher pods).
However, this also tracks the memory overhead added to the virt-launcher.
—
In short, the requirement is to track, template.spec.domain.memory.guest and template.spec.domain.cpu, considering the vmiCPUAllocationRatio from the VM spec.
we want users to configure VMs resources without being aware of k8s resources requests and limits, for this use case we want to use vmiCPUAllocationRatio which enforce both limits and request according to given spec.template.spec.domain.cpu.sockets with configured ratio of 1:4.
Along with this, we need to enable AAQ in order to have dynamic quota allocation for migrations - to prevent migrations failure due to missing resourcequota (since another virt-launcher pod created during migration).
AAQ configured with VirtualResources enforce both the CPU limits and requests of the pod to be as the configured spec.template.spec.domain.cpu.sockets and and spec.template.spec.domain.memory.guest for memory. This not take in count the vmiCPUAllocationRatio meaning we cannot enforce overallocation using limits and requests.
TL;DR with VmiPodUsage we enforced to configure:
spec.template.spec.domain.memory.guest and the same value in spec.template.spec.resources.requests.memory
spec.template.spec.domain.cpu.sockets = CPU
spec.template.spec.resources.requests.cpu = CPU/4
spec.template.spec.resources.limits.cpu = CPU
Instead of configuring only:
spec.template.spec.domain.memory.guest
spec.template.spec.domain.cpu.sockets
User Stories
- High-Level goal-based user story, with context.
"As a <VM owner/cluster administrator>, I want <to Achieve Some Goal>, so that <Some Reason/Context>." - another user story
Non-Requirements
- List of things not included in this epic, to alleviate any doubt raised during the grooming process.
Notes
- Any additional details or decisions made/needed
1.
|
upstream roadmap issue |
|
New | |
Unassigned |
2.
|
upstream design |
|
New | |
Unassigned |
3.
|
upstream documentation |
|
New | |
Unassigned |
4.
|
upgrade consideration |
|
New | |
Unassigned |
5.
|
test plans in polarion |
|
New | |
Unassigned |
6.
|
automated tests |
|
New | |
Unassigned |
7.
|
downstream documentation merged |
|
New | |
Unassigned |
8.
|
CNV QE DevOps Requirement/Enablement |
|
New | |
Unassigned |