NVIDIA / NVIDIA/cluster-readiness-engine
[Feature]: Emit Normal events on phase transitions across all six reconcilers
@kaynetu is already working on this.
Since Sep 1, 2026.
- Dominant language
- Go
- Stars
- 55
- Forks
- 19
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 107
Description
Follow-up to #150. Failure-path Warning events now exist at every tier: a331c85 wired the Job and Workflow reconcilers, and #250 wired Certification, GoodputMeasurement, BandwidthMeasurement, and WorkloadRun. What remains from #150 is the other half: events on key state transitions (InProgress, Succeeded, Failed) so kubectl describe tells the lifecycle story without controller log access.
This needs real design, which is why it was split out:
- Transition events must fire once per actual transition, not once per 15s requeue. Every reconciler funnels condition changes through
setExclusiveCondition(pkg/controller/status.go), which already knows whether the condition actually changed, so that is the natural hook for dedup. - The integration harness (
cmd/integration/integration_test.go) currently wires a recorder only for the Workflow reconciler; asserting on emitted events would need harness support and golden coverage. - Decide which transitions matter per tier. A Normal event per phase at six tiers is roughly 18 sites; some (measurement Complete, Job iteration restarts) may not be worth the etcd traffic.
Events RBAC is already in place, and every reconciler now has a nil-safe event helper, so this is purely about placement and dedup.
Also worth picking up here: the two Certification build/validation failure paths before Workflow creation (around certification_controller.go lines 188 and 252) still emit no Warning event. Both go terminal via setCertificationFailed, so a one-shot event there is safe and could reuse ReasonWorkflowValidationFailed.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.