Use Pulp to serve multiple endpoints

I am currently using the oci-pulp setup to server file content, rpm content en container content.

They all end up in one url at for example my.pulp.instance/pulp/content. This tends to get bloated and confusing

What i would like to achieve is to separate the different contents in 3 different url’s, namely:

  • rpm.pulp.instance
  • file.pulp.instance
  • registry.pulp.instance

And still use the same storage backend.

How can i achieve such a set-up, or how do other solve this situation ? What are the best practices when you serve different contents ?

I don’t think there is a solution for that.
It sounds more like a feature request at that point. We are currently working on the possibility to host the content app via multiple fqdn. But i think that is not quite what you asked for here.

My suggestion is not exactly what you asked for, but trivial to do: Simply enforce a base path convention that goes something like:

pulp.instance/pulp/content/rpm/my_rpm_repo1
pulp.instance/pulp/content/rpm/my_rpm_repo2
pulp.instance/pulp/content/file/my_file_repo1
pulp.instance/pulp/content/file/my_file_repo2
pulp.instance/pulp/content/registry/my_container_repo1

Is that good enough?

I already got a base path convention going on, but that doesn’t suffice, as in the end the content is still shown. Which i am trying to separate for the end users.

I guess I want something more complex where you would have a backend where the artifacts are stored/maintained, and multiple endpoints which can serve one or more of the plugin contents on a specified fqdn.

However that feels over engineered for my use-case, and in this case it would be enough if i can get a different fqdn endpoint for each content plugin.

in the end serving content at the mentioned fqdn’s

rpm.pulp.instance
file.pulp.instance
registry.pulp.instance

maybe the combination of a path convention with some nginx redirects/rewrites could solve this case. But then i should still be able to change the nginx configuration of the oci environment.

@x9c4 I don’t know enough about domains to be sure, but if it is about hiding different types of content to different types of users, might domains be a solution here?

Of course not all plugins support domains, so you may need to wait for Pulp 4 to come out before this becomes an option…

1 Like

With domains you also only serve content at different “subdirectories” on the same server address.
And for “hiding” respectively restricting content, there are content guards.

2 Likes