{"action":"created","issue":{"url":"https://api.github.com/repos/EdgeNet-project/headnode/issues/45","repository_url":"https://api.github.com/repos/EdgeNet-project/headnode","labels_url":"https://api.github.com/repos/EdgeNet-project/headnode/issues/45/labels{/name}","comments_url":"https://api.github.com/repos/EdgeNet-project/headnode/issues/45/comments","events_url":"https://api.github.com/repos/EdgeNet-project/headnode/issues/45/events","html_url":"https://github.com/EdgeNet-project/headnode/issues/45","id":345558713,"node_id":"MDU6SXNzdWUzNDU1NTg3MTM=","number":45,"title":"Need a way to share popular ports","user":{"login":"rickmcgeer","id":656259,"node_id":"MDQ6VXNlcjY1NjI1OQ==","avatar_url":"https://avatars3.githubusercontent.com/u/656259?v=4","gravatar_id":"","url":"https://api.github.com/users/rickmcgeer","html_url":"https://github.com/rickmcgeer","followers_url":"https://api.github.com/users/rickmcgeer/followers","following_url":"https://api.github.com/users/rickmcgeer/following{/other_user}","gists_url":"https://api.github.com/users/rickmcgeer/gists{/gist_id}","starred_url":"https://api.github.com/users/rickmcgeer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rickmcgeer/subscriptions","organizations_url":"https://api.github.com/users/rickmcgeer/orgs","repos_url":"https://api.github.com/users/rickmcgeer/repos","events_url":"https://api.github.com/users/rickmcgeer/events{/privacy}","received_events_url":"https://api.github.com/users/rickmcgeer/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"rickmcgeer","id":656259,"node_id":"MDQ6VXNlcjY1NjI1OQ==","avatar_url":"https://avatars3.githubusercontent.com/u/656259?v=4","gravatar_id":"","url":"https://api.github.com/users/rickmcgeer","html_url":"https://github.com/rickmcgeer","followers_url":"https://api.github.com/users/rickmcgeer/followers","following_url":"https://api.github.com/users/rickmcgeer/following{/other_user}","gists_url":"https://api.github.com/users/rickmcgeer/gists{/gist_id}","starred_url":"https://api.github.com/users/rickmcgeer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rickmcgeer/subscriptions","organizations_url":"https://api.github.com/users/rickmcgeer/orgs","repos_url":"https://api.github.com/users/rickmcgeer/repos","events_url":"https://api.github.com/users/rickmcgeer/events{/privacy}","received_events_url":"https://api.github.com/users/rickmcgeer/received_events","type":"User","site_admin":false},"assignees":[{"login":"rickmcgeer","id":656259,"node_id":"MDQ6VXNlcjY1NjI1OQ==","avatar_url":"https://avatars3.githubusercontent.com/u/656259?v=4","gravatar_id":"","url":"https://api.github.com/users/rickmcgeer","html_url":"https://github.com/rickmcgeer","followers_url":"https://api.github.com/users/rickmcgeer/followers","following_url":"https://api.github.com/users/rickmcgeer/following{/other_user}","gists_url":"https://api.github.com/users/rickmcgeer/gists{/gist_id}","starred_url":"https://api.github.com/users/rickmcgeer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rickmcgeer/subscriptions","organizations_url":"https://api.github.com/users/rickmcgeer/orgs","repos_url":"https://api.github.com/users/rickmcgeer/repos","events_url":"https://api.github.com/users/rickmcgeer/events{/privacy}","received_events_url":"https://api.github.com/users/rickmcgeer/received_events","type":"User","site_admin":false},{"login":"JustinCappos","id":857871,"node_id":"MDQ6VXNlcjg1Nzg3MQ==","avatar_url":"https://avatars2.githubusercontent.com/u/857871?v=4","gravatar_id":"","url":"https://api.github.com/users/JustinCappos","html_url":"https://github.com/JustinCappos","followers_url":"https://api.github.com/users/JustinCappos/followers","following_url":"https://api.github.com/users/JustinCappos/following{/other_user}","gists_url":"https://api.github.com/users/JustinCappos/gists{/gist_id}","starred_url":"https://api.github.com/users/JustinCappos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JustinCappos/subscriptions","organizations_url":"https://api.github.com/users/JustinCappos/orgs","repos_url":"https://api.github.com/users/JustinCappos/repos","events_url":"https://api.github.com/users/JustinCappos/events{/privacy}","received_events_url":"https://api.github.com/users/JustinCappos/received_events","type":"User","site_admin":false},{"login":"aaaaalbert","id":3806695,"node_id":"MDQ6VXNlcjM4MDY2OTU=","avatar_url":"https://avatars3.githubusercontent.com/u/3806695?v=4","gravatar_id":"","url":"https://api.github.com/users/aaaaalbert","html_url":"https://github.com/aaaaalbert","followers_url":"https://api.github.com/users/aaaaalbert/followers","following_url":"https://api.github.com/users/aaaaalbert/following{/other_user}","gists_url":"https://api.github.com/users/aaaaalbert/gists{/gist_id}","starred_url":"https://api.github.com/users/aaaaalbert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaaaalbert/subscriptions","organizations_url":"https://api.github.com/users/aaaaalbert/orgs","repos_url":"https://api.github.com/users/aaaaalbert/repos","events_url":"https://api.github.com/users/aaaaalbert/events{/privacy}","received_events_url":"https://api.github.com/users/aaaaalbert/received_events","type":"User","site_admin":false},{"login":"m-hemmings","id":6546205,"node_id":"MDQ6VXNlcjY1NDYyMDU=","avatar_url":"https://avatars2.githubusercontent.com/u/6546205?v=4","gravatar_id":"","url":"https://api.github.com/users/m-hemmings","html_url":"https://github.com/m-hemmings","followers_url":"https://api.github.com/users/m-hemmings/followers","following_url":"https://api.github.com/users/m-hemmings/following{/other_user}","gists_url":"https://api.github.com/users/m-hemmings/gists{/gist_id}","starred_url":"https://api.github.com/users/m-hemmings/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m-hemmings/subscriptions","organizations_url":"https://api.github.com/users/m-hemmings/orgs","repos_url":"https://api.github.com/users/m-hemmings/repos","events_url":"https://api.github.com/users/m-hemmings/events{/privacy}","received_events_url":"https://api.github.com/users/m-hemmings/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2018-07-29T20:04:56Z","updated_at":"2018-07-30T14:04:39Z","closed_at":null,"author_association":"COLLABORATOR","body":"An important use case is distributed services, which means that many people will want to access popular ports.  Currently, users just grab ports and get them or they don't.  Here is one strawman idea:\r\n1. Develop and deploy an nginx DaemonSet that will grab ports 80, 81, 88, 8080, 8081, 8888, 9001,...\r\n2. Create idea of a \"slice\" which is in a namespace.  When a user wants one of these ports, he creates a slice on the _portal_.\r\n3. Every 10 minutes, the nginx service on each node wakes up, calls the portal, and requests the current slice set.  It then sets up the forwarding rules appropriately for the containers (note it will need the container names associated with the slice as well)"},"comment":{"url":"https://api.github.com/repos/EdgeNet-project/headnode/issues/comments/408874959","html_url":"https://github.com/EdgeNet-project/headnode/issues/45#issuecomment-408874959","issue_url":"https://api.github.com/repos/EdgeNet-project/headnode/issues/45","id":408874959,"node_id":"MDEyOklzc3VlQ29tbWVudDQwODg3NDk1OQ==","user":{"login":"JustinCappos","id":857871,"node_id":"MDQ6VXNlcjg1Nzg3MQ==","avatar_url":"https://avatars2.githubusercontent.com/u/857871?v=4","gravatar_id":"","url":"https://api.github.com/users/JustinCappos","html_url":"https://github.com/JustinCappos","followers_url":"https://api.github.com/users/JustinCappos/followers","following_url":"https://api.github.com/users/JustinCappos/following{/other_user}","gists_url":"https://api.github.com/users/JustinCappos/gists{/gist_id}","starred_url":"https://api.github.com/users/JustinCappos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JustinCappos/subscriptions","organizations_url":"https://api.github.com/users/JustinCappos/orgs","repos_url":"https://api.github.com/users/JustinCappos/repos","events_url":"https://api.github.com/users/JustinCappos/events{/privacy}","received_events_url":"https://api.github.com/users/JustinCappos/received_events","type":"User","site_admin":false},"created_at":"2018-07-30T14:04:39Z","updated_at":"2018-07-30T14:04:39Z","author_association":"COLLABORATOR","body":"What mechanisms exist and are easy to use?  Can you cause a container to be restricted to a set of ports?  (We used this in Seattle and then pre-assigned ports to containers.  It really isn't the best mechanism, but was enough to get us started.)"}}
{"actor":{"display_login":"JustinCappos"}}