Commit Graph

124 Commits (a521a16d0d5f56e0dd7a6d7ef8977352fc29e3e0)

Author SHA1 Message Date
k8s-merge-robot 0ea74dae5c Merge pull request #27511 from quinton-hoole/2016-06-15-improve-logging-in-federation-service-controller
Automatic merge from submit-queue

Improve error logging on DNS updates for federated services

This makes debugging easier.  Prior to this, the logs would e.g. contain "Successfully updated 4 out of 4 DNS records", when in fact zero DNS records had been successfully updated.  It's difficult to debug what's happening with such confusing log messages.
2016-06-17 11:24:25 -07:00
k8s-merge-robot c3a3241002 Merge pull request #27592 from nikhiljindal/fixFedTest
Automatic merge from submit-queue

federation: reverse the order of creating controller manager and secret since controller requires secret

Ref #26762

federation-controller-manager fails if the secret is not there when it comes up: 970104df31/federation/cmd/federation-controller-manager/app/controllermanager.go (L82).

Updating the bring up scripts to first create the secrets and then create the deployments.

@kubernetes/sig-cluster-federation @mml
2016-06-17 00:57:06 -07:00
nikhiljindal 71e1fea2f7 reverse the order of creating controller manager and secret since controller requires secret 2016-06-16 18:31:34 -07:00
k8s-merge-robot 7c97ca596e Merge pull request #27515 from mfanjie/ensuredns-multi-clusters
Automatic merge from submit-queue

federation: only reachable endpoint should be treated as healthy

@quinton-hoole it seems all Ingress IP for the same service is treated as healthy, so I made a fix to filter the Ingress without ready endpoints.

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-06-16 17:10:00 -07:00
mfanjie 8630e46336 only reachable endpoint should be treated as healthy 2016-06-16 11:09:34 +08:00
Quinton Hoole 7b5265c493 Improve error detection and logging on DNS updates for federated services. 2016-06-15 17:30:08 -07:00
Matt Liggett 307f7cf308 Force docker tag change.
Otherwise we sometimes get an error about an existing tag.
2016-06-15 16:41:28 -07:00
k8s-merge-robot c7e3b2f676 Merge pull request #27252 from mfanjie/fix-ensuredns
Automatic merge from submit-queue

federation: fix dns provider initialization issues

This PR is based on the integration test with Google DNS API. This is the first time of full integration test.
So multiple issues was found and I combined all of them in this single PR

1. add dns provider initialization and add ensureDns call when removing federation service.
2. add new flags federation-name and zone-name to controller manager, both are used as part of the dns record name
3. fix assertion failure at rrsets.go#L61, which will cause panic
4. change getFederationDNSZoneName to get zoneName from config instead of hard code
5. change logic of ensureDnsRrsets, only add new dns record when endpointReachable(set to true when ready address is catched) is true
6. fix bug in processEndpointUpdate, only call ensuredns when ready address is caught
7. change behavior of syncService, there is cases that endpoint is created before ingress IP assignment, so before there is defect for this case, ensureDns was not called when service being updated, so if Ingress IP is assigned after endpoint ready address is caught, the corresponding A records can not be created
8. add a checking before update federation service

@nikhiljindal , can you help to add 1.3 milestone when @quinton-hoole is on leave?
Thanks.

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-06-14 03:20:13 -07:00
k8s-merge-robot 7e2b523dce Merge pull request #27260 from nikhiljindal/dnsProvider
Automatic merge from submit-queue

Updating federation up scripts to work in non e2e setup

Ref: https://github.com/kubernetes/kubernetes.github.io/pull/656

Updating the federation up scripts so that they work as per steps in https://github.com/kubernetes/kubernetes.github.io/pull/656.

Changes are:
* Updating the default namespace to be "federation" instead of "federation-e2e"
* Updated the kubeconfig context to be named "federation-cluster" instead of "federated-context"
* Fixing federation-up so that FEDERATION_IMAGE_TAG is set even when federation-up is run without running `e2e.go --up`. e2e-up.sh sets it here: 6a388d4a0d/hack/e2e-internal/e2e-up.sh (L44).
* Adding a "missingkey=zero" option to template parser. Without this, the parser adds `"<no value>"` at the place of an env var that is not set. With this change, it instead replaces it with the corresponding zero value (for ex "" for strings). This is required for the FEDERATION_DNS_PROVIDER_CONFIG env var.

cc @kubernetes/sig-cluster-federation @colhom @mml
2016-06-14 02:13:44 -07:00
mfanjie 8e26283965 add federation-name and zone-name flags to e2e test 2016-06-14 15:40:07 +08:00
mfanjie dd78dd8e2b 1. ensure dns record when ingress ip is assigned after ready address creation
2. ensure dns record removal when service being removed
2016-06-14 15:36:37 +08:00
mfanjie 72a0806103 only update dns records when ready address available for endpoints 2016-06-14 15:36:37 +08:00
mfanjie 318f37ce0f add federation-name and zone-name as controller manager flags 2016-06-14 15:36:37 +08:00
mfanjie 29cc7c009c add dns provider initialzation 2016-06-14 15:36:37 +08:00
nikhiljindal e0bdb32bd7 export FEDERATION_NAME 2016-06-13 19:01:43 -07:00
nikhiljindal 9b2b763ab0 Fixing references to federated-context and federation-e2e 2016-06-13 16:43:55 -07:00
nikhiljindal 18425172e5 Updating federation up scripts to work in non e2e setup 2016-06-13 15:20:31 -07:00
k8s-merge-robot 10255f8aec Merge pull request #26951 from madhusudancs/fed-detect-project-registry-base
Automatic merge from submit-queue

Detect the project in which the federation of clusters are being created and point the federation docker registry to that project.

Only the last commit here needs review.

Depends on #26950.

cc @colhom @kubernetes/sig-cluster-federation

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-06-13 06:00:04 -07:00
Madhusudan.C.S c7a4401359 Default to GCR as the image registry if the provider is GCE or GKE. 2016-06-13 02:08:59 -07:00
k8s-merge-robot adb06748f7 Merge pull request #27158 from nikhiljindal/dnsProvider
Automatic merge from submit-queue

federation: Adding dnsprovider flags to federation-controller-manager
2016-06-10 23:28:41 -07:00
k8s-merge-robot 3cc43eb0d2 Merge pull request #27028 from mfanjie/fix_cluster_sync_loop
Automatic merge from submit-queue

federation service controller: fixing a bug so that existing services are created in newly registered clusters

A defect on federation service controller.
Steps to recreate:
1. boot federation control plane
2. create a service and then register a new cluster

Root cause:
the right sequence should be  
```
servicesToUpdate = s.serviceCache.allServices()
```
then
```
s.updateAllServicesToCluster(servicesToUpdate, newCluster) 
```
then
```
servicesToUpdate = s.updateDNSRecords(servicesToUpdate, newClusters)
```
Now the first two lines' sequence is on the contrary, so when updateDNSRecords return no error, the service will be removed from  servicesToUpdate, and updateAllServicesToCluster get nothing to update.

This PR make the call sequence correct.

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-06-10 22:12:16 -07:00
Madhusudan.C.S 498168b4da Set FEDERATION_PUSH_REPO_BASE only when it isn't set. 2016-06-10 00:22:27 -07:00
Madhusudan.C.S c9b1232a17 Detect the project in which the federation of clusters are being created and point the federation docker registry to that project. 2016-06-10 00:22:27 -07:00
nikhiljindal 3f3a2c14d1 Adding the dnsprovider flags to federation-controller-manager 2016-06-09 20:26:46 -07:00
k8s-merge-robot 6a388d4a0d Merge pull request #27072 from colhom/federation-e2e-docs
Automatic merge from submit-queue

Updating e2e docs with instructions on running federation tests

Last two commits are for review. Depends on #26951

\cc @madhusudancs @quinton-hoole @nikhiljindal 
 
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-06-09 19:14:11 -07:00
k8s-merge-robot 9ae6a008c9 Merge pull request #26952 from madhusudancs/fed-apiserver-admissioncontrol-todo
Automatic merge from submit-queue

Add a TODO to enable admission control in federation apiserver when the support is added.

Only the last commit here needs review.

Depends on #26951.

cc @kubernetes/sig-cluster-federation

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-06-09 18:32:46 -07:00
k8s-merge-robot 005011227e Merge pull request #26904 from madhusudancs/federation-apiserver-protocol
Automatic merge from submit-queue

Prefix scheme/protocol to federation API server URL.

cc @kubernetes/sig-cluster-federation 

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-06-09 18:32:42 -07:00
Colin Hom 5f7c7ad195 document federation e2e cli flow 2016-06-09 15:11:52 -07:00
mfanjie 640d7dc7d1 fix clusterSyncLoop to always update services from latest cache 2016-06-08 15:54:22 +08:00
Quinton Hoole c578678820 Merge pull request #26914 from nikhiljindal/FedAPIServerSecret
Updating federation up script to create secrets with federation-apiserver and k8s apiservers kubeconfigs
2016-06-07 22:29:39 -07:00
nikhiljindal 9443bf0f9c Adding secrets for kubernetes clusters as well 2016-06-07 17:30:15 -07:00
nikhiljindal b4da46974c Updating federation up script to create a secret with federation-apiserver kubeconfig 2016-06-07 14:21:04 -07:00
Madhusudan.C.S 227e836ca5 Add a TODO to enable admission control in federation apiserver when the support is added. 2016-06-07 12:18:45 -07:00
Madhusudan.C.S 7355b3f1ca Prefix scheme/protocol to federation API server URL. 2016-06-06 11:56:27 -07:00
mfanjie 6dde087f69 change clientset of service controller to versioned one 2016-06-06 17:04:26 +08:00
mfanjie c2dbce68f1 extract public function for build cluster config so that other controller can reuse 2016-06-06 10:36:35 +08:00
k8s-merge-robot 15b382be82 Merge pull request #26819 from nikhiljindal/FedAPIServerSecret
Automatic merge from submit-queue

federation: Updating federation-controller-manager to use secret to get federation-apiserver's kubeconfig

Fixing the credentials problem: https://github.com/kubernetes/kubernetes/issues/26762#issuecomment-223690990.

Admin will create a secret with the name "federation-apiserver-secret" in the k8s cluster hosting the federation control plane. This secret will contain the kubeconfig to access federation-apiserver.
federation-controller-manager will use this secret to contact the federation-apiserver.
This flow is same as the one used by all federation-controllers to contact k8s apiservers that are part of the federation.

cc @kubernetes/sig-cluster-federation @lavalamp @erictune @colhom
2016-06-03 20:39:00 -07:00
Quinton Hoole 5b421842be Added AWS Route53 libraries to godeps. 2016-06-03 15:55:30 -07:00
Quinton Hoole 7c14d767c5 AWS Route53 dnsprovider 2016-06-03 15:51:54 -07:00
nikhiljindal 98c9fbb529 Updating federation-controller-manager to use secret to get federation-apiserver's kubeconfig 2016-06-03 15:16:45 -07:00
k8s-merge-robot 1288106608 Merge pull request #26676 from nikhiljindal/admissionControl
Automatic merge from submit-queue

federation: Update the list of supported admission controls

Ref https://github.com/kubernetes/kubernetes/pull/26298#issuecomment-221697124

In 1.3, we are going to support only AlwaysAdmit and AlwaysDeny admission controls.
Updating the documentation accordingly.

@kubernetes/sig-cluster-federation
2016-06-02 06:05:15 -07:00
k8s-merge-robot 3b908a538d Merge pull request #26605 from nikhiljindal/clusterControllerE2eTest
Automatic merge from submit-queue

federation: Adding federation controller manager to federation e2es

Adding federation controller manager to federation e2es.
Havent been able to verify that this works: https://github.com/kubernetes/kubernetes/pull/25125#issuecomment-222860475

Followed the same patter as federation-apiserver and made the changes at same places, so hopefully should work :)
2016-06-02 03:36:47 -07:00
nikhiljindal d2ea7a29ab Add federation controller manager to federation e2es 2016-06-02 00:17:11 -07:00
k8s-merge-robot cf234ab67d Merge pull request #26251 from caesarxuchao/add-serializer
Automatic merge from submit-queue

Add direct serializer

Fix #25589. Implemented a direct codec that doesn't do conversion, but sets the group, version and kind before serialization as Clayton suggested [here](https://github.com/kubernetes/kubernetes/issues/25589#issuecomment-219168009).

First commit is cherry-picked from #24826.

@kubernetes/sig-api-machinery
2016-06-01 23:31:47 -07:00
nikhiljindal fe3cba94bf Update the list of supported admission controls 2016-06-01 18:51:09 -07:00
Quinton Hoole 65e1fecab5 Integrate federated service DNS record management 2016-06-01 16:24:14 -07:00
nikhiljindal 8e3e5a8b85 load secretRef only if it is present 2016-05-31 18:17:42 -07:00
Chao Xu f32f3966d6 add DirectCodec; use it in release_1_3 clientset 2016-05-31 10:14:24 -07:00
k8s-merge-robot 1c7aa9c8e2 Merge pull request #26325 from quinton-hoole/2016-05-25-federation-cluster-status-zone-update
Automatic merge from submit-queue

Add federation cluster status zone update

Hi Nikhil

Here's the cluster zone update stuff we discussed today.

What's remaining:

1. Rebase against #26308 (as soon as it merges) to expose the zones and region fields of cluster status.
2. Get hold of a cluster client via which to query nodes in the cluster. Currently we only have a DiscoveryClient, which doesn't know how to list nodes.

Any advice on the latter much appreciated.  Specifically how do I get a cluster client from a discovery client?

Q
2016-05-29 00:40:09 -07:00
Quinton Hoole eff728a46d Merge pull request #26034 from mfanjie/federation-service-controller
Federation service controller
2016-05-28 11:25:25 -07:00