Commit Graph

669 Commits

Author SHA1 Message Date
Kubernetes Submit Queue
7f2011c160 Merge pull request #45225 from FengyunPan/update-event-type
Automatic merge from submit-queue (batch tested with PRs 40544, 44338, 45225)

[Federation]Update event type

Use EventTypeWarning instead of EventTypeNormal when get failure
Left behind after pr #40296
2017-05-02 13:03:59 -07:00
Kubernetes Submit Queue
0487d38771 Merge pull request #42513 from perotinus/generatedsecrets
Automatic merge from submit-queue (batch tested with PRs 45100, 45152, 42513, 44796, 45222)

[Federation] Generate the secret name in kubefed join.

Addresses part of #42324. A follow-up PR will address annotating Federation resources.

```release-note
Remove the `--secret-name` flag from `kubefed join`, instead generating the secret name arbitrarily.
```
2017-05-02 10:35:09 -07:00
FengyunPan
eb8f5d3508 [Federation]Update event type 2017-05-02 18:43:53 +08:00
Kubernetes Submit Queue
8f6df26755 Merge pull request #44545 from FengyunPan/remove-GetClientsetForCluster
Automatic merge from submit-queue

Remove GetClientsetForCluster()

The newClusterClientset() has insteaded of GetClientsetForCluster(),
and GetClientsetForCluster() run wrong. Let's remove it.
2017-05-01 20:39:47 -07:00
Jonathan MacMillan
77e71a890e [Federation] Generate the secret name in kubefed join. 2017-05-01 14:05:23 -07:00
Kubernetes Submit Queue
9bce5f01c8 Merge pull request #44483 from FengyunPan/ignore-notFound2
Automatic merge from submit-queue

Ignore IsNotFound error

IsNotFound error is fine since that means the object is
deleted already, so we should check err and ignore err
before returning.
2017-04-30 01:49:10 -07:00
Kubernetes Submit Queue
a984a7ed09 Merge pull request #44980 from csbell/sync-daemonset
Automatic merge from submit-queue (batch tested with PRs 42740, 44980, 45039, 41627, 45044)

[Federation] Convert Daemonset to use the generic sync controller

To be rebased on master when @perotinus's configmaps PR merges.

Tested integration and e2e.
2017-04-27 13:27:02 -07:00
Christian Bell
15e81959e9 [Federation] Convert Daemonset to use the generic sync controller 2017-04-27 08:07:33 -07:00
FengyunPan
7d4c66c5b5 Cleanup storeToClusterConditionLister
ClusterConditionPredicate() has been deleted,
storeToClusterConditionLister will be unused.
2017-04-27 11:51:26 +08:00
FengyunPan
2077a5ce2e Remove incorrect and unused function
The newClusterClientset() has insteaded of GetClientsetForCluster(),
and GetClientsetForCluster() run wrong. Let's remove it.
2017-04-27 09:49:59 +08:00
shashidharatd
b0f8de7303 Auto generated bazel build file 2017-04-26 22:07:21 +05:30
shashidharatd
d2462c79bd Remove unused code in federation service controller 2017-04-26 22:06:09 +05:30
Kubernetes Submit Queue
2d79d53fb2 Merge pull request #41258 from shashidharatd/federation-service-controller-1
Automatic merge from submit-queue (batch tested with PRs 44942, 41258)

[Federation] Use federated informer for service controller and annotations to store lb ingress

**What this PR does / why we need it**:
This is breaking up of the PR #40296 into smaller one. please refer to #41253

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #
Handles 2 tasks in #41253
Fixes issues in #27623, #35827

**Special notes for your reviewer**:

**Release note**:
```
NONE
```

