Commit Graph

479 Commits

Author SHA1 Message Date
Kubernetes Submit Queue
3cc0e4b5b8 Merge pull request #44704 from caiyixiang/del_unuse_const
Automatic merge from submit-queue (batch tested with PRs 44722, 44704, 44681, 44494, 39732)

delete unuse const

delete unuseful const
2017-04-20 16:00:58 -07:00
caiyixiang
31829850b9 delete unuse const 2017-04-20 15:17:36 +08:00
shashidharatd
36e7ed4cae Auto generated code 2017-04-20 10:37:50 +05:30
shashidharatd
3cb4d69c0b Add new unit tests for federated service dns 2017-04-20 10:37:50 +05:30
shashidharatd
721224d72a Add new unit tests for federated service controller 2017-04-20 10:37:50 +05:30
shashidharatd
d00eca48da Use federated informer framework and use annotations to store lb ingress 2017-04-20 10:37:50 +05:30
shashidharatd
bacd7b7454 Add few new fake hooks to test 2017-04-20 08:55:36 +05:30
shashidharatd
b28f41eb02 Add new ResourceEventHandlerFuncs to federated informer 2017-04-20 08:55:36 +05:30
shashidharatd
58b2cce95e Add types for federated service ingress annotation 2017-04-20 08:55:36 +05:30
FengyunPan
1bad02cb22 Use const value for pod's conditions 2017-04-20 10:43:24 +08:00
FengyunPan
d1e018b06f Ignore IsNotFound error
IsNotFound error is fine since that means the object is
deleted already, so we should ignore it.
2017-04-20 08:59:42 +08:00
Kubernetes Submit Queue
53258ba679 Merge pull request #44366 from therc/patch-3
Automatic merge from submit-queue

Fix ensureDnsRecords comments for federated services

I went to look at the source comments, because the documentation is not exhaustive about what kind of DNS records are created for federated services (and http://blog.kubernetes.io/2016/07/cross-cluster-services.html is wrong...).
It turns out that even the comment is not in sync with the code: two out of three records listed use `.federation`, while the author probably meant `.mydomain.com` (which has less chance of getting mixed up with `myfed`). I fixed those, as well as a few spelling and parenthesis errors. Hopefully this will help others save time and not scratch their heads.

cc @quinton-hoole
2017-04-18 23:55:49 -07:00
Kubernetes Submit Queue
aa43023fd7 Merge pull request #44526 from FengyunPan/fix-UpdateClusterStatus-panic
Automatic merge from submit-queue (batch tested with PRs 44469, 44566, 44467, 44526)

[Federation]Fix panic: index out of range

When the number of clusterStatusNew's Conditions is different from
the number of clusterStatusOld's Conditions, clustercontroller
will panic. We should check it before comparing.
2017-04-17 20:07:01 -07:00
Maru Newby
cca465e347 fed: Rename 'secret' controller package to 'sync' 2017-04-17 09:09:41 -07:00
Maru Newby
2c75aeed02 fed: mv pkg/typeadapters pkg/federatedtypes 2017-04-16 21:30:52 -07:00
Maru Newby
1ebffa7112 fed: adapter registry -> type registry to enable ctlr mgr use 2017-04-16 21:30:52 -07:00
Maru Newby
6f061f7962 fed: Update crud integration test to use the the adapter registry 2017-04-16 21:30:09 -07:00
FengyunPan
8886574a67 [Federation]Fix panic: index out of range
When the number of clusterStatusNew's Conditions is different from
the number of clusterStatusOld's Conditions, clustercontroller
will panic. We should check it before comparing.
2017-04-16 19:40:16 +08:00
Mike Danese
a05c3c0efd autogenerated 2017-04-14 10:40:57 -07:00
FengyunPan
0845bd389a Use EventTypeWarning instead of EventTypeNormal when failure 2017-04-12 11:53:54 +08:00
Rudi C
28a44e375b Fix ensureDnsRecords comments for federated services
I went to look at the source comments, because the documentation is not exhaustive about what kind of DNS records are created for federated services (and http://blog.kubernetes.io/2016/07/cross-cluster-services.html is wrong...).
It turns out that even the comment is not in sync with the code: two out of three records listed use `.federation`, while the author probably meant `.mydomain.com` (which has less chance of getting mixed up with `myfed`). I fixed those, as well as a few spelling and parenthesis errors. Hopefully this will help others save time and not scratch their heads.
2017-04-11 18:01:35 -04: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