-
Notifications
You must be signed in to change notification settings - Fork 62
Closed
Labels
Update SystemReplacing old bits with newer, cooler bitsReplacing old bits with newer, cooler bitsnexusRelated to nexusRelated to nexus
Description
Currently Nexus is not very smart at all about when it tells Sled Agent to apply updates.
Lines 2873 to 2890 in 6f6aba6
| // demo-grade update logic: tell all sleds to apply all artifacts | |
| for sled in self | |
| .db_datastore | |
| .sled_list(&DataPageParams { | |
| marker: None, | |
| direction: PaginationOrder::Ascending, | |
| limit: NonZeroU32::new(100).unwrap(), | |
| }) | |
| .await? | |
| { | |
| let client = self.sled_client(&sled.id()).await?; | |
| for artifact in &artifacts { | |
| info!( | |
| self.log, | |
| "telling sled {} to apply {}", | |
| sled.id(), | |
| artifact.target_name | |
| ); |
Nexus needs to know:
- Versions of software and firmware across the rack, so it can determine what needs updates
- Update constraints (e.g. "this is an OS ramdisk; the sled must be evacuated of workloads so we can reboot", but also "the customer wants to hold back this component to this version because of Reasons")
With this information, Nexus needs to create an update plan that is a list of ordered steps for any running Nexus to execute. Nexus will periodically re-evaluate its plan to match the current state of the system and what new updates are available.
(From #717)
Metadata
Metadata
Assignees
Labels
Update SystemReplacing old bits with newer, cooler bitsReplacing old bits with newer, cooler bitsnexusRelated to nexusRelated to nexus