net status: preserve controller receipt times in summary patches - #799
Conversation
Live dashboard verification found that full rebuilds supplied lastPushTime, but subsequent summary patches lost it. Stamp notification copies with the cache entry receipt time for summary, legacy full/delta and transport-source changes, without altering wire metadata or renewing freshness on reconnect. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d2243398-6c36-4c3d-969e-7ed7bfb5b459
|
Deployed the combined dashboard corrections (#796, #797, #798 and #799) to pr712 with controller commit 024fd30, pinned image sha256:26f284d16d5ff055309b482458d949ad6d2825673b8a2104ad27668bdbe74315. Agent images were unchanged for these dashboard/controller corrections. Live Chromium through the authenticated kubectl dashboard proxy confirmed: opening a node shows Node Info, current health and status age without any detail request; Load data and Refresh each complete POST 202 -> GET 200 for only the selected node; 10 peers, 9 routes and 20 BPF entries render in their tabs. Advancing browser wall time beyond the real snapshot expiry removes diagnostic tables while keeping the info pane, with no replacement request. Native timer/expiry behavior also has the Chromium fixture regression. Final cluster state: 11/11 Ready nodes, 12/12 ready component pods, Site Healthy, 110/110 healthy peer links, all summary metadata and receipt timestamps present. Global JSON remains summary-only after explicit detail loads. Controller background pulling remains disabled; routine summary publishing is enabled. Deployment spec was preserved except for the controller image. All 53 layers remain draft and under the 1,000-line ceiling. |
|
This PR was mistaken churn from splitting the lightweight-status work into unnecessarily small PRs. That was my mistake, not a requirement from the user. Its changes are preserved in #755, #766 within the user-approved, consolidated 12-PR draft stack. Closing this superseded PR; the implementation is not being discarded, and nothing has been merged into main. |
Based on #798. Live pr712 verification showed last-update times after a full cluster rebuild, but subsequent node-cache notifications replaced them with absent node-provided timestamps. Notify the cluster cache using the entry controller receipt time while preserving raw wire metadata. Applies to summaries, legacy full/delta publications and source changes; changing transports does not renew freshness.
Regression coverage exercises all three publishing paths under a controlled clock, incremental cluster patching, summary deltas, immutable older snapshots and source-only changes. Controller race suite and scoped make fmt passed. One initial unrelated informer lifecycle timeout passed three isolated repetitions and the full race-suite rerun. Draft layer below 1,000 changed lines.
Lightweight status draft stack
Base: #745. Each layer targets the preceding branch and remains draft.
#746 -> #747 -> #748 -> #750 -> #751 -> #752 -> #753 -> #754 -> #755 -> #756 -> #757 -> #758 -> #759 -> #760 -> #761 -> #762 -> #763 -> #764 -> #765 -> #766 -> #767 -> #768 -> #769 -> #770 -> #771 -> #772 -> #773 -> #774 -> #775 -> #776 -> #777 -> #778 -> #779 -> #780 -> #781 -> #782 -> #783 -> #784 -> #785 -> #786 -> #787 -> #788 -> #789 -> #790 -> #791 -> #792 -> #793 -> #794 -> #795 -> #796 -> #797 -> #798 -> #799