cc @quinton-hoole @nikhiljindal @kubernetes/sig-federation-pr-reviews
2017-04-26 08:57:38 -07:00
Jonathan MacMillan
5336f2de05 [Federation] Convert ConfigMaps to use the generic sync controller. 2017-04-25 14:13:28 -07:00
zhangxiaoyu-zidif
7474a9def0 cleancode:util.go 2017-04-25 17:13:25 +08:00
shashidharatd
950db8e0a1 Handle review comments 2017-04-24 10:45:14 +05:30
NickrenREN
7d00e5cfb6 remove deprecated NodeLegacyHostIP 2017-04-24 11:01:25 +08:00
nikhiljindal
ee8379c5b3 Autogenerated bazel changes 2017-04-22 18:23:52 -07:00
nikhiljindal
c82c1b05fd Updating tests 2017-04-22 18:23:51 -07:00
nikhiljindal
df1288c3fa Using apimachinerymeta to manipulate finalizers to remove duplicate code 2017-04-22 18:23:51 -07:00
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
8144a11e62 Merge pull request #44639 from marun/kubefed-apiserver-on-high-port
Automatic merge from submit-queue (batch tested with PRs 44645, 44639, 43510)

[Federation][kubefed]: Set apiserver to bind securely to 8443 instead of 443

On platforms like OpenShift that don't run containers as root by default, binding to ports < 1000 is not permitted.  Having the apiserver bind to a high port means it can run with reduced privileges.  The service will still expose the apiserver on 443, so this change shouldn't impact clients of the federation api.

cc: @kubernetes/sig-federation-pr-reviews @perotinus
2017-04-18 23:22:02 -07:00
Maru Newby
767ebf8b9e kubefed: Set apiserver pod to bind securely to 8443 instead of 443
On platforms like OpenShift that don't run containers as root by
default, binding to ports < 1000 is not permitted.  Having the
apiserver bind to a high port means it can run with reduced
privileges.  The service will still expose the apiserver on 443, so
this change shouldn't impact clients of the federation api.
2017-04-18 19:12:46 -07:00
Kubernetes Submit Queue
768859404b Merge pull request #41849 from perotinus/kubefedlogs
Automatic merge from submit-queue

[Federation] Print out status updates while `kubefed init` is running

This is not an ideal final state–it does not address the appearance of hanging during long-running commands, for example–but it provides some level of information when the operations are successful.

See #41725.

**Release note**:

```release-note
Prints out status updates when running `kubefed init`
```
2017-04-18 01:01:57 -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
Jonathan MacMillan
39bfcfbba4 [Federation] Print out status updates while kubefed is running. 2017-04-17 14:53:07 -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
Maru Newby
3e4236d545 fed: Add type adapter registration to simplify maintenance 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
Kubernetes Submit Queue
19d722671b Merge pull request #43297 from mvdan/kubectl-params
Automatic merge from submit-queue

kubectl/cmd: remove a bunch of unused parameters

Found with github.com/mvdan/unparam.

**Release note**: NONE
2017-04-13 04:07:21 -07:00
Kubernetes Submit Queue
5c94d42236 Merge pull request #44378 from FengyunPan/update-federation-event
Automatic merge from submit-queue

Use EventTypeWarning instead of EventTypeNormal when failure
2017-04-13 01:39:02 -07:00
Kubernetes Submit Queue
66b8a88b83 Merge pull request #44380 from justinsb/route53_avoid_panic
Automatic merge from submit-queue

dnsprovider: Avoid panic if fields are nil

The aws-sdk has some helper functions which should generally be used
whenever dereferencing an AWS provided pointer, in case the pointer is
nil, which would otherwise be a panic.

Issue https://github.com/kubernetes/kops/issues/2347

```release-note
dnsprovider: avoid panic if route53 fields are nil
```
2017-04-12 22:26:19 -07:00
Justin Santa Barbara
4c0e0fc890 dnsprovider: Avoid panic if fields are nil
The aws-sdk has some helper functions which should generally be used
whenever dereferencing an AWS provided pointer, in case the pointer is
nil, which would otherwise be a panic.

Issue https://github.com/kubernetes/kops/issues/2347
2017-04-12 02:13:50 -04:00
FengyunPan
0845bd389a Use EventTypeWarning instead of EventTypeNormal when failure 2017-04-12 11:53:54 +08:00
Chao Xu
08aa712a6c move helpers.go to helper 2017-04-11 15:49:11 -07: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
Kubernetes Submit Queue
3c7616eb19 Merge pull request #42683 from perotinus/annotations
Automatic merge from submit-queue

[Federation][kubefed] Annotate all Federation API objects with the federation name and (if applicable) the cluster name.

Address part of #42324.

```release-note
Adds annotations to all Federation objects created by kubefed.
```
2017-04-10 18:42:00 -07:00
Jonathan MacMillan
85b4313ac3 [Federation][kubefed] Annotate all Federation API objects with the federation name and (if applicable) the cluster name. 2017-04-10 16:36:47 -07:00
Irfan Ur Rehman
fe87957818 [Federation][Kubefed] Bug fix to enable disabling federation controllers through override args 2017-04-10 12:44:02 +05:30
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
Daniel Martí
810dbc5e98 kubectl/cmd: remove a bunch of unused parameters
Found with github.com/mvdan/unparam.
2017-04-04 10:36:30 +01:00
Maru Newby
304030a61c fed: Add integration test for secrets 2017-03-30 12:58:39 -07: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
f1575cca52 Merge pull request #43343 from madhusudancs/fed-remove-kubefed-init-todos
Automatic merge from submit-queue

[Federation] Remove TODOs that are already implemented or are irrelevant now.

**Release note**:

```release-note
NONE
```
2017-03-24 11:27:57 -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
Kubernetes Submit Queue
8752bfb526 Merge pull request #43229 from mwielgus/cm-fix
Automatic merge from submit-queue

Fix federated config map unit tests

Fixes #41419 and #42847 and possibly other issues in this area.

cc: @nikhiljindal @csbell @perotinus
2017-03-18 05:08:18 -07:00
Madhusudan.C.S
d9ada58de3 Remove TODOs that are already implemented or are irrelevant now. 2017-03-17 21:35:15 -07:00
fen4o
c9a14253c6 Fix typo in kubefed init's example 2017-03-17 01:07:55 +02: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
Kubernetes Submit Queue
c2907e4cdc Merge pull request #42922 from csbell/csbell-deployments
Automatic merge from submit-queue (batch tested with PRs 42642, 42899, 42922)

