{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/13748","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/13748/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/13748/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/13748/events","html_url":"https://github.com/kubernetes/kubernetes/issues/13748","id":105642345,"number":13748,"title":"Allow a service to resolve to a CNAME from DNS","user":{"login":"smarterclayton","id":1163175,"avatar_url":"https://avatars.githubusercontent.com/u/1163175?v=3","gravatar_id":"","url":"https://api.github.com/users/smarterclayton","html_url":"https://github.com/smarterclayton","followers_url":"https://api.github.com/users/smarterclayton/followers","following_url":"https://api.github.com/users/smarterclayton/following{/other_user}","gists_url":"https://api.github.com/users/smarterclayton/gists{/gist_id}","starred_url":"https://api.github.com/users/smarterclayton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smarterclayton/subscriptions","organizations_url":"https://api.github.com/users/smarterclayton/orgs","repos_url":"https://api.github.com/users/smarterclayton/repos","events_url":"https://api.github.com/users/smarterclayton/events{/privacy}","received_events_url":"https://api.github.com/users/smarterclayton/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/api","name":"area/api","color":"e1ed21"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/usability","name":"area/usability","color":"bfe5bf"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/priority/P2","name":"priority/P2","color":"fbca04"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/team/cluster","name":"team/cluster","color":"d2b48c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-09-09T17:10:14Z","updated_at":"2015-09-16T18:44:50Z","closed_at":null,"body":"A service that is represented by a real internet service is best resolved via DNS from internal name to external CNAME.  This feels like a new service type, but the use case would be:\r\n\r\nI have an external service \"oracle\" with dns name \"oracle-1.testdev.mycompany.com\".  I don't want to have to keep DNS in sync.  I don't want to create a different signing cert.  I just want \"oracle.mynamespace.svc.cluster.local\" to CNAME resolve to \"oracle-1.testdev.mycompany.com\".  I *might* want to resolve DNS periodically to the endpoints so I can load balance... but it's not a requirement."},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/140839199","html_url":"https://github.com/kubernetes/kubernetes/issues/13748#issuecomment-140839199","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/13748","id":140839199,"user":{"login":"smarterclayton","id":1163175,"avatar_url":"https://avatars.githubusercontent.com/u/1163175?v=3","gravatar_id":"","url":"https://api.github.com/users/smarterclayton","html_url":"https://github.com/smarterclayton","followers_url":"https://api.github.com/users/smarterclayton/followers","following_url":"https://api.github.com/users/smarterclayton/following{/other_user}","gists_url":"https://api.github.com/users/smarterclayton/gists{/gist_id}","starred_url":"https://api.github.com/users/smarterclayton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smarterclayton/subscriptions","organizations_url":"https://api.github.com/users/smarterclayton/orgs","repos_url":"https://api.github.com/users/smarterclayton/repos","events_url":"https://api.github.com/users/smarterclayton/events{/privacy}","received_events_url":"https://api.github.com/users/smarterclayton/received_events","type":"User","site_admin":false},"created_at":"2015-09-16T18:44:50Z","updated_at":"2015-09-16T18:44:50Z","body":"As a concrete reference, here's the design work we're doing on elements of\r\nhow services would cross namespaces and be promoted and discovered within\r\nOpenShift, as well as how an admin can control the exposure and binding of\r\nservices from on and off platform and manage dynamic provisioning:\r\n\r\n* https://docs.google.com/document/d/1JMGtLXAVMDCtuHf8HovaEuXzZJCBPU_x_SZrQuSekqg/edit?usp=sharing\r\n* https://docs.google.com/presentation/d/1-KpO0C_H4pqBK5t3FPmfrGT0yo-hYHZAQhOqzGpQCwc/edit?usp=sharing\r\n\r\nWe want to have very lightweight service-like objects in order to\r\naccomplish this.  Those lightweight objects might point to external cluster\r\nobjects or internal cluster objects, but we wanted to make it easy to\r\ndescribe the relationship between the local stub (or ref) and the remote\r\nservice (on or off cluster).  Subdivision of clusters is concretely\r\nhappening today, so an object ref across namespaces isn't sufficient to\r\ndeclare the desire to allow cluster subdivision boundaries to be breached\r\n(it's not enough for user A to say I want service to be exposed to B, B has\r\nto say they want it, and possibly admin C has to approve it).\r\n"}}