-
Notifications
You must be signed in to change notification settings - Fork 47
Use timesync status to decide when to upgrade boundary NTP zones #8616
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
base: main
Are you sure you want to change the base?
Conversation
75b39c7
to
30a86a1
Compare
6bbc962
to
0873e92
Compare
30a86a1
to
2ded09d
Compare
0873e92
to
322598b
Compare
2ded09d
to
e784b52
Compare
322598b
to
bfe4c7a
Compare
e784b52
to
568a4db
Compare
bfe4c7a
to
84fbbe8
Compare
568a4db
to
71e2738
Compare
84fbbe8
to
e176df8
Compare
71e2738
to
91d9377
Compare
e176df8
to
d4d98cd
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great testing. Easy to read :)
hash: fake_hash, | ||
}; | ||
let artifacts = vec![ | ||
// Omit `BoundaryNtp` because it has the same artifact name as |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there an issue or anything describing this? Is it something that we need to fix?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#8510 is closely related but doesn't talk about this specifically. I think the issue here is that BoundaryNtp
and InternalNtp
are critically distinct from each other in some ways, but all of those ways are exclusively runtime config things: the actual artifact for both types is identical. I don't think it's something to fix? Although maybe we should have a helper somewhere for "build me a complete fake set of artifacts", so we could stop copy-pasting this.
@@ -1595,6 +1596,48 @@ impl<'a> Planner<'a> { | |||
} | |||
true | |||
} | |||
ZoneKind::BoundaryNtp => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I love how straightforward this logic is.
|
||
// Find all boundary NTP zones | ||
let mut boundary_ntp_zones = std::collections::HashSet::new(); | ||
for sled_agent in self.inventory.sled_agents.iter() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be looking at the current blueprint instead of inventory? If we have an out-of-date inventory, this might show us a boundary NTP zone that has since been expunged (and if it's also still in inventory.ntp_timesync
, we'd count it as a sync'd zone).
hash: fake_hash, | ||
}; | ||
let artifacts = vec![ | ||
// Omit `BoundaryNtp` because it has the same artifact name as |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#8510 is closely related but doesn't talk about this specifically. I think the issue here is that BoundaryNtp
and InternalNtp
are critically distinct from each other in some ways, but all of those ways are exclusively runtime config things: the actual artifact for both types is identical. I don't think it's something to fix? Although maybe we should have a helper somewhere for "build me a complete fake set of artifacts", so we could stop copy-pasting this.
bea6e02
to
5f2c4dd
Compare
Depends on #8603
Prevent the planner from tearing down boundary NTP zones when we are not at expected "BOUNDARY_NTP_REDUNDANCY" synchronized zones.
Adds a test which demonstrates that we'll only drop "one zone" below redundancy during an upgrade, and never
further than that.
Fixes #8547