[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 18:08:14 -08:00
Kubernetes Submit Queue
9590f694c8 Merge pull request #41830 from irfanurrehman/fed-rbac-1
Automatic merge from submit-queue

[Federation] Kubefed Init should use the right RBAC API version clientset

**What this PR does / why we need it**:
Implements the need as described in https://github.com/kubernetes/kubernetes/issues/41263
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #
https://github.com/kubernetes/kubernetes/issues/41263

**Special notes for your reviewer**:
@madhusudancs @shashidharatd @marun 
cc @kubernetes/sig-federation-bugs

**Release note**:

```
NONE
```
2017-03-10 15:56:47 -08: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
Kubernetes Submit Queue
3a722c1e8e Merge pull request #42838 from shashidharatd/kubefed-2
Automatic merge from submit-queue

[Federation] Fix removing kube-dns configmap during cluster unjoin

Fixes: #42836 

cc @madhusudancs @kubernetes/sig-federation-bugs
2017-03-10 04:42:04 -08:00
shashidharatd
ffeb2323bd Avoid removing kube-dns configmap 2017-03-10 13:24:32 +05:30
Christian Bell
bcad7093b2 [Federation] Prevent trailing periods in kube-dns federations domains
kubefed-level fix to catch cases where FEDERATIONS_DOMAIN_MAP is
not set in the environment (i.e. CI).
2017-03-09 11:22:39 -08:00
Irfan Ur Rehman
a2d6d98c68 [Federation][Kubefed] Use the discovered api version using the discovery client for RBAC 2017-03-09 20:10:06 +05:30
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
4672314029 Merge pull request #41682 from perotinus/unpwandtokens
Automatic merge from submit-queue (batch tested with PRs 41984, 41682, 41924, 41928)

Add options to kubefed telling it to generate HTTP Basic and/or token credentials for the Federated API server

fixes #41265.

**Release notes**:
```release-note
Adds two options to kubefed, `-apiserver-enable-basic-auth` and `-apiserver-enable-token-auth`, which generate an HTTP Basic username/password and a token respectively for the Federated API server.
```
2017-03-02 10:51:10 -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
Jonathan MacMillan
3d3941c6d8 Adds support for HTTP basic and token authentication to kubefed. 2017-03-01 11:04:05 -08:00
Chao Xu
5bfacf59f6 API 2017-02-28 23:05:40 -08:00
Kubernetes Submit Queue
1a35155025 Merge pull request #41973 from wojtek-t/build_non_alpha_3_0_17_etcd_image
Automatic merge from submit-queue (batch tested with PRs 42162, 41973, 42015, 42115, 41923)

Release 3.0.17 etcd image
2017-02-28 22:05:59 -08:00
Irfan Ur Rehman
b1bb51b6e8 [Federation][kubefed] Remove unnecessary flags from init and use overrides instead 2017-02-28 16:23:54 +05:30
Kubernetes Submit Queue
a7d9418c08 Merge pull request #42092 from marun/kubefed-init-dns-mandatory
Automatic merge from submit-queue (batch tested with PRs 41937, 41151, 42092, 40269, 42135)

[Federation] Make --dns-provider mandatory for kubefed

Targets #40757

I thought about adding a test for this but I decided it wasn't worth it.  There's too much setup involved in being able to run ``Complete`` for such a simple change.

**Release note**:

```release-note
The --dns-provider argument of 'kubefed init' is now mandatory and does not default to `google-clouddns`. To initialize a Federation control plane with Google Cloud DNS, use the following invocation: 'kubefed init --dns-provider=google-clouddns'
```

cc: @kubernetes/sig-federation-pr-reviews @madhusudancs
2017-02-28 01:24:09 -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
Maru Newby
d1b6192f10 kubefed: make --dns-provider mandatory 2017-02-27 08:48:03 -08:00
Wojciech Tyczynski
74266e0dc0 Release 3.0.17 etcd image 2017-02-27 16:23:44 +01:00
Maciej Szulik
27259358cb Switch ClientAccessFactory to use clientset.Interface rather than actual type 2017-02-27 13:13:06 +01:00
Kubernetes Submit Queue
70a268528e Merge pull request #39338 from irfanurrehman/fed-join-1
Automatic merge from submit-queue (batch tested with PRs 42058, 41160, 42065, 42076, 39338)

[Federation] Create configmap for the cluster kube-dns when cluster joins and remove when it unjoins

This PR implements the functionality as needed in https://github.com/kubernetes/kubernetes/issues/38400

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

**Release note**:

```
kubefed join can now automatically create a configmap or add information to already existing one, storing this federation name vs zone name information in the joining cluster.
Further kubefed unjoin can remove this configmap or only this information from the configmap, if the unjoin cluster is registered with multiple federations.
The name of the configmap is kube-dns and the information in it is consumed by the in-cluster dns server.
```
2017-02-27 01:30:08 -08: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
Kubernetes Submit Queue
267608029b Merge pull request #40528 from shashidharatd/kubefed-2
Automatic merge from submit-queue (batch tested with PRs 41954, 40528, 41875, 41165, 41877)

[Federation][kubefed] Support configuring dns-provider

**What this PR does / why we need it**:
Some environments might need to configure the dns-provider using custom configurations for deploying federation control plane. This PR will facilitate such scenarios. please refer to #40620 

Now we can pass dns provider configuration using `dns-provider-config` flag to `kubefed init`

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

**Release note**:

```
[Federation] Introduced a new flag --dns-provider-config to kubefed to configure dns provider via a config file in local file system.
```

cc @kubernetes/sig-federation-misc @madhusudancs @irfanurrehman @marun
2017-02-26 14:54:51 -08:00
Kubernetes Submit Queue
e2b723884a Merge pull request #41562 from alejandroEsc/ae/test/check
Automatic merge from submit-queue (batch tested with PRs 41701, 41818, 41897, 41119, 41562)

Updated configmap_controller_test.go

**What this PR does / why we need it**: A few style decisions to make this test a bit harder to break. Including a fix to help it fail and not panic when channel produces a nil.

**Release note**:

```
NONE
```
2017-02-26 14:02:55 -08:00
Irfan Ur Rehman
7efd4221d8 [Federation][Kubefed] Create configmap for the cluster kube-dns at join and remove at unjoin 2017-02-24 15:04:23 +05:30
timchenxiaoyu
5ec5e0be49 daemon not deamon 2017-02-24 17:15:51 +08:00
Saad Ali
6b50d31bd6 Merge pull request #41955 from shashidharatd/revert-41651-kubefed-3
Revert "[Federation][kubefed] Add label selector for etcd pvc"
2017-02-23 17:43:42 -08:00
Andy Goldstein
a3a2246f73 federation: use generated listers 2017-02-23 13:56:52 -05:00
shashidharatd
d3adaeafe0 Enable configuring dns-provider from kubefed 2017-02-23 23:52:25 +05:30
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
Kubernetes Submit Queue
f1182ddc27 Merge pull request #39855 from justinsb/dns_logging
Automatic merge from submit-queue

route53: configure verbose authentication errors

Otherwise we get an error message which is confusingly written on
authentication failures.

Probably blocked on #39854
2017-02-23 08:42:02 -08:00
Wojciech Tyczynski
b70e392161 Update clusters to use 3.0.17 etcd 2017-02-23 10:08:50 +01:00
Shashidhara T D
c71229a8ed Revert "[Federation][kubefed] Add label selector for etcd pvc" 2017-02-23 10:41:17 +05:30
Justin Santa Barbara
66640c7852 route53: set WithCredentialsChainVerboseErrors
Otherwise we get an error message which is confusingly written on
authentication failures.
2017-02-22 23:19:18 -05:00
Christian Bell
676291474a Revert conditional updates to configmap that breaks ingress 2017-02-21 18:02:58 -08:00
Kubernetes Submit Queue
c577108c06 Merge pull request #39964 from justinsb/route53_logger
Automatic merge from submit-queue (batch tested with PRs 39991, 39964)

route53 dnsprovider: add more logging

In the aws cloudprovider, we have a custom logger.  This adds the same
logger to the route53 dnsprovider.

We copy the (simple) code in anticipation that the providers are likely
to live in separate repos in future.

```release-note
federation aws: add logging of route53 calls
```
2017-02-19 19:47:36 -08:00
Kubernetes Submit Queue
8631aa2eb2 Merge pull request #39991 from justinsb/verbose_changeset_logging
Automatic merge from submit-queue

dnsprovider route53: log changeset details at v(8)

Otherwise it can be hard to know exactly what is changing and whether
the changes could be optimized, or to troubleshoot if someone were
accidentally to have a bug in their calling code.

```release-note
NONE
```
2017-02-19 19:07:17 -08:00
Justin Santa Barbara
5db0778823 dnsprovider route53: log changeset details at v(8)
Otherwise it can be hard to know exactly what is changing and whether
the changes could be optimized, or to troubleshoot if someone were
accidentally to have a bug in their calling code.
2017-02-19 17:26:16 -05:00
Justin Santa Barbara
df91e00231 route53 dnsprovider: add more logging
In the aws cloudprovider, we have a custom logger.  This adds the same
logger to the route53 dnsprovider.

We copy the (simple) code in anticipation that the providers are likely
to live in separate repos in future.
2017-02-19 17:25:40 -05:00
Kubernetes Submit Queue
00b02117bc Merge pull request #39958 from justinsb/dnsprovider_parent
Automatic merge from submit-queue (batch tested with PRs 39373, 41585, 41617, 41707, 39958)

dnsprovider: Expose parent objects in interfaces

This will allow us to pass e.g. a ResourceRecordChangeset, rather than a
ResourceRecordChangeset, the parent ResourceRecordSets, and the
grandparent Zone.

Laying the groundwork for simplifying / optimizing the federation logic.

```release-note
NONE
```
2017-02-19 13:50:43 -08:00
Kubernetes Submit Queue
f69570c92e Merge pull request #41603 from luxas/kubeadm_reorder_kubeconfig
Automatic merge from submit-queue (batch tested with PRs 41043, 39058, 41021, 41603, 41414)

kubeadm: Make a separate util package for kubeconfig logic

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

There are a lot of packages that need to consume kubeconfig logic, so it should be in a central place.
Having it in `kubeadmutil` is suboptimal, because then it get mixed with everything else.

This splits that logic out to a generic place so it then also can be consumed in https://github.com/kubernetes/kubernetes/pull/41417, from where it's broken out.

 - Move {admin,kubelet}.conf out as constants
 - Make a separate util package for kubeconfig logic

**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
NONE
```
2017-02-19 00:58:46 -08:00
Justin Santa Barbara
fb9af639d3 dnsprovider: Expose parent objects in interfaces
This will allow us to pass e.g. a ResourceRecordChangeset, rather than a
ResourceRecordChangeset, the parent ResourceRecordSets, and the
grandparent Zone.

Laying the groundwork for simplifying / optimizing the federation logic.
2017-02-19 02:01:30 -05:00
shashidharatd
a3270b1321 Add label selector for etcd pvc 2017-02-18 06:22:52 +05:30
Lucas Käldström
60b789b1c7
kubeadm: Move {admin,kubelet}.conf out as constants and make a separate util package for kubeconfig logic 2017-02-17 21:36:58 +02:00
Kubernetes Submit Queue
33c9ab4830 Merge pull request #41410 from irfanurrehman/fed-bug-fix-1
Automatic merge from submit-queue (batch tested with PRs 41134, 41410, 40177, 41049, 41313)

[Federation][Kubefed] Bug fix relating kubeconfig path in kubefed init

**What this PR does / why we need it**:
Fixes https://github.com/kubernetes/kubernetes/issues/41305

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #
https://github.com/kubernetes/kubernetes/issues/41305
The kubeconfig explicit path is not updated correctly when supplied through the --kubeconfig flag in kubefed init. This leads to the details about the initialised federation control plane not getting updated in the correct kubeconfig file.

**Special notes for your reviewer**:
@madhusudancs 

**Release note**:

```
Fixed a bug that caused the kubeconfig entry for the initialized federation control plane to be not written to the supplied kubeconfig file when the file was supplied through the --kubeconfig flag.
```
2017-02-15 05:58:17 -08:00
Kubernetes Submit Queue
6f59c752c8 Merge pull request #41243 from shashidharatd/kubefed-1
Automatic merge from submit-queue (batch tested with PRs 40297, 41285, 41211, 41243, 39735)

Add LegacyHostIP as a fallback to federation api-server nodeport service

**What this PR does / why we need it**:
while deploying federation using kubefed and using NodePort type service for api-server, if the cluster does not have NodeExternalIP for nodes, then it leads to incorrect endpoint being written to kubeconfig.
So falling back to use LegacyHostIP in such cases.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #
Partly fixes an issue in this [thread](https://github.com/kubernetes/kubernetes/issues/41127#issuecomment-278888658)

**Special notes for your reviewer**:

**Release note**:
`NONE`

```release-note
```
cc @kubernetes/sig-federation-bugs @madhusudancs
2017-02-15 03:25:13 -08:00
Irfan Ur Rehman
c71fd73251 [Federation][Kubefed] Bug fix - kubeconfig path not updated properly when supplied through --kubeconfig flag in kubefed init 2017-02-15 11:33:16 +05:30
Kubernetes Submit Queue
af1d04f1f2 Merge pull request #41216 from marun/kubefed-auto-bind-flags
Automatic merge from submit-queue

[Federation][kubefed]: Bind flag values automatically

Update ``kubefed`` to take advantage of cobra's ability to declare variable bindings at the same time as declaring flags, so that flag values are bound automatically.

Targets #41209 

cc: @kubernetes/sig-federation-pr-reviews @irfanurrehman @madhusudancs
2017-02-14 15:29:58 -08:00
deads2k
db0b0bd0f5 move metav1 conversions to metav1 2017-02-14 11:47:23 -05:00
Maru Newby
b4aa26704d kubefed: Bind flag values automatically 2017-02-14 08:05:07 -08:00
Kubernetes Submit Queue
1f4e2efc5b Merge pull request #41184 from liggitt/subject-apigroup
Automatic merge from submit-queue (batch tested with PRs 41357, 41178, 41280, 41184, 41278)

Switch RBAC subject apiVersion to apiGroup in v1beta1

Referencing a subject from an RBAC role binding, the API group and kind of the subject is needed to fully-qualify the reference.

The version is not, and adds complexity around re-writing the reference when returning the binding from different versions of the API, and when reconciling subjects.

This PR:
* v1beta1: change the subject `apiVersion` field to `apiGroup` (to match roleRef)
* v1alpha1: convert apiVersion to apiGroup for backwards compatibility
* all versions: add defaulting for the three allowed subject kinds
* all versions: add validation to the field so we can count on the data in etcd being good until we decide to relax the apiGroup restriction

```release-note
RBAC `v1beta1` RoleBinding/ClusterRoleBinding subjects changed `apiVersion` to `apiGroup` to fully-qualify a subject. ServiceAccount subjects default to an apiGroup of `""`, User and Group subjects default to an apiGroup of `"rbac.authorization.k8s.io"`.
```

@deads2k @kubernetes/sig-auth-api-reviews @kubernetes/sig-auth-pr-reviews
2017-02-13 21:07:10 -08:00
Christian Bell
eceba860d4 Add finalizers to federated configmaps 2017-02-13 14:36:17 -08:00
Jordan Liggitt
2a76fa1c8f
Switch RBAC subject apiVersion to apiGroup in v1beta1 2017-02-13 15:33:09 -05:00
shashidharatd
f8d680b40f Add LegacyHostIP as a fallback to federation api-server nodeport service 2017-02-10 16:38:27 +05:30
Kubernetes Submit Queue
c429a074e8 Merge pull request #40917 from irfanurrehman/fed-init-flags-1
Automatic merge from submit-queue (batch tested with PRs 40917, 41181, 41123, 36592, 41183)

[Federation] Add override flags options to kubefed init

**What this PR does / why we need it**:
Allows modification of startup flags (of apiserver and controller manager) through kubefed 
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #
https://github.com/kubernetes/kubernetes/issues/40398
**Special notes for your reviewer**:
I haven't removed the existing redundant flags now (for example --dns-zone-name) intentionally to avoid breaking any existing tests that might use them.
I guess that would be better done as a follow up PR.
@madhusudancs @marun @nikhiljindal 
**Release note**:

```
It is now possible for the user to modify any startup flag of federation-apiserver and federation-controller-manager when deployed through kubefed.
There are two new options introduced in kubefed:
--apiserver-arg-overrides and --controllermanager-arg-overrides
Any number of actual federation-apiserver or federation-controller-manager flags can be specified using these options.
Example:
kubefed init "-other options-" ----apiserver-arg-overrides "--flag1=value1,--flag2=value2"
```
2017-02-09 23:10:41 -08:00
Irfan Ur Rehman
9a56a75319 [Federation] Review comment fixes for add override flags options to kubefed init 2017-02-09 12:27:29 +05:30
Kubernetes Submit Queue
b2ea780731 Merge pull request #39957 from justinsb/dnsprovider_upsert
Automatic merge from submit-queue

dnsprovider: Add upsert

Although Google Cloud DNS requires strict add & remove calls, most
dnsproviders actually support upsert, and an add & remove is much more
expensive (primarily because of the need to fetch the pre-image).

Add support for 'upsert' operations, which don't require the pre-image,
and simply overwrite the existing record.  This is much cheaper on
Amazon Route53, for example.

```release-note
NONE
```
2017-02-07 10:01:11 -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
Irfan Ur Rehman
0ad1934d5a [Federation] Unit test updates for override flags options in kubefed init 2017-02-06 15:55:14 +05:30
Irfan Ur Rehman
98fb5c0e22 [Federation] Add override flags options to kubefed init 2017-02-06 15:24:28 +05:30
Kubernetes Submit Queue
419d38a965 Merge pull request #40516 from shashidharatd/kubefed-1
Automatic merge from submit-queue

[Federation][kubefed] Add option to expose federation apiserver on nodeport service

**What this PR does / why we need it**:
This PR adds an option to kubefed to expose federation api server over nodeport. This can be useful to deploy federation in non-cloud environments. This PR is target to address #39271

**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**:

```
[Federation] kubefed init learned a new flag, `--api-server-service-type`, that allows service type to be specified for the federation API server.
[Federation] kubefed init also learned a new flag, `--api-server-advertise-address`, that allows specifying advertise address for federation API server in case the service type is NodePort.
```

@kubernetes/sig-federation-misc @madhusudancs
2017-02-05 12:48:33 -08:00
Kubernetes Submit Queue
320f7ce6f3 Merge pull request #40911 from nikhiljindal/finalizer1
Automatic merge from submit-queue (batch tested with PRs 40906, 40924, 40938, 40902, 40911)

federation: Updating deletion helper to add both finalizers in a single update

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

cc @mwielgus @csbell
2017-02-04 03:49:55 -08:00
nikhiljindal
740aa93838 Fix deployment unit test by adding a dummy update reactor 2017-02-03 12:16:13 -08:00