Skip to content

Add Pulp plugins section#57

Open
ogajduse wants to merge 2 commits into
theforeman:masterfrom
ogajduse:add-pulp-plugins-section
Open

Add Pulp plugins section#57
ogajduse wants to merge 2 commits into
theforeman:masterfrom
ogajduse:add-pulp-plugins-section

Conversation

@ogajduse
Copy link
Copy Markdown
Member

@ogajduse ogajduse commented Apr 20, 2026

Summary

Adds a dedicated pulp_plugins section to the Foreman plugin overview website for Pulp plugins that integrate with the Foreman ecosystem.

Changes

  • fpo.py: Added PulpPlugin dataclass with:
    • Auto-generated naming: pulp_{short_name}pulp_smart_proxy
    • Auto-derived RPM package names: python-pulp-{name} (with dashes)
    • Auto-generated tests from pulp plugin_template: ci.yml
    • Uses pulpcore-packaging repository instead of foreman-packaging
    • No deb packages
    • installer: false by default
  • config.yaml: Added pulp_plugins section with first entry: smart_proxy
  • process: Added rendering logic to display Pulp Plugins section after Libraries

First Plugin

  • pulp_smart_proxy: Python-based Pulp plugin that enables Pulp to function as a Foreman Smart Proxy
  • Package: python-pulp-smart-proxy in pulpcore-packaging
  • Included in Red Hat Satellite
  • Maintained by theforeman/pulp team

Related: Issue #58 proposes extending auto-generation to other plugin types

🤖 Generated with Claude Code

Comment thread fpo.py Outdated
Comment thread fpo.py Outdated
Comment thread fpo.py Outdated
Comment thread fpo.py Outdated
Comment thread fpo.py Outdated
Comment thread fpo.py Outdated
@ogajduse
Copy link
Copy Markdown
Member Author

Great review comments, thank you, @ekohl. It's ready for re-review.

@ogajduse ogajduse requested a review from ekohl April 21, 2026 09:30
Copy link
Copy Markdown
Member

@ekohl ekohl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some further suggestions to keep it short, but overall 👍

Comment thread config.yaml Outdated
satellite: true
tests:
github:
Python: ci.yml
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is part of the plugin template (https://github.com/pulp/plugin_template/blob/main/.github/workflows/ci.yml) so is this something that we should encode in PulpPlugin in fpo.py? I'm also fine keeping that out of scope and leaving it for the next plugin we add.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good suggestion. I'd say it still fits within the scope of this PR. Implemented.

I also raised #58 to consider whether we want to implement the same for the other classes.

Comment thread fpo.py Outdated
Comment thread fpo.py Outdated
Comment thread process Outdated
Comment thread config.yaml Outdated
# Pulp plugins that integrate with Foreman ecosystem
# Packaged in pulpcore-packaging, not foreman-packaging
smart_proxy:
rpm: python-pulp-smart-proxy
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd also suggest to implement a method to derive the package name from the plugin name in PulpPlugin, taking inspiration from:

if self.rpm is True:
self.rpm = f'rubygem-{self.name}'
if self.deb is True:
self.deb = f'ruby-{self.name.replace("_", "-")}'

Then simplify this

Suggested change
rpm: python-pulp-smart-proxy
rpm: true

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea. 👍 Updated

Add dedicated section for Pulp plugins that integrate with Foreman
ecosystem. These are Python-based plugins packaged in pulpcore-packaging,
distinct from libraries and Smart Proxy modules.

Changes based on review feedback:
- Auto-derive RPM package name from plugin name (python-pulp-{name})
- Auto-generate default tests (ci.yml from pulp plugin_template)
- Remove unused rpm_directory and deb_directory fields
- Simplify rpm_url property to use pulpcore-packaging directly
- Always render Pulp Plugins section (no conditional checks)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@ogajduse ogajduse force-pushed the add-pulp-plugins-section branch from b498066 to 50a30e0 Compare April 23, 2026 13:31
@ogajduse ogajduse requested a review from ekohl April 23, 2026 13:35
Comment thread config.yaml Outdated
# Packaged in pulpcore-packaging, not foreman-packaging
smart_proxy:
rpm: true
github_team: 'theforeman/pulp'
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is incorrect. Do we want to add pulp_smart_proxy to the "foremanctl" team?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that makes sense, yeah

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(I did that now in the repo)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed to theforeman/foremanctl

The pulp_smart_proxy plugin is now managed by the foremanctl team,
as confirmed in the review discussion.
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.

3 participants