Commit Graph

190 Commits

Author SHA1 Message Date
Marcin Wielgus
0ec28ac86e Handle secret namespace and data properly in federated secret controller 2016-08-19 23:02:40 +02:00
kshafiee
febe9adcf0 Federated secret controller 2016-08-19 17:02:30 +00:00
Kubernetes Submit Queue
b6d4462f01 Merge pull request #30983 from mwielgus/planer2
Automatic merge from submit-queue

Support for preexisting replicas and estimated capacity in federated replicaset controller

With this PR the planer will be able to:
* Keep already existing replicas in their current clusters if rebalance = false and min/max boundaries are met.

* Limit the number of replicas in a cluster to the level that was measured by the count of running and unschedulable pods. And provide an estimate how much more pods would be nice to put in a cluster so that if they are scheduled we will be closer to the desired layout or to schedule the desired number of replicas at all.

cc: @quinton-hoole @jianhuiz @wojtek-t @kubernetes/sig-cluster-federation
2016-08-19 08:28:03 -07:00
Marcin Wielgus
8dfdc5b612 Support for preexisting replicas and estimated capacity in federated replica set planner 2016-08-19 16:14:21 +02:00
Marcin Wielgus
03fd876d25 Federated replica set pod analyser 2016-08-19 14:38:40 +02:00
Kubernetes Submit Queue
83ded2858c Merge pull request #28568 from xiangpengzhao/check_ensureDnsRecords_return_value
Automatic merge from submit-queue

Check return value when calling ensureDnsRecords

When [lockedUpdateDNSRecords](https://github.com/xiangpengzhao/kubernetes/blob/check_ensureDnsRecords_return_value/federation/pkg/federation-controller/service/servicecontroller.go#L723) calls `ensureDnsRecords`, it should check the return value. If it returns error, the `ensuredCount ` should not increment.
2016-08-18 16:25:09 -07:00
Kubernetes Submit Queue
b15c2d67e6 Merge pull request #30872 from mwielgus/fed-informer-deadlock
Automatic merge from submit-queue

Fix deadlock possibility in federated informer

On cluster add subinformer locks and tries to add cluster to federated informer. When someone checks if everything is in sync federated informer is locked and then subinformer is inspected what apparently requires a lock. With really bad timing this can create a deadlock.

This PR ensures that there is always at most 1 lock taken in federated informer.

cc: @quinton-hoole @kubernetes/sig-cluster-federation 

Fixes: #30855
2016-08-18 08:31:26 -07:00
Marcin Wielgus
420bab477e Federated namespace controller - stop reconcilation if not in sync 2016-08-18 14:48:38 +02:00
Marcin Wielgus
681d153050 Fix deadlock possibility in federated informer 2016-08-18 14:37:38 +02:00
Marcin Wielgus
23ca79bd53 Remove Set/GetClusterName hack from federated libs: 2016-08-18 08:04:46 +02:00
Marcin Wielgus
c75cefa296 FederatedInformer returns clusterName + obj pair when needed 2016-08-18 07:48:21 +02:00
Marcin Wielgus
c1cbe4771b Use backoff from util/flowcontroll in federated namespace controller and other minor fixes 2016-08-16 21:51:24 +02:00
Marcin Wielgus
b2c192bcc9 Federated Namespace Controller test 2016-08-16 21:05:50 +02:00
Marcin Wielgus
e428ffe879 Federated namespace controller 2016-08-16 21:05:50 +02:00
Kubernetes Submit Queue
ce302c0c55 Merge pull request #30509 from mwielgus/set-client
Automatic merge from submit-queue

SetClientFactory in FederatedInformer

For unit tests.

cc: @quinton-hoole @wojtek-t @kubernetes/sig-cluster-federation
2016-08-16 11:10:58 -07:00
Kubernetes Submit Queue
69419a145a Merge pull request #29802 from jfrazelle/fix-go-vet-errors
Automatic merge from submit-queue

fix go vet errors

<!--
Checklist for submitting a Pull Request

Please remove this comment block before submitting.

1. Please read our [contributor guidelines](https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md).
2. See our [developer guide](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md).
3. If you want this PR to automatically close an issue when it is merged,
   add `fixes #<issue number>` or `fixes #<issue number>, fixes #<issue number>`
   to close multiple issues (see: https://github.com/blog/1506-closing-issues-via-pull-requests).
4. Follow the instructions for [labeling and writing a release note for this PR](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes) in the block below.
-->

```release-note
```

This fixes the `go vet` errors brought about by go 1.7 testing re (#28742).

The are all pretty trivial and mostly related to literal composites.

also related to #16086
2016-08-15 13:10:08 -07:00
Marcin Wielgus
9c794c4296 Fix in default client factory in federated informer 2016-08-13 02:12:35 +02:00
Marcin Wielgus
8dbe762e6f SetClientFactory in FederatedInformer 2016-08-12 17:34:01 +02:00
Marcin Wielgus
8b53924a97 Federation - common libs - get clientset for cluster 2016-08-11 16:21:34 +02:00
Jess Frazelle
7e9d82129e
fix go vet errors
Signed-off-by: Jess Frazelle <jessfraz@google.com>

fix composites

Signed-off-by: Jess Frazelle <me@jessfraz.com>
2016-08-10 16:45:41 -07:00
Marcin Wielgus
9f01136df4 Federation - common libs - small changes in delaying deliverer 2016-08-10 17:05:15 +02:00
Marcin Wielgus
c435647dd7 Minor fixes in federated controller libraries 2016-08-10 14:25:26 +02:00
Kubernetes Submit Queue
ab68ce9676 Merge pull request #30353 from mwielgus/handlers-fed
Automatic merge from submit-queue

Federation - common libs - a set of handy handlers for informers

A common scenario for using informer handlers would be to put the object key in a queue
for global reconciliation.

cc: @quinton-hoole @wojtek-t @kubernetes/sig-cluster-federation

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.kubernetes.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/30353)
<!-- Reviewable:end -->
2016-08-10 04:45:04 -07:00
Marcin Wielgus
99ba03f423 Federation - common libs - a set of handy handlers for informers 2016-08-10 12:18:35 +02:00
Kubernetes Submit Queue
3e006ea298 Merge pull request #29817 from xiangpengzhao/opt-print-info
Automatic merge from submit-queue

Separate long comment into lines



<!-- Reviewable:start -->
This change is [<img src="https://reviewable.kubernetes.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/29817)
<!-- Reviewable:end -->
2016-08-09 20:14:14 -07:00
Kubernetes Submit Queue
489b204b07 Merge pull request #30126 from mwielgus/federated_updater
Automatic merge from submit-queue

Federation - common libs - FedratedUpdater

A helper for executing multiple add/update/del operations on federation clusters. Contains a workaround against missing #28921.

cc @nikhiljindal @wojtek-t @madhusudancs @kubernetes/sig-cluster-federation 

Fixes: #29869 #30030
Ref: #29347

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.kubernetes.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/30126)
<!-- Reviewable:end -->
2016-08-09 07:28:26 -07:00
Marcin Wielgus
d836fd523f Federation - common libs - fedrated updater 2016-08-09 15:39:16 +02:00
Kubernetes Submit Queue
48c0612805 Merge pull request #29866 from xiangpengzhao/err-to-nil
Automatic merge from submit-queue

Return nil directly when err is nil.

When err is nil, return nil directly instead of `err` to avoid confusion.
2016-08-08 12:23:32 -07:00
Marcin Wielgus
fcbb0eef2d Federation common libs - deliverAfer for delaying deliverer 2016-08-08 16:30:10 +02:00
xiangpengzhao
0623f7bcf8 Return nil directly when err is nil. 2016-08-08 04:20:44 -04:00
Kubernetes Submit Queue
2537f66f0e Merge pull request #29230 from luxas/goimport
Automatic merge from submit-queue

Run goimport for the whole repo

While removing GOMAXPROC and running goimports, I noticed quite a lot of other files also needed a goimport format. Didn't commit `*.generated.go`, `*.deepcopy.go` or files in `vendor`

This is more for testing if it builds.
The only strange thing here is the gopkg.in/gcfg.v1 => github.com/scalingdata/gcfg replace.
cc @jfrazelle @thockin
2016-08-05 16:22:01 -07:00
Marcin Wielgus
fc263877a5 Federation - common libs - cluster lifecycle handlers in FederatedInformer 2016-08-05 15:09:02 +02:00
Kubernetes Submit Queue
ac266ae85b Merge pull request #29939 from mwielgus/federated_informer
Automatic merge from submit-queue

Federation - common libs - FederatedInformer

Fixes #29383

Will add more tests after the first pass of the review.

ref: #29347

cc: @nikhiljindal @wojtek-t
2016-08-03 13:43:37 -07:00
Marcin Wielgus
040203b40a Federation - common libs - FederatedInformer 2016-08-03 17:53:05 +02:00
Kubernetes Submit Queue
503f5afe1a Merge pull request #29858 from xiangpengzhao/delete-useless-code
Automatic merge from submit-queue

Delete useless code

The correct code is `cluster, ok := obj.(*v1beta1.Cluster)`, so the above `cluster := obj.(*v1beta1.Cluster)` is useless.
2016-08-02 23:36:31 -07:00
Lucas Käldström
c88a07ce1a Run goimports 2016-08-02 15:12:39 +03:00
xiangpengzhao
14adb38018 Delete useless code 2016-08-01 13:00:46 -04:00
xiangpengzhao
4ccd90d741 Log error in each loop it appears and fix wrong count of missed cluster. 2016-08-01 06:39:12 -04:00
xiangpengzhao
dfd12276df Keep track of missed and unensured counts 2016-08-01 05:21:40 -04:00
xiangpengzhao
d4fa23feb8 Check return value when calling ensureDnsRecords 2016-08-01 05:21:40 -04:00
Harry Zhang
c495397cae Refactor uuid into its own pkg 2016-07-30 00:07:02 -04:00
xiangpengzhao
6c9907b042 Separate long comment into lines. 2016-07-29 22:27:24 -04:00
xiangpengzhao
60798e7c48 Keep retry times the same for each place where ensureDnsRecords is called. 2016-07-29 12:30:27 -04:00
k8s-merge-robot
e7db6687fc Merge pull request #29455 from mwielgus/frsc-scheduling
Automatic merge from submit-queue

Replica location planner for Federated ReplicaSet Controller

Requires #29385 to be merged.

cc: @quinton-hoole @wojtek-t
2016-07-25 16:16:11 -07:00
Marcin Wielgus
ed92579d2e Replica location planner for Federated ReplicaSet Controller 2016-07-23 02:04:33 +02:00
Justin Santa Barbara
6463a220ee Expose Changesets (transactions) in dns provider
This makes the dnsprovider usable in more scenarios, and it also solves
some TODOs in the federation code.
2016-07-22 08:43:20 -04:00
k8s-merge-robot
f7409f3be2 Merge pull request #29368 from mwielgus/delaying_deliverer
Automatic merge from submit-queue

Delaying deliverer for Federated ReplicaSet

A helper struct to push data to a channel after a given delay. It runs on a single gouroutine and allows updates. An update cancels previous delivery if it was about to happen later than the new one. Otherwise the new update is discarded. 
All data require a string key that is used to identify the data (for updates and de-duplication).

cc: @quinton-hoole @wojtek-t
2016-07-22 01:13:57 -07:00
k8s-merge-robot
72a697a13d Merge pull request #28182 from quinton-hoole/2016-06-28-compare-rrsets-properly
Automatic merge from submit-queue

Federation: Use equivalent() instead of == to compare DNS ResourceRecordSets. Fixes #28135

Without this we sometimes incorrectly assume that DNS records hosted on cloud DNS servers need to be replaced when they don't need to be.  This results in unnecessary churn on DNS records.

cc: @nikhiljindal @madhusudancs @mfanjie FYI
2016-07-22 00:41:06 -07:00
Marcin Wielgus
85dd375cc8 Delaying deliverer for Federated ReplicaSet 2016-07-21 16:49:16 +02:00
Quinton Hoole
3dd1c0088e Use ResourceRecordSetsEquivalent() instead of == to compare rrsets. Fixes #28135 2016-07-20 15:49:19 -07:00
nikhiljindal
11ba8943fe Updating federation controllers to use release_1_4 clientset instead of release_1_3 clientset 2016-07-20 10:56:57 -07:00
Madhusudan.C.S
74cf837005 Fix a typo in my Github username [madhusudancs]. 2016-07-19 11:51:45 -07:00
Davanum Srinivas
2b0ed014b7 Use Go canonical import paths
Add canonical imports only in existing doc.go files.
https://golang.org/doc/go1.4#canonicalimports

Fixes #29014
2016-07-16 13:48:21 -04:00
Matt Liggett
a8b1c2e903 Add printf formatting for rrset objects.
Without this you just get two pointers in the debug log.

Before:

I0627 21:48:44.136615       1 dns.go:215] Existing recordset {0xc820168830 0xc820691540} is not equal to needed recordset &{0xc820168848 0xc820686040}, removing existing and adding needed.

After:

I0627 22:26:46.221856       1 dns.go:215] Existing recordset                <(clouddns) "federated-service.e2e-tests-service-cuza5.federation.svc.us-central1-c.us-central1.kube.5yetis.net." type=CNAME rrdatas=["federated-service.e2e-tests-service-cuza5.federation.svc.us-central1.kube.5yetis.net."] ttl=180>
I0627 22:26:46.221885       1 dns.go:216] ... not equal to needed recordset <(clouddns) "federated-service.e2e-tests-service-cuza5.federation.svc.us-central1-c.us-central1.kube.5yetis.net." type=CNAME rrdatas=["federated-service.e2e-tests-service-cuza5.federation.svc.us-central1.kube.5yetis.net."] ttl=180>
I0627 22:26:46.221919       1 dns.go:217] ... removing existing and adding needed.
2016-06-30 16:40:44 -07:00
David McMahon
ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
nikhiljindal
7fcf8daf6b Moving federation/v1alpha1 to federation/v1beta1 2016-06-28 17:12:58 -07:00
Quinton Hoole
8d5d7e9013 Address outstanding review comments in #27999. 2016-06-24 08:35:12 -07:00
Quinton Hoole
6b435a6415 Fixes #27989 2016-06-23 19:06:22 -07:00
k8s-merge-robot
c5afca10f4 Merge pull request #27748 from mfanjie/service-controller
Automatic merge from submit-queue

Federation: Improve the handling of service deletion in underlying clusters

fixes #27623 

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-06-22 16:21:16 -07:00
nikhiljindal
c59de79d5f Adding retries to fetching secret in controller manager 2016-06-22 00:57:53 -07:00
mfanjie
669bf0773f add kubernetes service back when it is deleted in kubernetes cluster 2016-06-22 10:46:31 +08:00
k8s-merge-robot
9f06e0f1a6 Merge pull request #27665 from iamthemuffinman/master
Automatic merge from submit-queue

Fix spelling errors
2016-06-21 09:54:07 -07:00
k8s-merge-robot
4468e15fc7 Merge pull request #27695 from quinton-hoole/2016-06-17-create-federation-dns-zone-if-missing
Automatic merge from submit-queue

Create federation dns zone if missing

1. Added Zones.Add() method to generic dnsprovider interface, as well as Google and AWS implementations.
2. Automatically add the configured zone name to the dnsprovider if it does not already exist.
2016-06-21 07:45:13 -07:00
k8s-merge-robot
d2f5bbc0d7 Merge pull request #27742 from mml/fed-err-shadow
Automatic merge from submit-queue

Fix block-local err bug in service_helper.go
2016-06-20 23:33:40 -07:00
Quinton Hoole
c1604d84b8 Added managed zone creation to all dnsproviders. 2016-06-20 22:47:05 -07:00
Matt Liggett
3ec2b19611 Fix block-local err bug in service_helper.go
The real error message goes out of scope before we try to log it.
2016-06-20 17:47:43 -07:00
Matt Liggett
3659c6ff32 Check for an error before checking for nil.
The error object, if it exists, probably has more specific information
to hand to the caller.
2016-06-20 17:13:16 -07:00
Robert Deusser
cd1450b3ec Fix spelling errors
More spelling fixes
2016-06-20 11:36:11 -04:00
k8s-merge-robot
090e6ff660 Merge pull request #27625 from goltermann/spell2
Automatic merge from submit-queue

Fix several spelling errors in comments

What the title says
2016-06-18 23:08:28 -07:00
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
goltermann
218645b346 Fix several spelling errors in comments. 2016-06-17 10:41:18 -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
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
mfanjie
640d7dc7d1 fix clusterSyncLoop to always update services from latest cache 2016-06-08 15:54:22 +08: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
nikhiljindal
98c9fbb529 Updating federation-controller-manager to use secret to get federation-apiserver's kubeconfig 2016-06-03 15:16:45 -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
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
85a0de3300 Use secrets to configure kube clients in federation cluster controller, and cache kube clients. 2016-05-28 11:19:13 -07:00
Quinton Hoole
20c75956fd Add federation cluster status zone and region update. 2016-05-28 11:15:23 -07:00
mfanjie
6133db345f add federation service controller 2016-05-29 00:25:07 +08:00
nikhiljindal
dca310aa88 Updating tests 2016-05-24 00:27:39 -07:00
nikhiljindal
9b604242c6 Updating the federation cluster controller to use secretRef to contact the server 2016-05-23 21:50:00 -07:00
huangyuqi
21fe26bd07 remove the rs&subrs logic from cluster controller 2016-05-16 16:48:27 +08:00