Inedo Community Forums Forums
    • Recent
    • Tags
    • Popular
    • Login

    Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

    If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

    ProGet: Strategies for (more) flexible feed naming

    Scheduled Pinned Locked Moved Support
    3 Posts 2 Posters 9 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • G Offline
      gbeckett
      last edited by

      Hi all,

      I'm currently setting up a new ProGet instance, migrating from a relative large instance with a few "catch all" feeds, to a new install with a more granular set of feeds. Ideally, I'd like to implement consistent set of URL patterns, including possible forms of 'namespacing' for multiple tenants, and clear separation between repository types (including in paths). We use CI/CD heavily to validate e.g., registry usage; so being able to create some consistent patterns would be great.

      Based on the current options and documentation, I understand that the following patterns apply (by default);

      • single "URL segment" feed name, no urlencodable characters (i.e., no / allowed)
      • always prefixed with a feed type, though depends on the feed type, e.g.;
        • nuget for NuGet, PowerShell, Chocolatey
        • helm, npm, etc. for their respective package managers
        • Docker has no path prefix
      • alternate names can be defined, but have the same restrictions

      This can lead to somewhat restrictive and sometimes confusing feed URLs (e.g., the debian prefix being used for general apt-compatible systems, the Docker feeds having no prefix at all).

      I'm therefore wondering if there are alternative strategies to allow more flexible feed naming? Possibly via internal configuration or otherwise?

      One option I'm considering is layer a proxy in front of ProGet, to provide the URL rewriting to map to ProGet-compatible names. e.g.,;

      • proget.org.com/ps/tenant-a to proget.org.com/nuget/ps-tenant-a
        or
      • proget.org.com/docker/tenant-a to proget.org.com/docker-tenant-a

      I would love to head your thoughts.

      Best,
      Cyril

      stevedennisS 1 Reply Last reply Reply Quote 0
      • stevedennisS Offline
        stevedennis inedo-engineer @gbeckett
        last edited by

        Hi @gbeckett ,

        There are Feed Names (which you can configure) and API endpoints (which you cannot configure).

        Our general guidance on feed names is internal-nuget or public-nuget, but we've seen cases where a lot of feeds are needed. I suppose tenant namespace like tenant1-nuget might work too. But like naming of everything else, you'll figure it out as you go.

        While you can't change API endpoints, you could use the alternative /endpoints url if you really wanted. So instead of /nuget/public-nuget it would be /endpoints/public-nuget. Honestly I wouldn't bother... it's just a URL that no one really sees, and that's actually going to make it more of a pain to support. That's why we don't expose this.

        Some ecosystems (like Docker) only support one registry per domain/port, which is why Docker feeds have no prefix. We work-around this by using namespaces.

        One option I'm considering is layer a proxy in front of ProGet, to provide the URL rewriting to map to ProGet-compatible names.

        Please don't do this :) We do not recommend nor do we support URL rewriting like this. People have figured out how to do it, but it causes lot of headaches and it will be painful to debug. Which is why we don't support it. Again... it's just a URL that no one really sees after you enter it.

        Hope that helps!

        Thanks,
        Steve

        1 Reply Last reply Reply Quote 0
        • G Offline
          gbeckett
          last edited by

          Thanks for the tips. That Docker constraint is particularly good to know, I hadn't realized!

          We do have a rather large amount of feeds to manage, including a (growing) set of feeds we use as local mirrors. I'll see if we can find an alternative solution that works for us...

          1 Reply Last reply Reply Quote 0

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          • 1 / 1
          • First post
            Last post
          Inedo Website Home • Support Home • Code of Conduct • Forums Guide • Documentation