[Backport release-1.6] feat(kubevirt): expose migration configuration through platform values - #4402
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository: cozystack/cozystack/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
Replace negative Chainsaw assertions with deletion watches, keeping the two-minute timeout and the preceding Bound assertions for both PVCs. Chainsaw 0.2.15 can abort polling on an API read error and report its previous "resource matches expectation" instead. The failed cozystack#4402 run ended this check after 4.5 seconds, not its two-minute budget. Verified with Chainsaw 0.2.15 and kubectl 1.33.13 against a loopback API: delayed deletion, already absent, a read failure on the old polling path, and watch reconnect succeed; retained PVCs and forbidden reads fail. Chainsaw lint passes. The original CI API error was not preserved; a full E2E rerun is still needed. Signed-off-by: Yan Bondarenko <[email protected]>
d45eb9b to
da05a51
Compare
… CRD wait is cancelled (#4475) Backport of #3742 to `release-1.6`. `TestWaitForCRDsEstablished_timeout` fails `Unit & controller tests` on this branch at random, last time on #4402: `error should mention stuck CRD name, got: context cancelled while waiting for CRDs to be established: context deadline exceeded`. `WaitForCRDsEstablished` here still has two cancellation exits with different messages, and when the deadline and a ticker tick are ready together the select picks one of them at random. I ran the timeout test as 16 concurrent processes to get the timing jitter CI has: 3 failures out of 160 runs on the current branch, 0 out of 320 with this change. Cherry-picked clean with `-x`. ### Testing - stress run above, plus `make unit-tests` and `make test-controllers` green, POSIX sh sweep clean. ```release-note fix(manifestutil): a CRD wait cut short by a cancelled context now reports one error naming the CRD it was waiting on, where before the name was present or missing depending on which of two exits the scheduler happened to pick ```
Backport of #4254 to release-1.6. 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. The optional `kubevirt.migrations` platform value now passes through the generated Package to `spec.configuration.migrations`, and a hand patch of that Package is undone on the next platform render, so this hop is the only supported setter. Four differences from main, all from release-1.6 predating the disabledFeatureGates work: - platform values gains a `kubevirt` block holding `migrations` alone, and the iaas bundle gains only the migrations hop; - the wiring test takes the four migrations cases and the case for a null `kubevirt` block, without the assertions that belong to disabledFeatureGates cases absent here; - update_idempotency_test.sh gains `run_update_logged`, which arrived on main alongside that work and the new cases need; - the kubevirt Makefile header counts six sed patches rather than five. Verified on this branch: 9 kubevirt chart tests, 31 platform wiring tests (102 across the platform suite), and update_idempotency_test PASS under GNU make and sed. Removing the new awk guard from the Makefile turns that test red naming the migrations block, so the ported guard is not decorative. On this line (.Values.kubevirt).migrations is the only reader of .Values.kubevirt, and rewriting it as .Values.kubevirt.migrations turns the null-block case red with a nil pointer. The automated backport in #4322 stopped with conflict markers in four files as its only commit, which is why this exists. Assisted-by: LLM Signed-off-by: Yan Bondarenko <[email protected]>
da05a51 to
bfb4224
Compare
This reopens a fork pull request from a branch in this repository so its CI can run. The commit is the one from #4481 by @yankawai, unchanged. On release-1.6 the pull-request CI pushes the images it builds, and a run from a fork has no registry credentials, so #4481 could never get past the build jobs to e2e. The description below is the author's. ## What this PR does Wait for both ZooKeeper PVCs to disappear after Kafka deletion. Negative assertions can stop on an API read error before their timeout; deletion watches wait for the resource to be removed. The existing Bound and KafkaTopic checks are unchanged. Carries the test-only change from c92828c in #4339, which was not included in #4402. This targets `release-1.6`; the Kafka suite on `main` uses KRaft without ZooKeeper. Validated with Chainsaw 0.2.15: delayed deletion, an already absent PVC, an interrupted watch, and the read-error fixture pass. A retained PVC and forbidden access fail. The full Kafka E2E run remains for CI. ### Screenshots Not applicable. ### Downstream repositories - [x] No downstream repository is affected by this change - [ ] [cozystack/website](https://github.com/cozystack/website) - follow-up: - [ ] [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: ### Release note ```release-note NONE ```
cozystack/cozystack#4402 backports the kubevirt.migrations platform value to the 1.6 line, and the v1.6 reference had no KubeVirt section at all. This adds the migrations row and its example from the next page, with a line saying the value is available since v1.6.4, because earlier 1.6 releases ignore it. The disabledFeatureGates row stays out, as that value is not on the 1.6 line. Signed-off-by: Yan Bondarenko <[email protected]>
## What this PR does Adds a KubeVirt section with the `kubevirt.migrations` row, its example and the note on bandwidth units to the v1.6 platform-package reference. It documents the value that cozystack/cozystack#4402 backported to `release-1.6`. That backport first ships in v1.6.4, so the section says the value is available since Cozystack v1.6.4 and that earlier 1.6 releases ignore it. The `kubevirt.disabledFeatureGates` row from `next` stays out because that value is not on the 1.6 line. The row and the example are the ones #697 added to `next`. Checks run for this change. - `bash hack/check-i18n.sh check` passed with 29 translation keys and 20 tracked translated pages. - `git diff origin/main...HEAD --check` passed, and the PR changes one reference file. - Hugo was not built locally. ### Screenshots Not applicable, reference documentation only. ### Downstream repositories - [x] No downstream repository is affected by this change - [ ] [cozystack/website](https://github.com/cozystack/website) - follow-up: - [ ] [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: This reference-only change does not alter any downstream API, schema, build tooling, installer setting or runtime behavior. ### Release note ```release-note docs(platform-package): Document kubevirt.migrations, available since v1.6.4, on the v1.6 platform values reference. ```
This reopens a fork backport from a branch in this repository so its CI can run. The commit is the one from #4339 by europrinter (@yankawai), unchanged. On release-1.6 the pull-request CI pushes the images it builds, and a run from a fork has no registry credentials, so #4339 stopped at the build jobs and never reached e2e. The description below is the author's.
What this PR does
Manual backport of #4254 to
release-1.6.The automated backport, #4322, stopped with conflict markers in four files as its only commit, so it is red on DCO and unmergeable as it stands.
Every conflict has the same cause: the
kubevirt.disabledFeatureGateswork landed on main after 1.6 was cut, and the cherry-pick carried it into hunks this line does not have. Four differences follow:kubevirtblock holdingmigrationsalone, and the iaas bundle gains only the migrations hop;kubevirtblock, without the assertions that belong to disabledFeatureGates cases this line does not have;update_idempotency_test.shgainsrun_update_logged, a four-line helper that arrived on main with that work and the new cases need;Verified on this branch: 9 kubevirt chart tests, 31 platform wiring tests (102 across the platform suite), and
update_idempotency_testPASS under GNU make and sed. Removing the new awk guard from the Makefile turns that test red naming the migrations block, so the ported guard is doing work. On this line(.Values.kubevirt).migrationsis the only reader of.Values.kubevirt; rewriting it as.Values.kubevirt.migrationsturns the null-block case red with a nil pointer.Feature summary, unchanged from #4254: cluster-wide migration settings could only be applied by patching the KubeVirt CR, because the kubevirt chart did not render
migrationsand the platform bundle did not forward it.kubevirt.migrationsnow passes through the generated Package tospec.configuration.migrations. A hand patch of that Package is undone on the next platform render, so this hop is the only supported setter.Screenshots
Not a UI change.
Downstream repositories
Walked the trigger map against the diff: platform values, the iaas bundle and the kubevirt chart. The v1.6 reference page of the platform values had no
kubevirtsection, so the row goes there as a follow-up that should land with this backport.Release note