NVIDIA / NVIDIA/cluster-readiness-engine

[Feature]: Emit Normal events on phase transitions across all six reconcilers

Open
#252 0 comments 0 reactions 1 assignee View on GitHub

@kaynetu is already working on this.

Since Sep 1, 2026.

enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.