Add satellite flavor for downstream deployments - #628
Conversation
2d6d362 to
cd76c02
Compare
| - foreman | ||
| - katello |
There was a problem hiding this comment.
foreman-proxy feature can be added to this list
There was a problem hiding this comment.
as with hammer, I think that is something people should be actively opt in for?
content distribution to external proxies works without the feature, so in many architectures it won't be needed
There was a problem hiding this comment.
for now I do not have foreman-proxy enabled by default.
There was a problem hiding this comment.
I think it should be identical to what we've currently with rpm based installations and we should have similar features pre-enabled on satellite deploy for existing users, where foreman-proxy and hammer are enabled by default
@ekohl @vijay8451 wdyt?
There was a problem hiding this comment.
One of our goals with foremanctl and containers was to encourage users to deploy external proxy/capsule/thing when they need functionality that is not available within the core Foreman(+Katello) stack rather than getting a local proxy by default. So that they have to make the choice whether to have it locally or not actively.
Upgrades will result in the same functionality, but the baseline feature set doesn't necessarily have to replicate what we had before.
For example, as a best practice, hammer should be installed on and used from a separate node. We should discourage admins from sshing in as root and using a CLI on the same machine that the service exists on. That's just a good security posture for us to encourage users to have. Should we block this? No. But it shouldn't be the default behaviour IMO.
There was a problem hiding this comment.
One of our goals with foremanctl and containers was to encourage users to deploy external proxy/capsule/thing when they need functionality that is not available within the core Foreman(+Katello) stack rather than getting a local proxy by default. So that they have to make the choice whether to have it locally or not actively.
I think this is a good discussion topic. It will mean that by default you won't have a working remote execution setup. Is that what we expect?
Upgrades will result in the same functionality, but the baseline feature set doesn't necessarily have to replicate what we had before.
Agreed
For example, as a best practice,
hammershould be installed on and used from a separate node. We should discourage admins from sshing in as root and using a CLI on the same machine that the service exists on. That's just a good security posture for us to encourage users to have. Should we block this? No. But it shouldn't be the default behaviour IMO.
This is IMHO a good thing, but I wonder about the documentation impact. Today we often document the Hammer procedure. Should we modify those to all to refer to a chapter to install Hammer (somewhere)?
There was a problem hiding this comment.
+1 to everything Ewoud said here. I think users will expect the same plugins and features to be enabled on a containerized install that they used to get with the classic installer. If that's not going to be the case, our documentation should be loud about that.
91b2b95 to
08d9a70
Compare
|
tested the most recent version and that worked as well 😄 |
| help: Base flavor to use in this deployment. | ||
| choices: | ||
| - katello | ||
| - satellite |
There was a problem hiding this comment.
IMHO a Satellite user should not be able to select Katello, and a Katello user not Satellite
But we don't need to solve this right now
08d9a70 to
93e0c81
Compare
|
How should we approach testing this? In 2198602 @arvind4501 introduced flavor based tests. Are we going to duplicate all katello tests for satellite? Should we also deploy this in CI to verify it works? |
c15c197 to
93e0c81
Compare
|
@ekohl I looked into this with Claude's help. I don't think duplicating the I think the directory-based flavor tests work well for The feature marker approach seems like a better fit here. I'd propose:
|
|
I went ahead and pushed a commit with what I think this would look like so we can see if CI passes. |
|
Realized, that won't work as we don't serve the package. I'm not 100% sure how we can test this totally here. Is it okay without foreman_theme_satellite here? |
|
For the testing part, if we wil have exactly similar tests for |
fb0c9de to
1bfdd46
Compare
|
Switched to @arvind4501's approach — added a FLAVOR_TEST_DIRS mapping in conftest.py so the satellite flavor runs the katello test directory. Also cleaned up the commit history. |
|
Circling back on the two open threads here: 1. Feature set defaults (hammer, foreman-proxy) Eric's point about encouraging users to deploy proxy externally and install hammer on a separate node makes sense from a security posture perspective. But Ewoud and Jeremy raise a valid concern — users migrating from foreman-installer will expect the same features to be available out of the box. If we change the defaults, we need to be deliberate about it and make sure documentation reflects what's different and why. What should the actual outcome be here? Should the satellite flavor ship with hammer and foreman-proxy enabled by default to match existing user expectations, or should we take this as an opportunity to set new defaults and document the change prominently? 2. Testing theme-satellite The This means CI can't actually deploy with But I can also understand not liking that. Is there another alternative option? |
1bfdd46 to
a7a7cb5
Compare
|
Rebased on master to pick up the post_install refactor from #641. Also added the satellite flavor to the post-install message condition so it shows the admin credentials after deploy, same as katello. |
| --add-feature azure-rm \ | ||
| --add-feature google \ | ||
| --add-feature bmc |
There was a problem hiding this comment.
Shouldn't those be part of the flavor or am I misinterpreting why those would get enabled?
There was a problem hiding this comment.
right now they are optional, because it's a bit undecided which features will get enabled by default on new installs. this PR gives enough building blocks for future adjustment :)
| - katello | ||
| - satellite |
There was a problem hiding this comment.
We should not allow users to select between katello and satellite.
In #643 I started with a PoC how this could work
Feel free to implement this part in a follow up tho.
|
The test failures in the Satellite test seem related. Holler if you need help deciphering them. |
The satellite flavor provides a feature set matching what RPM-based Satellite ships by default, enabling proper downstream test coverage with foremanctl. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Map the satellite flavor to run katello flavor tests via FLAVOR_TEST_DIRS in conftest.py, so satellite deployments automatically pick up katello-specific test assertions. Add a satellite-tests CI job that deploys with --flavor satellite. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
a7a7cb5 to
06e8f42
Compare
The post_install refactor in theforeman#641 gated the credentials message on flavor == katello. The satellite flavor deploys the same Foreman stack and needs the same message. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
06e8f42 to
7e05f73
Compare
| - name: Downgrade openssl | ||
| run: | | ||
| for vm in quadlet client; do | ||
| vagrant ssh "$vm" -- sudo dnf downgrade -y openssl openssl-libs | ||
| done |
| - content/rpm | ||
| - remote-execution | ||
| - rh-cloud | ||
| - theme-satellite |
There was a problem hiding this comment.
since #694 is already in
| - theme-satellite | |
| - theme-satellite | |
| - webhooks |
|
@zjhuntin do you have time to further work on this? Or do you need any help? |
Summary
satelliteflavor (src/vars/flavors/satellite.yml) with the feature set for Satellite deploymentskatelloflavor: dropscontent/debandcontent/python, adds features that Satellite ships by defaultDetails
The
theme-satellitefeature requires a corresponding entry infeatures.yaml(orfeatures.d/) to take effect. Without one, it is silently ignored.Usage:
Test plan
--flavor satelliteon a CentOS 9 VM — all features resolved, 0 failuresforemanctl featuresshows correct enabled/available featureshammer ping— all services healthy🤖 Generated with Claude Code