capi: add qemu node conformance validation hook - #2101
Conversation
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
/test all |
d85a5b8 to
ca164db
Compare
ee0c490 to
de282cc
Compare
de282cc to
8b19783
Compare
|
/retest |
|
/label tide/merge-method-squash |
8b19783 to
4645be4
Compare
4645be4 to
18127bd
Compare
|
/test pull-azure-sigs |
|
Sorry about the retest command... |
mboersma
left a comment
There was a problem hiding this comment.
Could we avoid leaving conformance-test state in the final image? The hook runs after sysprep/Goss and currently leaves test files and potentially kubelet/CNI/runtime state behind. Please run it against a disposable copy or fully clean and restore the image before shutdown.
Also, please update the documented defaults and either support or explicitly exclude Flatcar.
6fdfb0a to
c43b35c
Compare
A stale summary.env with exit_code=0 from a previously preserved or custom results directory could mask a real conformance failure: the provisioner only wrote summary.env when the file did not already exist, so a pre-existing summary always won over the current run's result. Always overwrite summary.env with the current exit code so a stale prior result can never hide a failing run.
The default skip expression excluded [Serial] tests, so genuine node-conformance cases tagged serial (e.g. MirrorPod coverage) never ran, yet the hook could still report success as a complete node conformance result. Default Ginkgo to a single node and drop [Serial] from the default skip expression so serial cases run instead of being silently skipped.
Snapshot/restore kubelet and CNI paths around the node-conformance run, isolate temporary kubelet/CNI data, and clean runner artifacts so final images do not retain conformance state. Add explicit Flatcar exclusion and sync docs/defaults, plus targeted unit tests for the hook and template cleanup behavior.
6cd3649 to
5656049
Compare
|
Addressed mboersma's review feedback in commit
Changed files: Validation passed:
Please re-review. |
9c4764d to
a0201fb
Compare
What
e2e_node.testwith a[Conformance]focus.node-conformance-results/before failing the build when conformance fails.images/capi/scripts/ci-qemu-node-conformance.shas a nested-virtualization CI helper with explicit CPU, memory, timeout, parallelism, accelerator, and target overrides.Related CI plumbing: kubernetes/test-infra#37401
Validation
bash -n images/capi/hack/run-e2e-node-conformance.sh images/capi/scripts/ci-qemu-node-conformance.shshellcheck images/capi/hack/run-e2e-node-conformance.sh images/capi/scripts/ci-qemu-node-conformance.shjq empty images/capi/packer/config/node-conformance.json images/capi/packer/qemu/packer.jsonmake validate-qemu-ubuntu-2404-cloudimg PACKER_FLAGS="--var 'node_conformance=true' --var 'accelerator=tcg' --var 'cpu_model=max' --var 'cpus=4' --var 'memory=4096'"NODE_CONFORMANCE_TARGET=validate-qemu-ubuntu-2404-cloudimg NODE_CONFORMANCE_ACCELERATOR=tcg NODE_CONFORMANCE_CPU_MODEL=max images/capi/scripts/ci-qemu-node-conformance.shgit diff --checkconfig/jobs/kubernetes-sigs/image-builder/*.yamlandgo test ./config/tests/jobs/...