Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: reconcile 2.0, event streams, version enforcement #315

Merged
merged 68 commits into from
Dec 6, 2024
Merged

Conversation

Meshiest
Copy link
Contributor

@Meshiest Meshiest commented Nov 15, 2024

tasks:

  • dataformat for agent status
  • dataformat for env info
  • storage of loki url
  • storage of resolved addrs
  • refactor resolved addrs to support agent IP updates
  • refactor agent reconcile to support non-rpc reconciliation
  • upgrade agent status to reflect current reconcile status
  • refactor resolved binaries to support binary updates
  • add new event stream for properly monitoring new agent reconcile status output
  • refactor cannon events to use new events
  • websocket api for event stream
  • CLI uses event stream to monitor reconcile/transaction statuses
  • fix transactions not using the right cost calculation
  • [ ] potentially start tests on reconcile 2.0 behavior (need to make a new task for making all of snops more testable, with the controlplane not needing to run axum for each api to be tested)
  • rename prepare to apply

related:

@Meshiest Meshiest requested a review from gluax November 15, 2024 07:25
@Meshiest Meshiest marked this pull request as draft November 15, 2024 07:26
@Meshiest Meshiest changed the title chore: update snarkos/snarkvm to latest canary feat: allow restarted agents to recover node status with offline controlplanes Nov 15, 2024
…cile into set_agent_state, add EnvInfo lite for agents, remove dead code
@Meshiest Meshiest changed the title feat: allow restarted agents to recover node status with offline controlplanes feat: reconcile 2.0, event streams, version enforcement Dec 3, 2024
@Meshiest Meshiest marked this pull request as ready for review December 5, 2024 06:24
Copy link
Contributor

@gluax gluax left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tried my best to go through it all catching stuff but big.

crates/agent/src/reconcile/process.rs Show resolved Hide resolved
crates/agent/src/reconcile/storage.rs Show resolved Hide resolved
crates/agent/src/reconcile/storage.rs Show resolved Hide resolved
crates/agent/src/reconcile/storage.rs Show resolved Hide resolved
*self.last_node_status.write().await = status.map(|s| (Instant::now(), s));
}

pub async fn get_node_status(&self) -> Option<SnarkOSStatus> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couldn't this be a reference? Or is needed as a non-reference where it's called?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would have to be the RwLock's guard type, which felt kinda weird. Any references would be temporary

crates/common/src/rpc/codec.rs Show resolved Hide resolved
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.

✅ API reconcile/prepare Job ID
2 participants