{"action":"opened","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/25747","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/25747/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/25747/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/25747/events","html_url":"https://github.com/kubernetes/kubernetes/issues/25747","id":155285558,"number":25747,"title":"What is the current preferred way to implement a name-based ingress LB on Bare Metal?","user":{"login":"dcowden","id":1297923,"avatar_url":"https://avatars.githubusercontent.com/u/1297923?v=3","gravatar_id":"","url":"https://api.github.com/users/dcowden","html_url":"https://github.com/dcowden","followers_url":"https://api.github.com/users/dcowden/followers","following_url":"https://api.github.com/users/dcowden/following{/other_user}","gists_url":"https://api.github.com/users/dcowden/gists{/gist_id}","starred_url":"https://api.github.com/users/dcowden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcowden/subscriptions","organizations_url":"https://api.github.com/users/dcowden/orgs","repos_url":"https://api.github.com/users/dcowden/repos","events_url":"https://api.github.com/users/dcowden/events{/privacy}","received_events_url":"https://api.github.com/users/dcowden/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-05-17T15:12:55Z","updated_at":"2016-05-17T15:12:55Z","closed_at":null,"body":"For k8s clusters that are running on bare metal ( for example, on a single developer workstation), we need to implement a dynamic, ingress loadbalancer. \r\n\r\nDesired functionality:\r\n\r\n1. map inbound host names, or contexts, to an internal service\r\n2. automatically detect new backend services and reconfigure the proxy accordingly\r\n3. use new ingress controllers, so that our production configuration is consistent with development\r\n4. expose  a status page showing all of the backends and their status\r\n5. do SSL termination, using different SSL certificates for the various host names.\r\n\r\nI have found two possible solutions:\r\n\r\nThe 'service-loadbalancer' project here:\r\nhttps://github.com/kubernetes/contrib/tree/master/service-loadbalancer\r\n\r\nAnd the nginx-ingress-controller here:\r\nhttps://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx\r\n\r\n**Question 1**:  Which of these is preferred, and why?  \r\n\r\n\r\n**Question 2**: Is it possible with either solution to implement TLS termination on the loadbalancer, using different certificates for different host names?  I can see how to implement, for example, foo.example.com and bar.example.com, but how would i implement foo.blah.com and foo.bar.com?  It is possible to configure nginx to do this, but i cannot see how to configure an ingress to handle it, since each ingress can only have one TLS secret?\r\n\r\n"}}