Skip to content

Make feature listing flavor-aware - #873

Open
jakduch wants to merge 1 commit into
theforeman:masterfrom
jakduch:feature/539-flavor-aware-features
Open

jakduch wants to merge 1 commit into
theforeman:masterfrom
jakduch:feature/539-flavor-aware-features

Conversation

@jakduch

@jakduch jakduch commented Sep 26, 2026

Copy link
Copy Markdown
Contributor

Why are you introducing these changes? (Problem description, related links)

foremanctl features currently lists server-only features on proxy deployments and vice versa.

Fixes #539

What are the changes introduced in this pull request?

  • Add optional flavor applicability to feature metadata.
  • Filter the feature list by the persisted flavor after a deployment completes.
  • Keep showing the complete catalog before the first deployment.
  • Document and test the new metadata.

How to test this pull request

  • Run python -m pytest --confcutdir=tests/unit tests/unit/filter_test.py -q.
  • Run ruff check tests/ src/ development/scripts/ inventories/.
  • Run ansible-lint playbooks/features/features.yaml from src/.
  • Run foremanctl features before a deployment and after Katello and content proxy deployments.

Checklist

  • Tests added/updated (if applicable)
  • Documentation updated (if applicable)

@coderabbitai

coderabbitai Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 54 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Advanced

Run ID: 88b21d1b-bde4-43f3-9a4d-08f046cc78d7

📥 Commits

Reviewing files that changed from the base of the PR and between 6c79648 and 8297720.

📒 Files selected for processing (7)
  • docs/developer/feature-metadata.md
  • src/features.yaml
  • src/filter_plugins/foremanctl.py
  • src/playbooks/features/features.yaml
  • tests/conftest.py
  • tests/unit/conftest_test.py
  • tests/unit/filter_test.py

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jakduch
jakduch force-pushed the feature/539-flavor-aware-features branch from 70439d6 to 3ba4387 Compare September 26, 2026 11:42
@jakduch

jakduch commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

The matrix failures were all caused by the test harness using the flavor-filtered output as the global feature catalog. That made valid but hidden features such as iop and container-gateway look like invalid test markers. I kept enabled/available features flavor-aware, but now validate marker names against the complete metadata catalog. The focused 20 tests and Ruff pass; CI is running again.

@jakduch
jakduch force-pushed the feature/539-flavor-aware-features branch from 3ba4387 to 3391cd0 Compare September 26, 2026 12:23
@jakduch

jakduch commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

The full matrix exposed one more catalog source: the valid content/* markers live in src/features.d/content.yaml, not the base file. I updated marker validation to merge the base catalog with every features.d/*.yaml overlay and extended the regression test to cover an overlay feature. The focused unit suite now passes all 20 tests and Ruff is clean.

@jakduch
jakduch force-pushed the feature/539-flavor-aware-features branch from 3391cd0 to 8297720 Compare September 26, 2026 22:08
@jakduch

jakduch commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

I checked the exact-head failure in the proxy fapolicyd job. The test host started rejecting trusted /bin/bash executions with Operation not permitted; the feature-catalog change was not involved. The same matrix later passed in this independent job, so I triggered a complete pipeline with an unchanged tree: run 36275312513.

@jakduch

jakduch commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

The complete exact-head matrix is green now: run 36275312513.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

foremanctl features is flavor blind

1 participant