[katello-devel] Another take on Component Outlines

Lukas Zapletal lzap at redhat.com
Thu Jan 17 10:05:08 UTC 2013


On Wed, Jan 16, 2013 at 06:12:15PM +0000, Dmitri Dolguikh wrote:
> There are a couple of issues around system subscriptions and puppet
> classes: it's possible that selected puppet class is not covered
> (completely or partially) by the subscriptions. How should such a
> situation be handled? One possible approach is to provision the
> system and alert the user about the problems with subscriptions.
> Ideally we should warn the user during Component Outline creation,
> this would require ability to execute provisioning in a dry-run
> mode, and should be considered for subsequent iterations.

That is possible, but we will never know in advance. Puppet is a DSL
language, but there are more ways how to install package (you could do
it possible via "exec 'yum install xyz'"). The only reliable way to
check the Puppet codebase is to run it.

What we could do is to extend Foreman which already parses AST Puppet
tree to some level to retrieve all package statements from there. But
again, we would cover only cases when a package is installed using the
package statement (should be 99 per cent I believe).

> Yet another approach would be deriving subscriptions based on puppet
> classes. This would either require ability to build package list
> based on puppet classes, and then finding subscriptions best fitting
> for discovered packages, or being able to associate puppet classes
> with activation keys/subscriptions.

Again, challenging. And even if we have the feature, we need to give the
user ability to specify subscriptions manually. I would be for including
subscriptions in the CO with some advices from Katello/Foreman
(pre-selecting or UI hints) as we get there.

> Do we need to support parameters in Component Outlines (Foreman's
> hostgroups have them)?

I am not sure for the user (I guess so), but we will definitely need to
pass some internal parameters to Foreman, like activation_key or
kickstart token.

> Provisioning with Katello/Foreman.
> Component Outline now contains all information necessary to
> provision a system via puppet. The user needs to specify the
> location, which may override some of the parameters in the selected
> Component Outline.
> 
> Creating Aeolus Component Outline.
> Repositories and packages lists can be built by hand based on
> repositories and packages available in the specified environment.
> Another possibility is to use puppet classes to build the list of
> packages for installation.
> 
> Thoughts/opinions?

Do you have all the missing pieces already installed? I am not sure if
we install all the smart proxies right now, but I am pretty sure our
installer does not set them up to the usable state. This needs to be
done as well.

And how do you handle situations when system is not being registered in
advance in Katello? User installs from an ISO, registers/subscribes
using RHSM and then he wants to re-provision the box? I guess in this
case the user needs to assign things in CO.

-- 
Later,

 Lukas "lzap" Zapletal
 #katello #systemengine




More information about the katello-devel mailing list