Allow DnsPolicy=ClusterFirst for Pods with hostNetwork: true #17406

@ArtfulCoder

Description

With 1.1, we allow pods to be created with hostNetwork = true.
These pods should be allowed to use Cluster DNS, if the pod spec says so.

We have already wired the kube-proxy to support traffic from the host machine to be directed to kube-services. We should similarly allow cluster dns names to be looked up by pods with hostNetwork=true.

This way, pods can use hostNetwork = true and still leverage kubernetes' service discovery mechanisms.

I currently have a use case, where I am writing a GCE Firewall pod, that configures iptables on the nodes. This pod needs to run with hostNetwork=true to configure iptables and the same time needs to look up a kubernetes pod service to read some metadata.
Refer to #17405
https://github.com/ArtfulCoder/kubernetes/blob/prototype2/contrib/gce-firewall/client.yaml#L19

Currently, I have hard-coded a Kubernetes service-ip since we dont have cluster dns for hostNetworked-pods. This is hardly a workable solution.

I would imagine that third-party network plugins would also face similar issues if they try to do a clean implementation.

Option 2:
The other option is to query API server to do service discovery. But this doesn't seem like a clean solution, especially since we have put in so much effort into our DNS based service discovery approach.