{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues/329","repository_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2","labels_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues/329/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues/329/comments","events_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues/329/events","html_url":"https://github.com/kubernetes-sigs/federation-v2/issues/329","id":370746716,"node_id":"MDU6SXNzdWUzNzA3NDY3MTY=","number":329,"title":"Provide More Flexibility in Federated Service DNS Naming","user":{"login":"danehans","id":1878195,"node_id":"MDQ6VXNlcjE4NzgxOTU=","avatar_url":"https://avatars3.githubusercontent.com/u/1878195?v=4","gravatar_id":"","url":"https://api.github.com/users/danehans","html_url":"https://github.com/danehans","followers_url":"https://api.github.com/users/danehans/followers","following_url":"https://api.github.com/users/danehans/following{/other_user}","gists_url":"https://api.github.com/users/danehans/gists{/gist_id}","starred_url":"https://api.github.com/users/danehans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danehans/subscriptions","organizations_url":"https://api.github.com/users/danehans/orgs","repos_url":"https://api.github.com/users/danehans/repos","events_url":"https://api.github.com/users/danehans/events{/privacy}","received_events_url":"https://api.github.com/users/danehans/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":11,"created_at":"2018-10-16T18:42:18Z","updated_at":"2018-12-08T22:14:34Z","closed_at":"2018-12-06T06:07:15Z","author_association":"CONTRIBUTOR","body":"I am using Federated Service DNS with [ExternalDNS](https://github.com/kubernetes-incubator/external-dns) to expose a `Service` from an Istio service mesh. The Istio `Gateway` resource is used to expose mesh applications outside the Kubernetes cluster. The `Gateway` resource is front-ended by a Kubernetes `Service`. More details can be found [here](https://istio.io/docs/examples/bookinfo/#determining-the-ingress-ip-and-port). \r\n\r\n`MultiClusterServiceDNSRecord` uses the `name` field to match the correct `Service` resource for creating an external DNS name and for the DNS A/TXT resource record prefix. For example:\r\n\r\n__Service__:\r\n```\r\napiVersion: v1\r\nkind: Service\r\nmetadata:\r\n<SNIP>\r\n  labels:\r\n    app: istio-ingressgateway\r\n    chart: gateways-1.0.1\r\n    heritage: Tiller\r\n    istio: ingressgateway\r\n    release: RELEASE-NAME\r\n  name: istio-ingressgateway\r\n  namespace: istio-system\r\n<SNIP>\r\nspec:\r\n<SNIP>\r\n  selector:\r\n    app: istio-ingressgateway\r\n    istio: ingressgateway\r\n  sessionAffinity: None\r\n  type: LoadBalancer\r\nstatus:\r\n  loadBalancer:\r\n    ingress:\r\n    - ip: $LB_IP\r\n```\r\n\r\n__MultiClusterServiceDNSRecord__:\r\n```\r\napiVersion: multiclusterdns.federation.k8s.io/v1alpha1\r\nkind: MultiClusterServiceDNSRecord\r\nmetadata:\r\n  name: istio-ingressgateway \r\n  namespace: istio-system\r\nspec:\r\n  federationName: federation-system\r\n  dnsSuffix: daneyon.com\r\n  recordTTL: 300\r\n```\r\n\r\n__ExternalDNS Resource Records__:\r\n```\r\nNAME                                                                                      TYPE  TTL    DATA\r\ndaneyon.com.                                                                              NS    21600  ns-cloud-c1.googledomains.com.,ns-cloud-c2.googledomains.com.,ns-cloud-c3.googledomains.com.,ns-cloud-c4.googledomains.com.\r\ndaneyon.com.                                                                              SOA   21600  ns-cloud-c1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300\r\nistio-ingressgateway.istio-system.federation-system.svc.daneyon.com.                      A     300    $LB_IP\r\nistio-ingressgateway.istio-system.federation-system.svc.daneyon.com.                      TXT   300    \"heritage=external-dns,external-dns/owner=my-identifier\"\r\nistio-ingressgateway.istio-system.federation-system.svc.us-west1.daneyon.com.             A     300    $LB_IP\r\nistio-ingressgateway.istio-system.federation-system.svc.us-west1.daneyon.com.             TXT   300    \"heritage=external-dns,external-dns/owner=my-identifier\"\r\nistio-ingressgateway.istio-system.federation-system.svc.us-west1-b.us-west1.daneyon.com.  A     300    $LB_IP\r\nistio-ingressgateway.istio-system.federation-system.svc.us-west1-b.us-west1.daneyon.com.  TXT   300    \"heritage=external-dns,external-dns/owner=my-identifier\"\r\n```\r\n\r\nInstead of creating A/TXT records in the form of `istio-ingressgateway.istio-system.federation-system.svc.us-west1-b.us-west1.daneyon.com`, I would prefer these records represent the app I am trying to expose instead of the Istio Ingress Gateway. Can the `name` field in `MultiClusterServiceDNSRecord` either:\r\n\r\nA. Only be used to match the `Service` and use annotations or labels to provide the DNS record prefix.\r\nB. Only be used as the DNS record prefix and use annotations or labels to match the `Service`."},"comment":{"url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues/comments/445493898","html_url":"https://github.com/kubernetes-sigs/federation-v2/issues/329#issuecomment-445493898","issue_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues/329","id":445493898,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NTQ5Mzg5OA==","user":{"login":"danehans","id":1878195,"node_id":"MDQ6VXNlcjE4NzgxOTU=","avatar_url":"https://avatars3.githubusercontent.com/u/1878195?v=4","gravatar_id":"","url":"https://api.github.com/users/danehans","html_url":"https://github.com/danehans","followers_url":"https://api.github.com/users/danehans/followers","following_url":"https://api.github.com/users/danehans/following{/other_user}","gists_url":"https://api.github.com/users/danehans/gists{/gist_id}","starred_url":"https://api.github.com/users/danehans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danehans/subscriptions","organizations_url":"https://api.github.com/users/danehans/orgs","repos_url":"https://api.github.com/users/danehans/repos","events_url":"https://api.github.com/users/danehans/events{/privacy}","received_events_url":"https://api.github.com/users/danehans/received_events","type":"User","site_admin":false},"created_at":"2018-12-08T22:14:34Z","updated_at":"2018-12-08T22:14:34Z","author_association":"CONTRIBUTOR","body":"@shashidharatd I'm not fully convinced this should be closed yet. I feel we can still provide a better UX. This is the ServiecDNSRecord that I must use for the federated istio use case:\r\n```\r\napiVersion: multiclusterdns.federation.k8s.io/v1alpha1\r\nkind: ServiceDNSRecord\r\nmetadata:\r\n  name: istio-ingressgateway\r\n  namespace: istio-system\r\nspec:\r\n  domainRef: external\r\n  dnsPrefix: bookinfo\r\n  externalName: bookinfo\r\n  recordTTL: 300\r\n```\r\n\r\nIf `externalName` is specified, what are your thoughts about also creating a CNAME record like what  `dnsPrefix` provides?"}}
{"actor":{"display_login":"danehans"}}