-
Notifications
You must be signed in to change notification settings - Fork 45
blueprint_planner background task #8287
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
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 might have jumped the gun in looking at this but it looks great.
0d61d6f
to
dfd9bba
Compare
8e5379b
to
53b7cb0
Compare
53b7cb0 adds a working |
The test is failing because it (manually) executed the system's initial blueprint, tried to verify that the internal DNS generation didn't change, but it had changed. One guess is that maybe the planner task is enabled in the test suite environment? (You could check by running It looks like an |
So, in able to run the planner in the test context, we need a boundary NTP zone in the initial setup. The presence of such a zone causes the DNS generation number bump on execution (presumably because it's adding the NTP server to external DNS), regardless of whether the planner is enabled. Should I update the test to reflect this change to its environment, or try something else (suggestions welcome)? |
Thanks for digging into that. If I'm understanding correctly, there are two separate issues here:
|
Sorry, I think I unclear because I was referring to changes I hadn't pushed up. d1e2e14 correctly wires up the I have also confirmed (again with |
Ah, thanks for that. The way this works in both a real system and the test environment is that we (well, RSS in the real system, and nexus-test-utils in the test environment) set up both an initial blueprint and (in parallel) an initial DNS configuration. Both get sent in the RSS-to-Nexus handoff. (This is somewhat an artifact of history, since the contents of internal DNS should be derivable from the blueprint. But the DNS config needs to be sent to the DNS servers before we can do the Nexus handoff (so Nexus can find CockroachDB, CockroachDB can find each other, etc.) so it also kind of makes sense to send Nexus what the DNS servers were configured with.) So in a working system, if you were to execute the initial blueprint, there would be no changes to internal DNS because it was constructed to match what the initial blueprint specifies. It looks like 53bc7cb0 added the boundary NTP zone to the blueprint, but not the internal DNS config. If you look at say It does look like this test is also hitting #8222, but I think it doesn't actually notice that (which would explain why it's not failing on "main", even though 8222 has been present for some time) and it doesn't affect what it's trying to test. |
Thank you, that was the bit I was missing ("it's always DNS"). f3f243a adds a dummy DNS entry, which fixes the test. If I could trouble you one step further: I'm not actually sure what the "right" address is to register with internal DNS for the new boundary NTP server. But since it's not a real server, maybe it doesn't much matter (for now, at least)? |
842d038
to
611f48b
Compare
Fixes #8244. Adds a new
blueprint_planner
background task that periodically invokes the planer. If the resulting blueprint is different than the current target, it is saved and becomes the new target.Todo: