Content Views, Lifecycle Environments, and version control

This is more of a general use-case for the version control workings of Katello. I have built a working Katello instance and have set up a client within said instance. I am now trying to understand the workflow of how to properly manage my client’s versions.

I’ve been reading the documentation and understand I need to create a content view and lifecycle environment, however, I have created both and am not able to connect the dots on how these work together for version control of the host. Are there any videos or deep-dive guides that work you through this or explain this?


a basic example of how content views and lifecycle environments work together can be found in katello’s docs. The only deep dive recording about katello I found is 3+ years old.

The general idea is that you create a content view, add your content and when you publish it, you will have a first version of your content view in Library environment. You can create additional lifecycle environments that create a (linear) path, so you can have something like: Library -> Test -> Staging -> Production.

When you promote a content view, you move it along the path to the next environment. When you publish a content view, a new version is created in the Library environment. You can then subscribe your hosts to a specific content view and environment - that way you determine what content your hosts have access to.

Hope this helps,

1 Like

Hi Ondrej,

Thanks, that is insightful for sure. I noticed I cannot ‘promote’ a version of my content view, but it is the only version I have created. Would that be because it IS the only version?


If you cannot promote a version, that usually means there is no environment to promote to. Having only Library environment when I create a content view and publish first version (1.0), I cannot promote it, because the version is already in Library:

When I add ‘test’ environment, I can promote it there:

After that, I am out of environments where to promote again:

Because the version is in both Library and test now:

But I can publish a new version which will appear in Library and start promoting again:


Hi Ondrej,

Thank you for your very detailed response. I am going to go through this early next week and am really looking forward to it.

Thank you much - I will respond back afterwards if I have any more questions.

Hi Ondrej,

I’ve been playing with this a bit now; thanks for your reply. I am wondering now how my actions on the katello host control what repos and packages my content hosts (clients) will see?


controlling what content your content hosts can access is usually done with activation keys. A key is linked to a specific lifecycle environment and content view. In the activation key details, you can specify what content will be available when you register a host using a particular key.

Understood - thank you so much.

If I publish a new version on the Katello host is it as simple as running a ‘yum update all’ on my client to update the packages? Is the package change on my client(s) dynamic and just relies on what I do on my Katello host? I guess I was unsure of that work flow.

Thanks again for all your help.

As far as I know, when a new version is created, the content should be consumable by the clients and they should be able to pick it up (if they are correctly subscribed).