Container based downstreams

Foreman has three products based on it:

Each of those ships Foreman with different customizations and we’d like to enable those products to be able to ship efficiently with our move to container based deployments.
For that, it’s crucial to know what kind of changes should be possible.

Rebuilding of assets

It should be possible to rebuild assets (packages, containers), ship them in an own repository/registry and consume them during deployment.

Related PRs:

Feature enablement

It should be possible to

  • add new features
  • configure features as “always enabled”
  • hide (unsupported) features
  • provide alternative default settings for features

Related PRs:

Branding

It should be possible to alter the branding (interface, naming, etc) to match the product.

For Satellite, this means installing the foreman_theme_satellite plugin and shipping a few symlinks in /usr/bin, which should be possible once the previous two requirements are implemented.

You?

So, what else do you need? Especially looking at @Bernhard_Suttner @bochi @Odilhao :wink:

5 Likes

FTR, the two linked PRs are now merged, so it would be cool if y’all could run some PoCs how usable it is for you :slight_smile:

3 Likes

And 2.3.0 with those changes was released, should land in nightly and 3.19 on the next pipeline run

3 Likes

While working on https://github.com/theforeman/foremanctl/pull/532 we realized we probably need to be able to alter the set of possibilities a user can select. In that particular case the list of supported DNS providers.

The naïve approach of overriding a (role) variable works for the “it can’t be enabled” case, but the CLI would still show the entry in the choices of the parameter, which seems confusing to the user.

sorry, for the late response. Just some thoughts, but I think most of them are already part of the concept.

  • orcharhino theme
  • enable / disable compute resources
  • enable / disable foreman plugins
  • enable / disable smart-proxy plugins
  • overwrite settings
  • how to update from one foreman version to the next one. how to install “hot-fixes” e.g. update a single package like “foreman_scc_manager”- both should be as easy as possible migration from foreman-installer to new containerized solution
  • [ and, for sure, more ]

How is the current orcharhino theme done? Is it a gem with a rails engine that uses deface, like we do for Satellite? Or something wildly different?

Similar than the satellite theme.

Can you expand on what you mean by settings here?

This will come down to having to build and provide a new image with the hotfix in it. For that, foremanctl/docs/developer/deployment.md at master · theforeman/foremanctl · GitHub should help provide a mechanism.