Uh oh!
There was an error while loading. Please reload this page.
Enable dynamic scaling of Kubernetes cluster offerings for KVM - #13226
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@## main #13226 +/- ##
============================================
+ Coverage 17.67% 18.10% +0.42% - Complexity 15792 16749 +957
============================================
Files 5922 6037 +115 Lines 533165 542924 +9759 Branches 65208 66482 +1274 ============================================
+ Hits 94242 98292 +4050 - Misses 428276 433584 +5308 - Partials 10647 11048 +401
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
winterhazel
commented
May 22, 2026
@blueorangutan package |
blueorangutan
commented
May 22, 2026
@winterhazel a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
blueorangutan
commented
May 22, 2026
Packaging result [SF]: ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 17998 |
bernardodemarco
commented
May 23, 2026
@blueorangutan package |
blueorangutan
commented
May 23, 2026
@bernardodemarco a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
blueorangutan
commented
May 23, 2026
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 18002 |
winterhazel
commented
Jun 1, 2026
@DaanHoogland@weizhouapache can we run the CI here? |
winterhazel
left a comment
There was a problem hiding this comment.
Code looks good, did not test.
DaanHoogland
commented
Jun 14, 2026
@blueorangutan test |
blueorangutan
commented
Jun 14, 2026
@DaanHoogland a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
blueorangutan
commented
Jun 15, 2026
[SF] Trillian test result (tid-16307)
|
winterhazel
commented
Jun 15, 2026
The test failures seem unrelated. Can we attempt another run? @DaanHoogland |
DaanHoogland
commented
Jun 15, 2026
@blueorangutan package |
blueorangutan
commented
Jun 15, 2026
@DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
blueorangutan
commented
Jun 15, 2026
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 18265 |
DaanHoogland
commented
Jun 17, 2026
@blueorangutan test |
blueorangutan
commented
Jun 17, 2026
@DaanHoogland a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
blueorangutan
commented
Jun 17, 2026
[SF] Trillian Build Failed (tid-16348) |
blueorangutan
commented
Jun 19, 2026
[SF] Trillian test result (tid-16365)
|
weizhouapache
commented
Jun 30, 2026
@bernardodemarco |
bernardodemarco
commented
Jun 30, 2026
Hello, @weizhouapache
No, there aren't any restrictions beyond the restrictions of the new live scaling workflow for KVM, see #12975 and #12908.
As explained with more details in #12908, the live scaling workflow for ACS requires the domains to be prepared for live scaling. The third section of the specification has more details on how to enable live scaling for already existing VMs prior to the upgrade to the new ACS release. |
weizhouapache
commented
Jun 30, 2026
thanks @bernardodemarco so, as I understand, the answer is no, right ? |
bernardodemarco
commented
Jun 30, 2026
Yes, generally speaking we do not have restrictions. I'll ask someone to test this one so that we can merge it by friday. |
GeanJair
left a comment
There was a problem hiding this comment.
LGTM. Performed the following tests and it worked as intended.
Created a k8s cluster with a compute offering of 2 vCPUs and 4096 MiB of memory (Without CPU cap)
VM XML Without CPU cap
<maxMemory slots='16' unit='KiB'>8891392</maxMemory> <memory unit='KiB'>4194304</memory> <currentMemory unit='KiB'>4194304</currentMemory> <vcpu placement='static' current='2'>6</vcpu> <cputune> <shares>2565</shares> </cputune>Scaled the k8s cluster and upgraded its offering to 2 vCPUs and 4096 MiB of memory (With CPU cap)
VM XML With CPU cap
<maxMemory slots='16' unit='KiB'>8891392</maxMemory> <memory unit='KiB'>4194304</memory> <currentMemory unit='KiB'>4194304</currentMemory> <vcpu placement='static' current='2'>6</vcpu> <cputune> <shares>2565</shares> <period>10000</period> <quota>7700</quota> </cputune>After that, scaled the worker nodes compute offering to 3 vCPUs and 4096 MiB of memory (With CPU cap)
worker plane VM XML
<maxMemory slots='16' unit='KiB'>8891392</maxMemory> <memory unit='KiB'>4194304</memory> <currentMemory unit='KiB'>4194304</currentMemory> <vcpu placement='static' current='3'>6</vcpu> <vcpus> <vcpu id='0' enabled='yes' hotpluggable='no' order='1'/> <vcpu id='1' enabled='yes' hotpluggable='no' order='2'/> <vcpu id='2' enabled='yes' hotpluggable='yes' order='3'/> <vcpu id='3' enabled='no' hotpluggable='yes'/> <vcpu id='4' enabled='no' hotpluggable='yes'/> <vcpu id='5' enabled='no' hotpluggable='yes'/> </vcpus>
@GeanJS, thanks for testing! |
Uh oh!
There was an error while loading. Please reload this page.
weizhouapache
commented
Jul 1, 2026
Thanks. Can you disable dynamic scaling and create a CKS cluster, and then
|
GeanJair
commented
Jul 3, 2026
Hello, @weizhouapache When scaling k8s clusters with the dynamic scaling setting disabled, the following error message is returned, regardless of the hypervisor in use: When a k8s cluster is created and the dynamic scaling is disabled, the metadata of the k8s cluster's VMs will indicate they are not dynamically scalable. As a consequence of that, regardless of the hypervisor, after enabling dynamic scaling, it will be required to mark the instances as dynamically scalable as well. Specially for KVM, there is another required step, that consists in stopping and starting the VMs so that their domains are recreated with the required structure for live scaling (see #12908 for more details). The image below demonstrates the error message returned when a scaling operation is attempted for the k8s cluster, but the domains are not prepared for it. |



Description
PR #12975 introduced support for live scaling VMs with fixed service offerings on KVM. However, it did not remove a constraint in the Kubernetes cluster scaling workflow that prevented changing cluster compute offerings while the clusters were running.
This PR removes this leftover constraint, enabling dynamic scaling of Kubernetes cluster offerings.
Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Screenshots (if appropriate):
How Has This Been Tested?
Created a k8s cluster with a compute offering of 2 vCPUs and 4096 MiB of memory (without CPU cap):
k8s cluster details
Scaled the k8s cluster and upgraded its offering to 2 vCPUs and 4096 MiB of memory (with CPU cap):
k8s cluster control plane VM XML
Scaled the worker nodes compute offering to 3 vCPUs and 4096 MiB of memory (with CPU cap):
k8s cluster details
k8s cluster worker plane VM XML