Skip to content

[8/n] [reconfigurator] add target release generation to blueprint #8199

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

Conversation

sunshowers
Copy link
Contributor

@sunshowers sunshowers commented May 22, 2025

As described in RFD 556, we need this field as a backstop against Nexus overriding a freshly-conducted mupdate.

There is small semantic change here compared to RFD 556, though not one of much consequence:

  • As currently described in RFD 556, Nexus believes it is in control if the target release generation is greater than this field.
  • In this PR, that logic has been changed to greater than or equal to.

This has two advantages:

  1. It aligns somewhat better with the meaning of "minimum".
  2. target_release_minimum_generation no longer needs to be an Option<Generation>; it can be a Generation instead. That's because we always insert a generation 1 in the target_release table as "unspecified", meaning to use the install dataset. So setting this field to generation 1 just means "use the install dataset".

Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
@sunshowers sunshowers changed the title [9/n] [wip] [reconfigurator] add target release generation to blueprint [9/n] [reconfigurator] add target release generation to blueprint May 22, 2025
@sunshowers sunshowers changed the title [9/n] [reconfigurator] add target release generation to blueprint [8/n] [reconfigurator] add target release generation to blueprint May 22, 2025
Created using spr 1.3.6-beta.1
/// * the target release is ignored in favor of the install dataset
/// * this field is set to 6
///
/// Once the target release generation is updated to 6 or higher,
Copy link
Contributor

Choose a reason for hiding this comment

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

The wording on this is correct but I read it incorrectly the first time through, because "the target release generation" is pretty similar to the name of this field; I was confused about how the target release generation might be set to 6 in the future when we've already set this field to 6. The event we're waiting for here is "an operator sets a new target release" (which will necessarily bump the generation number up to 6), right? And we also have to have cleared all the mupdate overrides in the meantime (or as a part of that new release being set)?

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've updated it to have a more active voice:

    /// Once an operator sets a new target release, its generation will be 6 or
    /// higher. Reconfigurator will then know that it is back in charge of
    /// driving the system to the target release.

And we also have to have cleared all the mupdate overrides in the meantime (or as a part of that new release being set)?

I believe that's right, yes.

Created using spr 1.3.6-beta.1
@sunshowers sunshowers enabled auto-merge (squash) June 6, 2025 23:13
@sunshowers sunshowers merged commit 81c98fc into main Jun 7, 2025
17 checks passed
@sunshowers sunshowers deleted the sunshowers/spr/9n-wip-reconfigurator-add-target-release-generation-to-blueprint branch June 7, 2025 00:48
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.

3 participants