Skip to content

Conversation

@Lennonka
Copy link
Contributor

@Lennonka Lennonka commented Nov 26, 2025

What changes are you introducing?

Explaining why one should assign rolling content views to other LCEs than Library

Why are you introducing these changes? (Explanation, links to references, issues, etc.)

SAT-37738 (public)

Anything else to add? (Considerations, potential downsides, alternative solutions you have explored, etc.)

Contributor checklists

  • I am okay with my commits getting squashed when you merge this PR.
  • I am familiar with the contributing guidelines.

Please cherry-pick my commits into: ???

  • Foreman 3.17/Katello 4.19
  • Foreman 3.16/Katello 4.18 (Satellite 6.18)
  • Foreman 3.15/Katello 4.17
  • Foreman 3.14/Katello 4.16 (Satellite 6.17; orcharhino 7.4)
  • Foreman 3.13/Katello 4.15 (EL9 only)
  • Foreman 3.12/Katello 4.14 (Satellite 6.16; orcharhino 7.2 on EL9 only; orcharhino 7.3)
  • Foreman 3.11/Katello 4.13 (orcharhino 6.11 on EL8 only; orcharhino 7.0 on EL8+EL9; orcharhino 7.1 with Leapp)
  • Foreman 3.10/Katello 4.12
  • Foreman 3.9/Katello 4.11 (Satellite 6.15; orcharhino 6.8/6.9/6.10)
  • We do not accept PRs for Foreman older than 3.9.

Summary by Sourcery

Documentation:

  • Expand documentation to explain when and why to use rolling content views on non-Library lifecycle environments.

@github-actions github-actions bot added Needs tech review Requires a review from the technical perspective Needs style review Requires a review from docs style/grammar perspective Needs testing Requires functional testing labels Nov 26, 2025
@sourcery-ai
Copy link

sourcery-ai bot commented Nov 26, 2025

Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Updates rolling content view documentation to explain their use beyond the Library lifecycle environment and clarifies the procedure for assigning rolling content views to lifecycle environments.

File-Level Changes

Change Details Files
Expanded conceptual explanation of rolling content views to cover assignment to non-Library lifecycle environments and rationale for doing so.
  • Reworked or extended the description of rolling content views to explicitly mention usage with lifecycle environments other than Library.
  • Added or clarified reasoning and best-practice guidance for assigning rolling content views beyond the default Library context.
  • Ensured terminology and references to lifecycle environments are consistent with current product behavior and SAT-37738 requirements.
guides/common/modules/con_rolling-content-views.adoc
Clarified the procedure for assigning a rolling content view to lifecycle environments other than Library.
  • Updated the step-by-step instructions to include or highlight selection of non-Library lifecycle environments when assigning a rolling content view.
  • Aligned procedural wording and UI labels with current product behavior for rolling content view assignment.
  • Improved cross-references or prerequisites so the procedure matches the updated conceptual guidance on rolling content views.
guides/common/modules/proc_assigning-a-rolling-content-view-to-lifecycle-environments.adoc

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey there - I've reviewed your changes and they look great!

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location> `guides/common/modules/con_rolling-content-views.adoc:14` </location>
<code_context>

 Instead, you can assign rolling content views to one or multiple lifecycle environments.
-This allows you to control which content is synchronized from {ProjectServer} to {SmartProxyServers}.
+By doing so, you can synchronize subsets of the Library content from {ProjectServer} to {SmartProxyServers} that are configured to consume content from the assigned lifecycle environments.
</code_context>

<issue_to_address>
**issue (review_instructions):** The phrase "that are configured to consume" uses passive voice, which the guidelines ask us to avoid.

To avoid passive voice, consider rephrasing this part of the sentence. For example:

"By doing so, you can synchronize subsets of the Library content from {ProjectServer} to {SmartProxyServers} that you configure to consume content from the assigned lifecycle environments."

This keeps the meaning while using active voice.

<details>
<summary>Review instructions:</summary>

**Path patterns:** `guides/common/*.adoc,guides/common/modules/*.adoc`

**Instructions:**
Avoid passive voice in verbs.

</details>
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@Lennonka Lennonka removed the Needs testing Requires functional testing label Nov 26, 2025
@github-actions
Copy link

github-actions bot commented Nov 26, 2025

@Lennonka
Copy link
Contributor Author

Lennonka commented Nov 26, 2025

@quba42 and @ianballou Can you please take a look and confirm that the explanations are correct?

Also, should we cherry pick this to 3.17?

@Lennonka Lennonka changed the title Why use rolling CVs Why assign rolling CVs to LCEs Nov 26, 2025
Copy link
Contributor

@maximiliankolb maximiliankolb left a comment

Choose a reason for hiding this comment

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

Tested Hammer CLI on Foreman 3.16: ✔️

$ hammer content-view list --organization-id 1 --fields "content view id,name"
----------------|----------------------------------------------------------
CONTENT VIEW ID | NAME                                                     
----------------|----------------------------------------------------------
2               | AlmaLinux 10_CV                                          
56              | AlmaLinux 10_RCV                                         
3               | AlmaLinux 9_CV                                           
...

You can assign your rolling content view to lifecycle environments to limit content synchronized to {SmartProxyServers}.

You can assign rolling content views to Library.
However, Library usually contains many repositories and synchronizing the whole Library to {SmartProxyServers} can be time consuming.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
However, Library usually contains many repositories and synchronizing the whole Library to {SmartProxyServers} can be time consuming.
However, Library contains all products and repositories.
Therefore, synchronizing Library to {SmartProxyServers} is time consuming.

You can assign rolling content views to Library.
However, Library usually contains many repositories and synchronizing the whole Library to {SmartProxyServers} can be time consuming.
Therefore, {Team} recommends assigning rolling content views to other lifecycle environments.
By using other lifecycle environments, you can subscribe hosts to other lifecycle environments than Library.
Copy link
Contributor

Choose a reason for hiding this comment

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

You can, so it's technically true. But the benefit of using rolling CV in LE other than Library is that you can only sync a subset of your content to Smart Proxy Servers and therefore save bandwith and disk space on Smart Proxy Servers. I suggest to reword this or drop it.

Copy link
Contributor

@ianballou ianballou Nov 26, 2025

Choose a reason for hiding this comment

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

I agree with @maximiliankolb here.
Also, we don't need to mention it since assigning an LCE is essentially free, but users who don't use smart proxies don't really need to care about what LCE they assign to their rolling CVs.

Copy link
Contributor

Choose a reason for hiding this comment

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

For the particular line here, subscribing hosts to LCEs other than library isn't really a benefit by itself, especially with rolling CVs.

@quba42
Copy link

quba42 commented Nov 26, 2025

@Lennonka I am struggling to come up with a text that is both accurate, and complete without becoming very longwinded. The following accurately and completely describes the background, but needs to be shortened back down. I post it in the hope that it helps you to further refine a final text:

In order to consume rolling content views, they must be assigned to one or more lifecycle environments.
This has the effect of exposing a subset of Library content to those lifecycle environments.
It is not recommended to assign a rolling content view to the Library environment itself, since exposing a subset of Library to Library creates duplicate content within Library.
Further more, by using environments other than Library, you can synchronize your rolling content views from {ProjectServer} to any {SmartProxyServers} that are configured to consume the relevant lifecycle environments without the need to synchronize all of Library to the {SmartProxyServers}.

Whatever you decide to pull or not to pull from my text, I do recommend making the recommendation not to assign rolling content views to Library very explicit in the docs.

@Lennonka Lennonka added the Waiting on contributor Requires an action from the author label Nov 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs style review Requires a review from docs style/grammar perspective Needs tech review Requires a review from the technical perspective Waiting on contributor Requires an action from the author

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants