I replied to the private email that Mike sent. But I am also pasting the reply here for posterity.
Hi Mike,
You can indeed setup federation on a bare metal environment. However, here are a couple of caveats to be aware of:
1. We only have DNS provider implementations for AWS Route53 and Google Cloud DNS. This means, you can setup federation on your local cluster, but if you want to have Federated Services working your cluster/federation needs to be able to access the APIs for these providers. To reemphasize, if your bare metal cluster can talk to one of these API endpoints everything should work. Otherwise Federated Services won't work, other API resources will. But having said that CoreDNS implementation of DNS provider is in the works and once that is in the release, you could get Federated Services running completely on bare-metal/on-prem.
2. Federated Ingress is only implemented for GCP (GKE and Kubernetes clusters in GCE).
Except these two resources, everything in federation works in complete on-prem/bare metal environments.
You said you are setting up your cluster manually. Could you please elaborate on how you are doing that? For example, how does your kubelet reach your API server? What credentials does it use? The reason why I ask is, you could use the same credentials in your kubeconfig the steps discussed in the linked tutorial above.
(I wrote the above line in my original email, but after reading this again I am kind of guessing what's going on here. Are you running all the nodes on a single machine? If that's the case, then read below)
I think if you are going this manual, you need to use Kelsey's manual :P The differences are: