Skip to content

Fix stale release signals: port dial filter + releaseId on failure details - #64

Merged
ashishmax31 merged 2 commits into
mainfrom
fix/stale-release-signals
Aug 4, 2026
Merged

Fix stale release signals: port dial filter + releaseId on failure details#64
ashishmax31 merged 2 commits into
mainfrom
fix/stale-release-signals

Conversation

@ashishmax31

Copy link
Copy Markdown
Contributor

Summary

Two fixes for previous-release signals leaking onto the current release's timeline in the hub:

  • Stale port dial: the stored PortCheck can belong to the previous revision (the checker only re-dials once new pods run). A release that removed a port inherited its failing dial — the summary reported "port 80 not accepting connections" for a spec that no longer declares port 80. deployingDetail now filters failing dialed ports against the currently declared spec ports and falls through to the rollout detail when none remain.

  • releaseId on failure details: LastFailureDetail / LastBuildFailureDetail gain an optional releaseId, stamped from the owning CR's release-id annotation at capture time (workload crash capture on both the deployment and statefulset/job/cronjob paths, and image build failure detail). A lingering detail from a previous release keeps that release's ID, so the hub can drop it instead of attributing it to the current release — the same release-id key the hub already gates build and resource events on.

CRDs regenerated (stackresources + imagebuilds, charts and deploy copies). Additive optional field, no schema break.

Test plan

  • make test green (full suite incl. manifests/generate/fmt/vet)
  • New TestSummaryIgnoresDialForRemovedPort; existing dial specs now declare their port in spec
  • Live repro on dev cluster: release removing port 80 no longer shows the previous release's port-80 dial on its timeline

https://claude.ai/code/session_01TpRLszVTJudSd86RreufSC

…er declares

The stored PortCheck can belong to the previous revision — the checker only
re-dials once the new pods run. A release that removed a port inherited its
failing dial: the summary said "port 80 not accepting connections" for a spec
that no longer declares port 80, and the hub put that on the new release's
timeline.

deployingDetail now filters the failing dialed ports against the currently
declared spec ports and falls through to the rollout detail when none remain.

Claude-Session: https://claude.ai/code/session_01TpRLszVTJudSd86RreufSC
LastFailureDetail and LastBuildFailureDetail gain releaseId, copied from the
owning CR's release-id annotation at capture time:

- workload crash capture (deployment path and the shared
  statefulset/job/cronjob path)
- image build failure detail

A lingering detail from a previous release keeps that release's ID, so the
hub can drop it instead of showing it on the current release's timeline —
the same release-id key the hub already gates build and resource events on.

Claude-Session: https://claude.ai/code/session_01TpRLszVTJudSd86RreufSC
@ashishmax31
ashishmax31 merged commit 615ae03 into main Aug 4, 2026
2 checks passed
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.

1 participant