Skip to content

docs(platform-package): document KubeVirt migration settings - #697

Merged
Aleksei Sviridkin (lexfrei) merged 2 commits into
cozystack:mainfrom
yankawai:docs/kubevirt-migration-values
Sep 17, 2026
Merged

Aleksei Sviridkin (lexfrei) merged 2 commits into
cozystack:mainfrom
yankawai:docs/kubevirt-migration-values

Conversation

@yankawai

@yankawai europrinter (yankawai) commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

What this PR does

Document the optional kubevirt.migrations platform value, its empty default, and the path from the parent platform Package to the rendered KubeVirt CR. Include a 625M / two cluster-wide migrations / one outbound migration per node example and explain that bandwidth quantities are bytes per second.

Only the unreleased next reference changes. This is the documentation companion to cozystack/cozystack#4254, which exposes kubevirt.migrations; merge that implementation first. This adds the migration settings to the existing KubeVirt section alongside kubevirt.disabledFeatureGates from #678.

Validation:

  • bash hack/check-i18n.sh check passed: 29 translation keys and 20 tracked translated pages.
  • Checked the rendered KubeVirt reference section contains both existing feature-gate documentation and the migration values, YAML example, and bandwidth units.
  • git diff origin/main...HEAD --check passed after merging current main; the PR changes one reference file.
  • Full Hugo 0.164.0 extended development build passed with next included (2,032 pages across five languages); the rendered KubeVirt section contains the table, YAML example and units.

Screenshots

Not applicable; reference documentation only.

Downstream repositories

This reference-only change does not alter any downstream API, schema, build tooling, installer setting or runtime behavior. The companion Cozystack implementation is a prerequisite, not a downstream change caused by this documentation.

Release note

docs(platform-package): Document cluster-wide KubeVirt migration configuration through kubevirt.migrations, including bandwidth units and parallel migration limits.

Signed-off-by: Yan Bondarenko <202671653+yankawai@users.noreply.github.com>
@netlify

netlify Bot commented Sep 15, 2026

Copy link
Copy Markdown

Deploy Preview for cozystack ready!

Name Link
🔨 Latest commit 61b9d29
🔍 Latest deploy log https://app.netlify.com/projects/cozystack/deploys/6aaa93e68256ec00084b5173
😎 Deploy Preview https://deploy-preview-697--cozystack.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 76ac8828-9447-4bc2-9b8d-42aba62a5e1c


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Signed-off-by: Yan Bondarenko <202671653+yankawai@users.noreply.github.com>

@scooby87 scooby87 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

LGTM (independent review pass).

Docs-only (+13/-0), verified against the actual behaviour in cozystack#4254: the kubevirt.migrations key maps to spec.configuration.migrations, default {} leaves KubeVirt defaults unchanged, and bandwidthPerMigration is a bytes-per-second quantity. The worked example checks out: 625M (decimal, 625,000,000 bytes/s) x 8 = 5 Gbit/s, and the example values match the #4254 test fixture byte-for-byte. Each added paragraph is a single line (no hardwrap). No findings.

@lexfrei
Aleksei Sviridkin (lexfrei) merged commit 1d8749d into cozystack:main Sep 17, 2026
6 checks passed
Aleksei Sviridkin (lexfrei) added a commit to cozystack/cozystack that referenced this pull request Sep 18, 2026
#4254)

## What this PR does

Cluster-wide migration settings could only be applied by patching the
KubeVirt CR: the kubevirt chart did not render `migrations`, and the
platform bundle did not forward it. Add the optional
`kubevirt.migrations` platform value and pass it through the generated
Package to `spec.configuration.migrations`.

For example, set the following under `spec.components.platform.values`
on the `cozystack.cozystack-platform` Package:

```yaml
kubevirt:
  migrations:
    bandwidthPerMigration: 625M
    parallelMigrationsPerCluster: 2
    parallelOutboundMigrationsPerNode: 1
```

`bandwidthPerMigration` is a quantity in bytes per second. Empty or null
settings leave the field unset; existing KubeVirt defaults are
unchanged. The map is forwarded intact, including explicit `false` and
`0` values. `make update` restores the new parameterization
independently after a hand-merge.

Validation:

- All 207 Helm tests in `packages/system/kubevirt` and
`packages/core/platform` passed (42 suites).
- Before the template changes, the new limit and false/zero cases failed
at both forwarding stages (four expected regression failures).
- The GNU sed / make update-idempotency suite passed, including
restoration of a missing migrations block, repeated runs, and rejection
of a missing insertion anchor.
- Standalone KubeVirt rendering and `helm lint` passed. Neither modified
chart defines a `make generate` target. Full platform rendering requires
its live source repository lookup; the platform template behavior was
checked through its existing Helm unit-test fixtures.

This is separate from #3989, which exposes `vmStateStorageClass` in the
same chart and bundle files.


### Screenshots

Not applicable; no UI changes.

### Downstream repositories

- [ ] No downstream repository is affected by this change
- [x] [cozystack/website](https://github.com/cozystack/website) -
follow-up: [#697](cozystack/website#697)
- [ ]
[cozystack/terraform-provider-cozystack](https://github.com/cozystack/terraform-provider-cozystack)
- follow-up:
- [ ]
[cozystack/ansible-cozystack](https://github.com/cozystack/ansible-cozystack)
- follow-up:
- [ ] [cozystack/ccp](https://github.com/cozystack/ccp) - follow-up:
- [ ] [cozystack/talm](https://github.com/cozystack/talm) - follow-up:
- [ ] [cozystack/cozyhr](https://github.com/cozystack/cozyhr) -
follow-up:
- [ ] [cozystack/cozy-proxy](https://github.com/cozystack/cozy-proxy) -
follow-up:
- [ ]
[cozystack/cozystack-telemetry-server](https://github.com/cozystack/cozystack-telemetry-server)
- follow-up:
- [ ]
[cozystack/external-apps-example](https://github.com/cozystack/external-apps-example)
- follow-up:
- [ ] [cozystack/examples](https://github.com/cozystack/examples) -
follow-up:
- [ ] [cozystack/community](https://github.com/cozystack/community) -
follow-up:

The website follow-up
[#697](cozystack/website#697) documents this new
platform value in the unreleased `next` reference and should be merged
after this implementation. The merged website PR
[#678](cozystack/website#678) documents
`kubevirt.disabledFeatureGates` only. The other listed repositories do
not need a coordinated change: this adds an optional platform value
without changing app schemas, required installer values, CRDs, package
layout, source kinds, shared tooling contracts, or node prerequisites.

### Release note

```release-note
feat(kubevirt): Configure cluster-wide KubeVirt migration settings through the platform Package value kubevirt.migrations. Empty settings preserve existing defaults.
```


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Added optional KubeVirt migration configuration.
* Supports migration bandwidth, concurrency limits, auto-convergence,
and completion timeout settings.
  * Migration bandwidth can be specified in bytes per second.
  * Empty or unset migration settings preserve KubeVirt defaults.
* **Bug Fixes**
* Migration values now preserve valid `false` and `0` settings when
provided.
* **Tests**
* Added coverage for default, empty, null, configured, and
repeated-update scenarios.
* Added validation to prevent incomplete or duplicated migration
configuration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants