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

Mark all kickstart non-RPM content as phase2 [RHELDST-28021] #760

Merged
merged 2 commits into from
Dec 2, 2024

Conversation

rohanpm
Copy link
Member

@rohanpm rohanpm commented Nov 19, 2024

Kickstart repos don't adhere to the "mutable entry point, immutable
everything else" design of other content types, such as yum and
file repos. For example, files such as "/EULA", "/images/install.img"
may receive in-place updates.

As such, the usual categorization between phase1 and phase2 content
based on entry points does not fit these repos correctly.

From the point of view of exodus-gw, the set of files receiving
in-place updates is arbitrary, so we'd better treat them all as phase
2 content and try to update them together. RPM files are the only
exception, as we still expect that an RPM published to the same
path is always the same thing.

The effects of categorizing kickstart files as phase2 content include:

  • on publish, CDN cache will now be flushed for all non-RPM kickstart
    paths (rather than only the entry points).

  • on publish, non-RPM kickstart paths will be recorded into
    PublishedPath table, which allows them to trigger cache flush again
    when releasever_alias are updated in config. (This is the primary
    motivation for the change, as this important cache flush currently
    must be done manually.)

  • in-place updates to the repos are now more likely to appear as atomic
    from the customer's point of view.

  • kickstart publishes may be somewhat slower, as it is necessary to
    delay more of the publishing work until the user requests the final
    commit.

@rohanpm rohanpm marked this pull request as ready for review November 19, 2024 00:54
We want to change some logic around kickstart items. Make sure the
behavior is covered by tests first.
Kickstart repos don't adhere to the "mutable entry point, immutable
everything else" design of other content types, such as yum and
file repos. For example, files such as "/EULA", "/images/install.img"
may receive in-place updates.

As such, the usual categorization between phase1 and phase2 content
based on entry points does not fit these repos correctly.

From the point of view of exodus-gw, the set of files receiving
in-place updates is arbitrary, so we'd better treat them *all* as phase
2 content and try to update them together. RPM files are the only
exception, as we still expect that an RPM published to the same
path is always the same thing.

The effects of categorizing kickstart files as phase2 content include:

- on publish, CDN cache will now be flushed for all non-RPM kickstart
  paths (rather than only the entry points).

- on publish, non-RPM kickstart paths will be recorded into
  PublishedPath table, which allows them to trigger cache flush again
  when releasever_alias are updated in config. (This is the primary
  motivation for the change, as this important cache flush currently
  must be done manually.)

- in-place updates to the repos are now more likely to appear as atomic
  from the customer's point of view.

- kickstart publishes may be somewhat slower, as it is necessary to
  delay more of the publishing work until the user requests the final
  commit.
@rohanpm rohanpm merged commit 0146382 into release-engineering:master Dec 2, 2024
3 checks passed
@rohanpm rohanpm deleted the kickstart-phase2 branch December 2, 2024 20:40
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.

2 participants