Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for domains #1534

Open
lubosmj opened this issue Mar 5, 2024 · 2 comments
Open

Add support for domains #1534

lubosmj opened this issue Mar 5, 2024 · 2 comments
Labels

Comments

@lubosmj
Copy link
Member

lubosmj commented Mar 5, 2024

Domains is an optional feature that allows multi-tenancy.

In the Pulp Container plugin, we need to deal with the fact that we have a single registry (a single source of truth, a remote server) that can be accessed by anyone. An open question is whether we should have a different namespace per each domain when serving the content or not. This would induce the requirement to reconsider redirects. Usually, CONTENT_PATH_PREFIX is a subject to change when dealing with domains' scopes.

https://docs.pulpproject.org/pulpcore/workflows/domains-multi-tenancy.html
https://docs.pulpproject.org/pulpcore/plugin_dev/plugin-writer/concepts/domains/domains_compatibility.html

Plugins adding domains support:
pulp/pulp_rpm#3106
pulp/pulp_ostree#346

@lubosmj
Copy link
Member Author

lubosmj commented Jun 7, 2024

Right now, we are issuing redirects, like this:

  • v2/repo/manifests/bla -> pulp/content/manifests/id/

What would we like to implement?

  1. v2/repo/manifests/bla -> pulp/default/content/manifests/id/ <----- bad, we do not know the domain ID from api-app
  2. v2/default/repo/manifests/bla -> pulp/default/content/manifests/id/ <----- bad, we are breaking the standardized Registry API
  3. No domains for pulp-container? Partial exclusion from the pulpcore's domain facility?

Needs more thinking...

@lubosmj
Copy link
Member Author

lubosmj commented Jun 7, 2024

The expansion to the domains' path will need to be identified on the pull level:

podman pull pulp.example.com/ipanova/busybox (no specified domain/namespace) -> podman pull pulp.example.com/default/ipanova/busybox

podman pull pulp.example.com/redhat/ipanova/busybox -> podman pull pulp.example.com/redhat/ipanova/busybox

The content-app path will be then explicitly retrieved from the API, like pulp/redhat/manifests/blabla.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Not Started
Development

No branches or pull requests

1 participant