Skip to content

Conversation

@loktev-d
Copy link
Contributor

@loktev-d loktev-d commented Oct 21, 2025

Description

Introduce v1alpha3 version of VirtualMachineClass with percentage string format (e.g., 5 → "5%") for coreFractions. Use Kubernetes conversion webhooks for version compatibility between v1alpha2 and v1alpha3

Key changes

  • v1alpha2: Maintains original coreFractions: []int format for backward compatibility
  • v1alpha3 (storage version): Introduces new coreFractions: []string format with "%" suffix
  • Conversion webhook: Provides automatic bidirectional conversion between versions (v1alpha2 is hub, v1alpha3 is spoke). Injected into VirtualMachineClass CRD on controller startup.
  • Admission webhook: Added conversion to hub version so that validation is compatible with both versions
  • E2E tests: use new v1alpha3 version

Why do we need it, and what problem does it solve?

What is the expected result?

Checklist

  • The code is covered by unit tests.
  • e2e tests passed.
  • Documentation updated according to the changes.
  • Changes were tested in the Kubernetes cluster manually.

Changelog entries

section: vmclass
type: feature
summary: |
  For the `VirtualMachineClass` resource, version `v1alpha2` is deprecated. Use version `v1alpha3` instead:
  - In version `v1alpha3`, the `.spec.sizingPolicies.coreFraction` field is now a string with a percentage (for example, "50%"), similar to the field in a virtual machine.

Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @loktev-d, your pull request is larger than the review limit of 150000 diff characters

@loktev-d loktev-d marked this pull request as draft October 21, 2025 07:45
loktev-d and others added 2 commits October 21, 2025 11:00
Signed-off-by: Daniil Loktev <70405899+loktev-d@users.noreply.github.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
z9r5
z9r5 previously approved these changes Oct 22, 2025
loktev-d and others added 7 commits October 22, 2025 16:44
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Co-authored-by: Artem Kladov <6360800+z9r5@users.noreply.github.com>
Signed-off-by: Daniil Loktev <70405899+loktev-d@users.noreply.github.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
This reverts commit ca8b840.

Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
@loktev-d loktev-d force-pushed the feat/vmclass/core-fractions-percentage branch from ffe3f98 to 5458ff6 Compare October 22, 2025 13:45
@loktev-d loktev-d added this to the v1.2.0 milestone Oct 22, 2025
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
loktev-d and others added 19 commits November 10, 2025 19:26
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
@loktev-d loktev-d merged commit 0045ceb into main Nov 19, 2025
27 of 28 checks passed
@loktev-d loktev-d deleted the feat/vmclass/core-fractions-percentage branch November 19, 2025 10:59
nevermarine pushed a commit that referenced this pull request Nov 19, 2025
Introduce v1alpha3 version of VirtualMachineClass with percentage string format (e.g., 5 → "5%") for coreFractions. Use Kubernetes conversion webhooks for version compatibility between v1alpha2 and v1alpha3

- v1alpha2: Maintains original coreFractions: []int format for backward compatibility
- v1alpha3 (storage version): Introduces new coreFractions: []string format with "%" suffix
- Conversion webhook: Provides automatic bidirectional conversion between versions (v1alpha2 is hub, v1alpha3 is spoke). Injected into VirtualMachineClass CRD on controller startup.
- Admission webhook: Added conversion to hub version so that validation is compatible with both versions
E2E tests: use new v1alpha3 version

Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Co-authored-by: Artem Kladov <6360800+z9r5@users.noreply.github.com>
Signed-off-by: Maksim Fedotov <maksim.fedotov@flant.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

validation/skip/doc_changes Skip doc changes validation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants