Commit Graph

359 Commits

Author SHA1 Message Date
FengyunPan
0845bd389a Use EventTypeWarning instead of EventTypeNormal when failure 2017-04-12 11:53:54 +08:00
Maru Newby
d08e9d96ef fed: Create generic synchronizer from refactored secret controller 2017-04-06 17:47:11 -07:00
Maru Newby
82e73efe83 fed: Abstract secret controller interaction with the secret type
This change uses an adapter class to abstracts the interaction of the
secret controller with the secret api type.  This is the first step to
creating a generic controller that can target any type for which an
adapter exists.
2017-04-06 17:47:06 -07:00
Kubernetes Submit Queue
d7f5929603 Merge pull request #42025 from marun/fed-crud-interation-test
Automatic merge from submit-queue

[Federation] Add integration test for secrets

This PR adds an integration test for secrets that:

 - performs create/read/update/delete on federation resources and validates that the changes are propagated to member clusters.  
 - uses an abstraction layer (fixture and adapter) to minimize the code required to support each federated type
   - It should be possible to replace a test-specific adapter with a runtime adapter in the future (as per #41050)
 - reuses fixture (federation api and clusters) across different resource types to minimize setup overhead
   - on a fast machine, setup takes ~4s, and validating each type takes ~2s  
 - uses the [Subtest feature added in Go 1.7](https://blog.golang.org/subtests) to allow the test for a specific controller to be run in isolation
   - ``make test-integration WHAT="federation  -test.run=TestFederationCRUD/secret"``

Once this PR merges the test can be extended to target other federated types.

This PR targets #40705

cc: @kubernetes/sig-federation-pr-reviews @derekwaynecarr
2017-04-06 16:54:44 -07:00
Kubernetes Submit Queue
aeac661b1c Merge pull request #44108 from csbell/fed-disable-orphan
Automatic merge from submit-queue

[Federation] Use cascading deletion when deleting resources in underlying clusters

The Federation control plane issues a delete command unless it wants to orphan the underlying per-cluster resource. When issuing that command, always set the orphanDependents to false.

/release-note-none
/sig-federation
2017-04-06 00:48:42 -07:00
Kubernetes Submit Queue
586e6d034f Merge pull request #44084 from nikhiljindal/removeFinalizers
Automatic merge from submit-queue (batch tested with PRs 44084, 42964)

Removing both finalizers in federation controllers in a single update

Fixes https://github.com/kubernetes/kubernetes/issues/43828

There is a bug right now where the controller fails to delete the object if one finalizer is removed and the second isnt.
This updates the code so that both the finalizers are removed in a single API call. Kept the code changes minimum to enable cherrypick in 1.6.x

cc @csbell @kubernetes/sig-federation-bugs
2017-04-05 20:45:18 -07:00
nikhiljindal
607d34132d Autogenerated bazel changes 2017-04-05 18:21:24 -07:00
nikhiljindal
0655f3d61a Removing both finalizers in federation controller in a single update 2017-04-05 18:21:23 -07:00
Christian Bell
39d4fbfe36 fed: Disable orphaning of per-cluster resources on deletion.
The Federation control plane issues a delete command unless it wants to orphan the underlying per-cluster resource. When issuing that command, always set the orphanDependents to false.
2017-04-05 13:07:28 -07:00
NickrenREN
5439d1b576 Update some event types 2017-04-05 15:16:56 +08:00
Maru Newby
bc67565070 fed: Refactor secret controller start for reuse 2017-03-30 12:58:39 -07:00
Maru Newby
6d656dfe4a fed: Enable cluster controller stop and refactor start for reuse 2017-03-30 12:58:39 -07:00
Maru Newby
522aeb7f36 fed: s/NewclusterController/NewClusterController 2017-03-30 12:58:39 -07:00
Kubernetes Submit Queue
7d7d91fb71 Merge pull request #42567 from FengyunPan/fix_UpdateClusterStatus
Automatic merge from submit-queue (batch tested with PRs 41297, 42638, 42666, 43039, 42567)

Delete offline restclient from clusterKubeClientMap

When federation controller manager checks cluster status, it will
delete the offline cluster from clusterSet, but do not delete the
corresponding restclient from the map clusterKubeClientMap for
the offline cluster. This patch can fix it.



**What this PR does / why we need it**:

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
```
2017-03-25 18:15:26 -07:00
Kubernetes Submit Queue
1e092179b5 Merge pull request #42723 from FengyunPan/update_description
Automatic merge from submit-queue

Update the description to match function

The description of NewReplicaSetController() does not match
its function, and the description of NewDeploymentController()
does not match its function. Let's update their descriptions.



**What this PR does / why we need it**:

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
```
2017-03-24 11:27:50 -07:00
Kubernetes Submit Queue
f880340314 Merge pull request #43231 from csbell/service-race
Automatic merge from submit-queue

[Federation] Fix deletion logic in service controller

This is a regression from 1.5 exposed by cascading deletions. In order to apply updates, the service controller locks access to a cached service and spawns go routines without waiting for them. When updates and deletions arrive in quick succession, previous goroutines remain active and race with the deletion logic. Coupled with this, the service_helper was not re-evaluating the value of the DeletionTimestamp.

Without this patch, federation will sometimes leak resources at destruction time about half the time.

In e2e land, about 4-5 test runs cause service tests to eat up all global fwd-ing rules and in turn, every subsequent ingress test will fail until we manually clean up leaked resources. No possibility to go green in fed e2e until this is merged.
2017-03-20 00:19:23 -07:00
Christian Bell
3769435a45 Fix deletion logic in service controller.
This is a regression from 1.5 exposed by cascading deltions. In order to apply updates, the service controller locks access to a cached service and spawns go routines without waiting for them. When updates and deletions arrive in quick succession, previous goroutines remain active and race with the deletion logic. Coupled with this, the service_helper was not re-evaluating the value of the DeletionTimestamp.

Without this patch, federation will sometimes leak resources at destruction time.
2017-03-19 22:49:21 -07:00
Marcin Wielgus
77024470f3 Fix federated config map unit tests 2017-03-16 20:36:00 +01:00
FengyunPan
d5798fac5c Delete cluster client for a Cluster deletion
When federation controller manager checks cluster status, it will
delete the offline cluster from clusterSet, but do not delete the
corresponding restclient from the map clusterKubeClientMap for
the offline cluster. This patch can fix it.
2017-03-14 14:51:28 +08:00
Maru Newby
02a294533b fed: Fix flakey ingress unit test
The unit test for the ingress controller was previously adding
a cluster twice, which resulted in a cluster being deleted and added
back.  The deletion was racing the controller shutdown to close
informer channels.  This change ensures that the informer clears its
map of informers when Stop() is called to prevent a double close, and
that the test no longer adds the cluster twice.
2017-03-13 13:18:06 -07:00
Christian Bell
9a37fe6dff [Federation] Deployments unaware of ReadyReplicas
The Deployment controller was not propagating ReadyReplicas to underlying clusters causing these errors:
```
Error syncing cluster controller: Deployment.apps "federation-deployment" is invalid: status.availableReplicas: Invalid value: 5: cannot be greater than readyReplicas
```

This was caught in e2e testing and is a 1.6 regression for support that was added in #37959. Without this fix, users will be unable to scale up their deployments.
2017-03-10 15:00:02 -08:00
FengyunPan
9777273828 Update the description to match function
The description of NewReplicaSetController() does not match
its function, and the description of NewDeploymentController()
does not match its function. Let's update their descriptions.
2017-03-08 19:31:35 +08:00
shashidharatd
867d49569e Fix federation controller-manager initialization 2017-03-06 02:58:10 +05:30
Kubernetes Submit Queue
2ebf6edef3 Merge pull request #41942 from csbell/fw-name
Automatic merge from submit-queue

Add ProviderUid support to Federated Ingress

This PR (along with GLBC support [here](https://github.com/kubernetes/ingress/pull/278)) is a proposed fix for #39989. The Ingress controller uses a configMap reconciliation process to ensure that all underlying ingresses agree on a unique UID. This works for all of GLBC's resources except firewalls which need their own cluster-unique UID. This PR introduces a ProviderUid which is maintained and synchronized cross-cluster much like the UID. We chose to derive the ProviderUid from the cluster name (via md5 hash).

Testing here is augmented to guarantee that configMaps are adequately propagated prior to Ingress creation.

```release-note
Federated Ingress over GCE no longer requires separate firewall rules to be created for each cluster to circumvent flapping firewall health checks.
```

cc @madhusudancs @quinton-hoole
2017-03-04 02:51:04 -08:00
Kubernetes Submit Queue
6675dada8d Merge pull request #42375 from nikhiljindal/controllerRequiredResources
Automatic merge from submit-queue (batch tested with PRs 42369, 42375, 42397, 42435, 42455)

Fixing federation controllers to support controllers flag

Fixes https://github.com/kubernetes/kubernetes/issues/42374

cc @kubernetes/sig-federation-pr-reviews
2017-03-03 23:21:40 -08:00
Christian Bell
8fff7c8805 Add support for 'providerUid' in ingress objects. The providerUid
gives each ingress object a cluster-unique Uid that can be
leveraged by ingress providers.

In the process, supplement the testing of configMap updates to
ensure that the updates are propagated prior to any ingress
object being created. Configmap key/vals for Uid and ProviderUid
must exist at time of Ingress creation.
2017-03-02 11:18:22 -08:00
Kubernetes Submit Queue
adc5293ce6 Merge pull request #41841 from csbell/dont-disable-configmap
Automatic merge from submit-queue (batch tested with PRs 41931, 39821, 41841, 42197, 42195)

Revert conditional updates to configmap that breaks ingress

Don't prevent configmap updates to happen on existing ingress-uid configmap despite the lack of ingress objects. Otherwise, ingress objects get created with the wrong name.
2017-03-01 20:07:59 -08:00
nikhiljindal
244f8c87ea autogenerated bazel changes 2017-03-01 17:50:51 -08:00
nikhiljindal
6d891be3be Fixing federation controllers to support controllers flag 2017-03-01 17:50:51 -08:00
Chao Xu
5bfacf59f6 API 2017-02-28 23:05:40 -08:00
Dr. Stefan Schimanski
f11d76ae44 Update client 2017-02-27 22:01:57 +01:00
Dr. Stefan Schimanski
395be3b401 apimachinery: handle duplicated and conflicting type registration 2017-02-27 21:58:21 +01:00
Kubernetes Submit Queue
15ddc69217 Merge pull request #41927 from ncdc/shared-informers-15-federation
Automatic merge from submit-queue (batch tested with PRs 42044, 41694, 41927, 42050, 41987)

federation: use generated listers

**What this PR does / why we need it**: switch federation code to use generated listers

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
```

cc @smarterclayton @derekwaynecarr @marun @gmarek @wojtek-t @deads2k @liggitt @sttts @timothysc @nikhiljindal @jianhuiz @kubernetes/sig-federation-pr-reviews @kubernetes/sig-scalability-pr-reviews
2017-02-26 23:16:53 -08:00
Kubernetes Submit Queue
2a6414bc91 Merge pull request #42044 from timchenxiaoyu/daemonnotdeamon
Automatic merge from submit-queue

daemon not deamon
2017-02-26 22:45:32 -08:00
timchenxiaoyu
5ec5e0be49 daemon not deamon 2017-02-24 17:15:51 +08:00
Andy Goldstein
a3a2246f73 federation: use generated listers 2017-02-23 13:56:52 -05:00
Alejandro Escobar
a56a694be9 moved multiple duplicate strings to constants, updated test that when flacking paniced instead of just failing.
updated tests to avoid panic if channel returns nil.

updated tests based on PR recs.
2017-02-23 09:48:07 -08:00
Christian Bell
676291474a Revert conditional updates to configmap that breaks ingress 2017-02-21 18:02:58 -08:00
deads2k
db0b0bd0f5 move metav1 conversions to metav1 2017-02-14 11:47:23 -05:00
Christian Bell
eceba860d4 Add finalizers to federated configmaps 2017-02-13 14:36:17 -08:00
nikhiljindal
ca6f821738 Autogenerated bazel changes 2017-02-06 10:50:40 -08:00
nikhiljindal
74676f6995 Updating federation namespace controller to share namespaced resources deletion code with kube namespace controller 2017-02-06 10:50:40 -08:00
nikhiljindal
740aa93838 Fix deployment unit test by adding a dummy update reactor 2017-02-03 12:16:13 -08:00
nikhiljindal
64643c6582 Update the tests to check for only one update finalizer operation 2017-02-02 22:04:12 -08:00
nikhiljindal
78ab9ae218 Adding both finalizers in federation controller in a single update 2017-02-02 22:04:11 -08:00
Dr. Stefan Schimanski
de2eee391a Update bazel 2017-02-02 15:19:04 +01:00
Dr. Stefan Schimanski
ef8bb4e7e7 Move pkg/api.FinanlizerOrphan into metav1 2017-02-02 15:17:34 +01:00
Kubernetes Submit Queue
96cfe7b938 Merge pull request #36734 from YuPengZTE/devPunctuation
Automatic merge from submit-queue

error strings should not end with punctuation

**What this PR does / why we need it**:
Delete the end punctuation of error strings
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:
https://github.com/golang/go/wiki/CodeReviewComments#error-strings
**Release note**:

```release-note
```

Signed-off-by: yupeng <yu.peng36@zte.com.cn>
2017-02-01 02:55:48 -08:00
deads2k
8a12000402 move client/record 2017-01-31 19:14:13 -05:00
deads2k
2c1c0f3f72 move workqueue to client-go 2017-01-30 09:08:21 -05:00