{"action":"opened","issue":{"url":"https://api.github.com/repos/linkerd/linkerd/issues/1511","repository_url":"https://api.github.com/repos/linkerd/linkerd","labels_url":"https://api.github.com/repos/linkerd/linkerd/issues/1511/labels{/name}","comments_url":"https://api.github.com/repos/linkerd/linkerd/issues/1511/comments","events_url":"https://api.github.com/repos/linkerd/linkerd/issues/1511/events","html_url":"https://github.com/linkerd/linkerd/issues/1511","id":243552797,"number":1511,"title":"Don't require port to be an Int in HostColonPort","user":{"login":"adleong","id":3979810,"avatar_url":"https://avatars0.githubusercontent.com/u/3979810?v=4","gravatar_id":"","url":"https://api.github.com/users/adleong","html_url":"https://github.com/adleong","followers_url":"https://api.github.com/users/adleong/followers","following_url":"https://api.github.com/users/adleong/following{/other_user}","gists_url":"https://api.github.com/users/adleong/gists{/gist_id}","starred_url":"https://api.github.com/users/adleong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adleong/subscriptions","organizations_url":"https://api.github.com/users/adleong/orgs","repos_url":"https://api.github.com/users/adleong/repos","events_url":"https://api.github.com/users/adleong/events{/privacy}","received_events_url":"https://api.github.com/users/adleong/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-07-17T23:01:25Z","updated_at":"2017-07-17T23:01:25Z","closed_at":null,"body":"The HostColonPort matcher used by the hostportPfx and porthostPfx namers requires that the port be an Int.  For example `google.com:80`.  If we lift this restriction, then it would be able to accept port names like `foo.default:http`.  This would allow us to write dtabs that let users specify the destination port name in the Host/Authority header.  Ideally, we could update the standard k8s service mesh dtab to something like:\r\n\r\n```\r\n        /ph  => /$/io.buoyant.rinet ;                     # /ph/80/google.com -> /$/io.buoyant.rinet/80/google.com\r\n        /k8s => /#/io.l5d.k8s.http ;                      # /k8s/default/http/foo -> /#/io.l5d.k8s.http/default/http/foo\r\n        /host => /#/nsSvcPortToK8s ;                      # /host/default/foo/http -> /k8s/default/http/foo\r\n        /hp  => /host/default ;                           # /hp/foo/80 -> /host/default/foo/http\r\n        /hp  => /$/io.buoyant.http.domainToPathPfx/host ; # /hp/foo.default/http -> /host/default/foo/http\r\n        /ph  => /#/phToHp ;                               # /ph/http/foo.default -> /hp/foo.default/http\r\n        /svc => /ph/80 ;                                  # /svc/foo.default -> /ph/http/foo.default\r\n        /svc => /$/io.buoyant.porthostPfx/ph ;            # /svc/foo.default:http -> /ph/http/foo.default\r\n```\r\n\r\nWhich allows users to specify both the destination port and destination namespace `foo.<namespace>:<port>` (and defaults to `default` and `80` for namespace and port respectively)."}}
{"actor":{"display_login":"adleong"}}