From c8179efc202ab7094c937ddff501edb514746684 Mon Sep 17 00:00:00 2001 From: Jonathan MacMillan Date: Thu, 23 Mar 2017 14:53:09 -0700 Subject: [PATCH] [Federation] Add a note about DNS API scopes to the Federation tutorial (#2943) * [Federation] Add a note about DNS API scopes to the Federation tutorial Not sure this is the right place for this, but I wanted to get the text out somewhere before I forgot about it. * Update set-up-cluster-federation-kubefed.md * Update set-up-cluster-federation-kubefed.md * Fix formatting of code blocks. --- .../set-up-cluster-federation-kubefed.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/docs/tutorials/federation/set-up-cluster-federation-kubefed.md b/docs/tutorials/federation/set-up-cluster-federation-kubefed.md index 4af8db60b5..cc287b677f 100644 --- a/docs/tutorials/federation/set-up-cluster-federation-kubefed.md +++ b/docs/tutorials/federation/set-up-cluster-federation-kubefed.md @@ -97,6 +97,34 @@ kubefed init fellowship --host-cluster-context=rivendell --dns-zone-name="examp The domain suffix specified in `--dns-zone-name` must be an existing domain that you control, and that is programmable by your DNS provider. +The machines in your host cluster must have the appropriate permissions +to program the DNS service that you are using. For example, if your +cluster is running on Google Compute Engine, you must enable the +Google Cloud DNS API for your project. + +The machines in Google Container Engine (GKE) clusters are created +without the Google Cloud DNS API scope by default. If you want to use a +GKE cluster as a Federation host, you must create it using the `gcloud` +command with the appropriate value in the `--scopes` field. You cannot +modify a GKE cluster directly to add this scope, but you can create a +new node pool for your cluster and delete the old one. *Note that this +will cause pods in the cluster to be rescheduled.* + +To add the new node pool, run: + +```shell +scopes="$(gcloud container node-pools describe --cluster=gke-cluster default-pool --format='value[delimiter=","](config.oauthScopes)')" +gcloud container node-pools create new-np \ + --cluster=gke-cluster \ + --scopes="${scopes},https://www.googleapis.com/auth/ndev.clouddns.readwrite" +``` + +To delete the old node pool, run: + +```shell +gcloud container node-pools delete default-pool --cluster gke-cluster +``` + `kubefed init` sets up the federation control plane in the host cluster and also adds an entry for the federation API server in your local kubeconfig. Note that in the alpha release in Kubernetes 1.5,