Issue 1:
What keywords did you search in Kubernetes issues before filing this one? (If you have found any duplicates, you should instead reply there.):

custom federation dns provider

custom federated dns provider

federation no dns provider

federated no dns provider

Is this a BUG REPORT or FEATURE REQUEST? (choose one): Feature request

It would be really useful to be able to run a completely private federated kubernetes cluster without having to rely on a cloud dns provider. We currently have internal DNS already in place and therefore don't need a DNS cloud provider.

Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.7", GitCommit:"a2cba278cba1f6881bb0a7704d9cac6fca6ed435", GitTreeState:"clean", BuildDate:"2016-09-12T23:15:30Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.7", GitCommit:"a2cba278cba1f6881bb0a7704d9cac6fca6ed435", GitTreeState:"clean", BuildDate:"2016-09-12T23:08:43Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"}

Environment:

Cloud provider or hardware configuration: Our own bare metal installation. Managed with puppet.

OS (e.g. from /etc/os-release):

PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Kernel (e.g. uname -a): Linux kube-master-a.lab 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux

Install tools: Just docker, kubernetes binaries from the releases page and some hand written systemd service files.

Others:

What happened:

When you start up the federation-controller-manager inside a kubernetes cluster, the logs show the following:

$ kubectl --namespace=federation logs federation-controller-manager-328475866-0k651
I0920 11:52:15.328411 1 controllermanager.go:74] v1.3.7
I0920 11:52:15.468626 1 plugins.go:82] No DNS provider specified.
E0920 11:52:15.481563 1 controllermanager.go:128] Failed to start service controller: ServiceController should not be run without a dnsprovider.

Upon further inspection, it appears you have to pass in the --dns-provider option, with the only 2 valid options being google-clouddns or aws-route53.

What you expected to happen:

I was hoping to be able to use something other than google-clouddns or aws-route53. We currently already have an internal DNS infrastructure in place. It would even be good if the federated DNS could somehow be handled entirely within the kubernetes cluster (possibly an extra kube-dns pod that runs in the federation namespace hence knowing about all the other clusters?)

How to reproduce it (as minimally and precisely as possible):

Start up the federation-controller-manager without passing the --dns-provider option.

Issue 2:
There may be scenarios where there is a need to federate k8s clusters on private-cloud (on-premise) environments.

Listed below are some of the tasks to achieve the scenario above

Federation control plane deployment itself should be able to be deployed in non-cloud environments. #40516

Should be possible to disable persistent storage for etcd. #40862

Ability to configure desired DNS provider. Public DNS servers (AWS Route53/ Google CloudDNS) or Private DNS servers (e.g. CoreDNS) #40528

Document Federation CoreDNS support. kubernetes/website#2810

coredns federation provider should support etcd with TLS #47049

Document using hosted DNS providers (AWS Route53/ Google CloudDNS) in non-cloud environments.