Commit Graph

501 Commits (0b04890605fd20ce2aba1ad56cc42a86c58ea564)

Author SHA1 Message Date
Kubernetes Submit Queue 2b34988712 Merge pull request #29515 from madhusudancs/fed-makefile
Automatic merge from submit-queue

A build and deploy script to manage cluster federation lifecycle and a Makefile wrapper to drive that process.

Also includes a sample config file to describe clusters.

The build script implements the following things:
1. Generates the required configs.
2. Builds the hyperkube binary and the corresponding docker image.
3. Pushes the image to a specified repository.
4. Pulls the federation installer docker images.
5. Builds the Kubernetes clusters described the config.json file.
6. Pushes the federation components to one of the Kubernetes clusters
   built in the previous step.
7. Also turns down the federation components and the Kubernetes
   clusters.

**NOTE**: Installer images are right now being pulled from my public repository of docker images. I am working on pushing them to our release repository.

```release-note
Cluster Federation components can now be built and deployed using the make command. Please see federation/README.md for details.
```

cc @kubernetes/sig-cluster-federation @colhom 

Fixes: Issue #26655
2016-08-12 18:02:46 -07:00
nikhiljindal 2619d0440d Adding events to federation clientset and adding an e2e 2016-08-12 17:47:49 -07:00
Marcin Wielgus 9c794c4296 Fix in default client factory in federated informer 2016-08-13 02:12:35 +02:00
nikhiljindal 1d76884336 Adding events to federation apiserver 2016-08-12 10:48:19 -07:00
Marcin Wielgus 8dbe762e6f SetClientFactory in FederatedInformer 2016-08-12 17:34:01 +02:00
Daniel Smith 77f5813194 update generated files, including the client 2016-08-11 17:06:55 -07:00
Daniel Smith f1fd638962 fix register.go files up + add test import 2016-08-11 17:06:54 -07:00
Marcin Wielgus 8b53924a97 Federation - common libs - get clientset for cluster 2016-08-11 16:21:34 +02:00
Madhusudan.C.S f3c82af6b6 Switch tab indentation to two spaces. 2016-08-10 23:52:42 -07:00
Madhusudan.C.S fd03b9c43e Add a TODO to re-evaluate jq dependency. 2016-08-10 23:47:29 -07:00
Madhusudan.C.S 7f20effd92 Ensure the provider is supported and exit otherwise. 2016-08-10 23:32:00 -07:00
Madhusudan.C.S 1c8b418383 Docs munger and flags verification fixes. 2016-08-10 23:31:57 -07:00
Madhusudan.C.S 40642fdd28 Add detect-project capability. 2016-08-10 23:24:40 -07:00
Madhusudan.C.S 616eab0296 Add a README.md file for cluster federation. 2016-08-10 23:24:40 -07:00
Madhusudan.C.S 32c181daeb Add a function to ensure that required credential files exist. 2016-08-10 23:24:40 -07:00
Madhusudan.C.S dbdc91fc79 Recompute KUBE_VERSION after rebuild in the dev environment. 2016-08-10 23:24:39 -07:00
Madhusudan.C.S 2efdc24b7f Build both kubectl and hypekube together, one is required for the other. 2016-08-10 23:24:39 -07:00
Madhusudan.C.S a78d2851d9 Installer images are supposed to be public, so we can directly pull without gcloud prefix. 2016-08-10 23:24:39 -07:00
Madhusudan.C.S a527204a60 Add some status logging. 2016-08-10 23:24:38 -07:00
Madhusudan.C.S c4d4aff0d3 Implement a build and deploy script to turn up/down federation.
Also, wrap the script around a Makefile. And also provide a sample
config file to describe clusters.

The build script implements the following things:
1. Generates the required configs.
2. Builds the hyperkube binary and the corresponding docker image.
3. Pushes the image to a specified repository.
4. Pulls the federation installer docker images.
5. Builds the Kubernetes clusters described the config.json file.
6. Pushes the federation components to one of the Kubernetes clusters
   built in the previous step.
7. Also turns down the federation components and the Kubernetes
   clusters.
2016-08-10 23:24:38 -07: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
Kubernetes Submit Queue 1d4e0ea3c1 Merge pull request #30341 from sttts/sttts-simplify-deepcopy-canonical-element
Automatic merge from submit-queue

Simplify canonical element term in deepcopy

Replace the old functional canonical element term in deepcopy registration with direct struct instantiation.

The old way was an artifact of non-uniform pointer/non-pointer types in the signature of deepcopy function. Since we changed that to always be a pointer, we can simplify the code.

<!-- 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/30341)
<!-- Reviewable:end -->
2016-08-10 16:34:07 -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
bindata-mockuser 6cce4534f8 Update generated code 2016-08-10 09:12:40 +02:00
Kubernetes Submit Queue 8da4d96839 Merge pull request #30112 from nikhiljindal/federationIngressAPI
Automatic merge from submit-queue

Adding ingress resource to federation apiserver

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

cc @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/30112)
<!-- Reviewable:end -->
2016-08-10 00:08:41 -07: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 f53a35fb76 Merge pull request #29147 from caesarxuchao/cut-client-repo-staging
Automatic merge from submit-queue

Cut the client repo, staging it in the main repo

Tracking issue: #28559
ref: https://github.com/kubernetes/kubernetes/pull/25978#issuecomment-232710174

This PR implements the plan a few of us came up with last week for cutting client into its own repo:
1. creating "_staging" (name is tentative) directory in the main repo, using a script to copy the client and its dependencies to this directory
2. periodically publishing the contents of this staging client to k8s.io/client-go repo
3. converting k8s components in the main repo to use the staged client. They should import the staged client as if the client were vendored. (i.e., the import line should be `import "k8s.io/client-go/<pacakge name>`). This requirement is to ease step 4.
4. In the future, removing the staging area, and vendoring the real client-go repo.

The advantage of having the staging area is that we can continuously run integration/e2e tests with the latest client repo and the latest main repo, without waiting for the client repo to be vendored back into the main repo. This staging area will exist until our test matrix is vendoring both the client and the server.

In the above plan, the tricky part is step 3. This PR achieves it by creating a symlink under ./vendor, pointing to the staging area, so packages in the main repo can refer to the client repo as if it's vendored. To prevent the godep tool from messing up the staging area, we export the staged client to GOPATH in hack/godep-save.sh so godep will think the client packages are local and won't attempt to manage ./vendor/k8s.io/client-go.

This is a POC. We'll rearrange the directory layout of the client before merge.

@thockin @lavalamp @bgrant0607 @kubernetes/sig-api-machinery

<!-- 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/29147)
<!-- Reviewable:end -->
2016-08-09 17:12:14 -07:00
Kubernetes Submit Queue bd421c9618 Merge pull request #29399 from timothysc/etcd3_scripts
Automatic merge from submit-queue

Update etcd 2.2 references to use 3.0.x

This update an assortment of etcd 2.2.X references to 3.0.4 in the code base.  

/cc @hongchaodeng 

xref: https://github.com/kubernetes/kubernetes/issues/22448

<!-- 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/29399)
<!-- Reviewable:end -->
2016-08-09 11:54:06 -07:00
Timothy St. Clair 24993b0343 Update generated files due to dependency shift.
Also minor bug fix in federation api.
2016-08-09 10:41:09 -05: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 da53a24763 Merge pull request #29993 from mksalawa/remove_etcd_default_in_genericapiserver
Automatic merge from submit-queue

Remove default etcd validation in generic apiserver

Moving verification of `--etcd-servers` to the concrete apiserver instead of checking during defaulting in generic apiserver.

The context for this change is that heapster (will be another apiserver) doesn't need to have etcd underneath.

<!-- 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/29993)
<!-- Reviewable:end -->
2016-08-09 06:01:48 -07:00
mksalawa a806351cc3 Extract etcd options from genericapiserver. 2016-08-09 13:35:53 +02:00
Kubernetes Submit Queue 15ad9be67f Merge pull request #30249 from hongchaodeng/fix
Automatic merge from submit-queue

make reousrce prefix assignment consistent

Make reousrce prefix assignment consistent with other registries

<!-- 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/30249)
<!-- Reviewable:end -->
2016-08-09 03:40:29 -07:00
Wojciech Tyczynski 8a8cd06ea4 Configurable cache sizes of cachers 2016-08-09 09:41:48 +02:00
Hongchao Deng 5bf2efc581 make reousrce prefix consistent with other registries 2016-08-08 22:19:39 -07:00
Jordan Liggitt 4db004972a
Plumb context to strategy methods 2016-08-08 22:33:25 -04: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
Chao Xu a771578a1c move pkg/util/ files to their own package to reduce client-go dependencies 2016-08-05 23:32:02 -07: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
nikhiljindal af692e3714 Updating the generated client to include ingress 2016-08-05 16:04:34 -07:00
nikhiljindal 89a75e2a85 Adding ingress to federation apiserver 2016-08-05 12:05:21 -07:00
Kubernetes Submit Queue 5f3cc4a941 Merge pull request #30130 from mwielgus/cluster-lifecycle
Automatic merge from submit-queue

Federation - common libs - cluster lifecycle handlers in FederatedInformer

Adds cluster lifecycle handlers to FederatedInformer to execute some actions when a cluster becomes available or unavailable.

ref: #29347

cc: @nikhiljindal @wojtek-t @kubernetes/sig-cluster-federation
2016-08-05 06:53:43 -07:00
Marcin Wielgus fc263877a5 Federation - common libs - cluster lifecycle handlers in FederatedInformer 2016-08-05 15:09:02 +02:00
Kubernetes Submit Queue 1cd07a276c Merge pull request #29138 from kshafiee/pr-27789
Automatic merge from submit-queue

federation: Adding secret API

Adding secret API to federation-apiserver and updating the federation client to include secrets
2016-08-04 18:11:23 -07:00
Kubernetes Submit Queue 7921a9ce67 Merge pull request #25816 from soltysh/scheduledjob_kubectl
Automatic merge from submit-queue

ScheduledJob kubectl

@erictune the last part (kubectl) of the ScheduledJob, as usual builds on top of previous PRs, so only last 2 commits matter (the kubectl one and storage leftovers).

```release-note
* Introducing ScheduledJobs as described in [the proposal](https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/scheduledjob.md) as part of `batch/v2alpha1` version (experimental feature).
```
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-08-04 17:36:07 -07: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
Maciej Szulik e6c327048e Forced using batch/v2alpha1 for storing ScheduledJob 2016-08-03 17:25:37 +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
kshafiee 262ae3d021 Adding secrets to federation-apiserver & clientset, adding e2e tests 2016-08-03 02:43:48 +00:00
Lucas Käldström c88a07ce1a Run goimports 2016-08-02 15:12:39 +03:00
Madhusudan.C.S 31f5525f43 Revert "[Federation] Downsize the release binary distribution." 2016-08-01 23:54:09 -07:00
k8s-merge-robot 37d3d390df Merge pull request #29632 from madhusudancs/fed-bin-downsize
Automatic merge from submit-queue

[Federation] Downsize the release binary distribution.

There are two things that this PR implements:

1. It removes `federation-apiserver` and `federation-controller-manager` from binaries and docker_wrapped_binaries target lists.
2. Build the docker image for `hyperkube` on-the-fly while pushing the federation images. 

```release-note
Federation binaries and their corresponding docker images - `federation-apiserver` and `federation-controller-manager` are now folded in to the `hyperkube` binary. If you were using one of these binaries or docker images, please switch to using the `hyperkube` version. Please refer to the federation manifests - `federation/manifests/federation-apiserver.yaml` and `federation/manifests/federation-controller-manager-deployment.yaml` for examples.
```

cc @kubernetes/sig-cluster-federation @colhom 

Fixes Issue #28633
2016-08-01 22:55:46 -07:00
Madhusudan.C.S b5bea93954 Build the hyperkube docker image on-the-fly.
This is only a temporary fix until the proposal in issue
https://github.com/kubernetes/kubernetes/issues/28630 is implemented.

Also, the new build/deployment method completely obviates this step.
2016-08-01 11:45:21 -07:00
Madhusudan.C.S 5a3a84968b [Federation] Do not build separate binaries for federation control plane components, hyperkube should be sufficient. 2016-08-01 11:45:21 -07: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
k8s-merge-robot 7e3246d415 Merge pull request #29788 from xiangpengzhao/fix-clientRetryCount
Automatic merge from submit-queue

Keep retry times the same for each place where trying to ensure DNS Records

There are three places where ensureDnsRecords is retried. But they have different retry times. One place [(here)](https://github.com/xiangpengzhao/kubernetes/blob/master/federation/pkg/federation-controller/service/endpoint_helper.go#L107) is clientRetryCount but other two [(here](https://github.com/xiangpengzhao/kubernetes/blob/master/federation/pkg/federation-controller/service/endpoint_helper.go#L138) and [here)](https://github.com/xiangpengzhao/kubernetes/blob/master/federation/pkg/federation-controller/service/endpoint_helper.go#L161) are clientRetryCount + 1. Though this case doesn't have any influence, shouldn't we keep retry times the same each place?

also fix other nits:
use the same log level.
log the error in each loop.

cc @quinton-hoole
2016-07-29 13:33:14 -07:00
k8s-merge-robot 0693d47987 Merge pull request #29241 from jianhuiz/federation-apiserver-extensions-replicaset-client
Automatic merge from submit-queue

Generate federation apiserver extensions replicaset client

generate clientset for extensions/ReplicaSet of federation apiserver

@nikhiljindal @quinton-hoole, @deepak-vij
#24764
2016-07-29 11:40:12 -07: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 2817674715 Merge pull request #29557 from deads2k/make-prefx-configurable
Automatic merge from submit-queue

make the resource prefix in etcd configurable for cohabitation

This looks big, its not as bad as it seems.

When you have different resources cohabiting, the resource name used for the etcd directory needs to be configurable.  HPA in two different groups worked fine before.  Now we're looking at something like RC<->RS.  They normally store into two different etcd directories.  This code allows them to be configured to store into the same location.

To maintain consistency across all resources, I allowed the `StorageFactory` to indicate which `ResourcePrefix` should be used inside `RESTOptions` which already contains storage information.

@lavalamp affects cohabitation.
@smarterclayton @mfojtik prereq for our rc<->rs and d<->dc story.
2016-07-28 03:01:28 -07:00
k8s-merge-robot 313272a22c Merge pull request #29508 from k82cn/add_whitspace
Automatic merge from submit-queue

Remove unnecessary empty line.
2016-07-27 19:52:47 -07:00
deads2k aa3db4d995 make the resource prefix in etcd configurable for cohabitation 2016-07-27 07:51:40 -04:00
k8s-merge-robot d038e22d87 Merge pull request #28062 from colhom/add-colhom-federation-owners
Automatic merge from submit-queue

Add colhom to federation OWNERS

Depends on #28042

\cc @quinton-hoole 

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-07-25 17:33:24 -07: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
Klaus Ma 53b94e16d0 Remove unnecessary empty line. 2016-07-23 19:37:13 +08:00
Marcin Wielgus ed92579d2e Replica location planner for Federated ReplicaSet Controller 2016-07-23 02:04:33 +02:00
k8s-merge-robot eaf3d3f708 Merge pull request #28668 from justinsb/update_dns
Automatic merge from submit-queue

Expose Changesets (transactions) in dns provider

This makes the dnsprovider usable in more scenarios, and it also solves
some TODOs in the federation code.

WIP  - I'm going to test this to make sure this both works and is sufficient for use in my dns controller, but I wanted to put some code behind the talk in #28477.  cc @quinton-hoole 

Issue #28477
2016-07-22 16:25:22 -07:00
k8s-merge-robot 7626539683 Merge pull request #29385 from mwielgus/federated-rs-pref
Automatic merge from submit-queue

API types for FederatedReplicaSetPreferences

Currently only internal types just to unblock the work on scheduling part of Federated Replica Set Controller.
2016-07-22 15:35:13 -07:00
Marcin Wielgus 944e7f77b0 Internal types for FederatedReplicaSetPreferences 2016-07-22 23:35:38 +02:00
Justin Santa Barbara 756c17315b Fix route53 stub matching logic: match name & type 2016-07-22 15:09:04 -04:00
k8s-merge-robot df2cf16ddb Merge pull request #26709 from hodovska/master
Automatic merge from submit-queue

Allow shareable resources for admission control plugins.

Changes allow admission control plugins to share resources. This is done via new PluginInitialization structure. The structure can be extended for other resources, for now it is an shared informer for namespace plugins (NamespiceLifecycle, NamespaceAutoProvisioning, NamespaceExists).

If a plugins needs some kind of shared resource e.g. client, the client shall be added to PluginInitializer and Wants methods implemented to every plugin which will use it.
2016-07-22 11:07:05 -07: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
jianhuiz e105833660 add generated federation clientsets for extensions/ReplicaSet 2016-07-21 14:00:35 -07:00
Madhusudan.C.S 31e09d326d Add "federation" API group to the known versions list of federation API clients. 2016-07-21 11:55:44 -07:00
Marcin Wielgus 85dd375cc8 Delaying deliverer for Federated ReplicaSet 2016-07-21 16:49:16 +02:00
Dominika Hodovska 037d116add Factory for SharedIndexInformers 2016-07-21 14:04:48 +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
Dominika Hodovska ba40a528e1 PluginInitializer as a new part of NewFromPlugins method 2016-07-20 12:53:52 +02:00
Dominika Hodovska fc0a3c6dcb Allow shareable resources for admission control plugins 2016-07-20 12:53:52 +02:00
k8s-merge-robot c305c39bcb Merge pull request #28938 from madhusudancs/fed14-kubeconfig-secret-name
Automatic merge from submit-queue

Change the name of the secret that delivers federation kubeconfig.

```release-note
Federation API server kubeconfig secret consumed by federation-controller-manager has a new name.

If you are upgrading your Cluster Federation components from v1.3.x, please run this command to migrate the federation-apiserver-secret to federation-apiserver-kubeconfig serect;

$ kubectl --namespace=federation get secret federation-apiserver-secret -o json | sed 's/federation-apiserver-secret/federation-apiserver-kubeconfig/g' | kubectl create -f -

You might also want to delete the old secret using this command:

$ kubectl delete secret --namespace=federation federation-apiserver-secret
```

The current name, federation-apiserver-secret, is very similar to the
other secret we have, federation-apiserver-secrets, that delivers
somewhat similar data but in a different format. This is extremely
confusing, particularly while debugging.

This change should soothe the pain.

cc @kubernetes/sig-cluster-federation
2016-07-19 23:50:15 -07:00
k8s-merge-robot 4d896cd3b2 Merge pull request #29008 from justinsb/pages_and_pages_of_hosted_zones
Automatic merge from submit-queue

dnsprovider: Use route53 page functions to avoid truncated results

The List<Type>Pages functions make it pretty easy to avoid result truncation;
switch to using them
2016-07-19 20:29:44 -07:00
k8s-merge-robot d34c3fa328 Merge pull request #24764 from XiaoningDing/federation-apiserver-extensions-replicaset
Automatic merge from submit-queue

Add extensions/replicaset to federation-apiserver

Add extensions/replicaset for federated scheduler (#24038) as all k8s api objects were removed in #23959

Please review only the very last one commit.

#19313 #23653 
@nikhiljindal @quinton-hoole, @deepak-vij, @XiaoningDing, @alfred-huangjian @mfanjie @huangyuqi @colhom
2016-07-19 15:51:54 -07:00
Madhusudan.C.S 3ac2ab39b8 Change the name of the secret that delivers federation kubeconfig.
The current name, federation-apiserver-secret, is very similar to the
other secret we have, federation-apiserver-secrets, that delivers
somewhat similar data but in a different format. This is extremely
confusing, particularly while debugging.

This change should soothe the pain.
2016-07-19 12:27:33 -07:00
Madhusudan.C.S 74cf837005 Fix a typo in my Github username [madhusudancs]. 2016-07-19 11:51:45 -07:00
jianhuiz bf3e1a5f97 register extensions/replicasets to federated-apiserver 2016-07-19 10:42:03 -07:00
k8s-merge-robot c25262b951 Merge pull request #26298 from nikhiljindal/createFedService
Automatic merge from submit-queue

federation: Adding namespaces API

Adding namespaces API to federation-apiserver and updating the federation client to include namespaces


--------------------------

Original description:

This adds the namespaces API to federation-apiserver.

The first commit is https://github.com/kubernetes/kubernetes/pull/26142.
2016-07-19 09:22:11 -07:00
k8s-merge-robot 4466531382 Merge pull request #29094 from luxas/gomaxproc
Automatic merge from submit-queue

Remove GOMAXPROCS() calls because they are unnecessary


Now we're setting GOMAXPROCS when every binary starts up, but we don't have to do that anymore, since we've upgraded to Go 1.6

Documentation for it:

> func GOMAXPROCS(n int) int

> GOMAXPROCS sets the maximum number of CPUs that can be executing simultaneously and returns the previous setting. If n < 1, it does not change the current setting. The number of logical CPUs on the local machine can be queried with NumCPU. This call will go away when the scheduler improves. 

A simple program to prove it's unnecessary:

```go
package main
import (
    "fmt"
    "runtime"
)
func main(){
    numCPUBefore := runtime.GOMAXPROCS(runtime.NumCPU())
    numCPUAfter := runtime.GOMAXPROCS(runtime.NumCPU())
    fmt.Println(numCPUBefore, numCPUAfter)
}
```

Output with Go 1.4.2: `1 4`
Output with Go 1.6.2: `4 4`

So I think we should remove calls to GOMAXPROCS now, and it should be pretty straightforward

@thockin @wojtek-t @gmarek @lavalamp @vishh
2016-07-19 08:11:24 -07:00
nikhiljindal 48658ad94d Adding namespace expansion files 2016-07-19 07:38:58 -07:00
nikhiljindal 7b664cff47 Updating the federation clientset to include namespaces 2016-07-19 07:38:58 -07:00
nikhiljindal a0f96fc973 Adding namespaces to federation-apiserver 2016-07-19 07:38:58 -07:00
k8s-merge-robot 9344f2ca89 Merge pull request #29123 from madhusudancs/fed-fix-post-dontcheckingconversiongen
Automatic merge from submit-queue

Register the federation core API conversion and default functions.

This was removed by mistake in 9eb42f (PR #25978). Reverting some
of those changes and adding the new mechanism to autogenerate
conversions for the new types that we might define in this API
group in the future.

cc @kubernetes/sig-cluster-federation 

@thockin @lavalamp please take a look at this once even if the PR merges before you get a chance to take a look.

@thockin particularly see the `federation/apis/core/v1/doc.go` file.

Fixes issue #28615
2016-07-19 05:42:39 -07:00
Lucas Käldström 88ea80b572 Remove GOMAXPROCS() calls because they are unnecessary 2016-07-19 11:08:21 +03:00
Madhusudan.C.S 0072766c41 Register the federation core API conversion and default functions.
This was removed by mistake in 9eb42f (PR #25978). Reverting some
of those changes and adding the new mechanism to autogenerate
conversions for the new types that we might define in this API
group in the future.
2016-07-18 15:10:41 -07:00
k8s-merge-robot fa174bcdaf Merge pull request #29042 from dims/fixup-imports
Automatic merge from submit-queue

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-18 07:23:38 -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
Tim Hockin 3384e03920 Commit generated files
There's been enough people broken by not committing generated code, that we
should undo that until we have a proper client that is `go get` compatible.

This is temporary.
2016-07-15 10:27:51 -07:00
Justin Santa Barbara c8ec72e33c dnsprovider: Use route53 page functions to avoid truncated results
The List<Type>Pages functions make it pretty easy to avoid result truncation;
switch to using them
2016-07-15 11:36:39 -04:00
Clayton Coleman 866e788aba
generate: New Stringers 2016-07-14 12:43:36 -04:00
k8s-merge-robot ae990defcf Merge pull request #26956 from joe2far/fix-typos
Automatic merge from submit-queue

Fixed several typos
2016-07-14 04:13:15 -07:00
k8s-merge-robot 6b6141f812 Merge pull request #28820 from caesarxuchao/patch-subresource
Automatic merge from submit-queue

[client-gen] Allow passing subresources in Patch method

Expand the Patch() method from:
```
Patch(name string, pt api.PatchType, data []byte)
```
to
```
Patch(name string, pt api.PatchType, data []byte, subresources ...string)
```

Continue on #27293. Fixes #26580.

cc @Random-Liu @lavalamp
2016-07-13 16:09:01 -07:00
joe2far 5ead89b5bb Fixed several typos 2016-07-13 15:06:24 +01:00
k8s-merge-robot 6035d88881 Merge pull request #27277 from wojtek-t/cacher_index
Automatic merge from submit-queue

Implement first version of indexing in cacher

This PR adds a first version of indexing in cacher.

It has a really significant impact on performance - __in empty 2000-node cluster, apiserver cpu usage drops by ~75%.__

Not for 1.3, but we need this soon after 1.3 is done.

@lavalamp @mqliang @davidopp @gmarek @kubernetes/sig-scalability
2016-07-13 02:45:23 -07:00
Wojciech Tyczynski 1d9bc58328 Extend Filter interface with Trigger() and use it for pods and nodes 2016-07-13 08:45:18 +02:00
Tim Hockin 9eb42ff108 Don't check in generated conversion code
Conversion is now generated by Makefile, on demand, rather than all at once.
Manually verified no net change in generated code.
2016-07-12 21:52:54 -07:00
Tim Hockin 58441e8775 Don't check in generated deep-copy code
This mostly takes the previously checked in files and removes them, and moves
the generation to be on-demand instead of manual.  Manually verified no change
in generated output.
2016-07-12 21:52:54 -07:00
Dr. Stefan Schimanski 629b25daf9 Run hack/update-all.sh 2016-07-12 20:36:48 +02:00
Chao Xu c2fb39102b generated changes 2016-07-12 11:09:28 -07:00
Tim Hockin 291b51ec50 Use file tags to generate conversions
This drives conversion generation from file tags like:
  // +conversion-gen=k8s.io/my/internal/version
.. rather than hardcoded lists of packages.

The only net change in generated code can be explained as correct.  Previously
it didn't know that conversion was available.
2016-07-07 22:09:08 -07:00
Tim Hockin dc10f10e48 Recreate the opt-in/opt-out logic for deepcopy
This is the last piece of Clayton's #26179 to be implemented with file tags.
All diffs are accounted for.  Followup will use this to streamline some
packages.

Also add some V(5) debugging - it was helpful in diagnosing various issues, it
may be helpful again.
2016-07-07 16:49:46 -07:00
Tim Hockin 28af54138d Use file tags to generate deep-copies
This drives most of the logic of deep-copy generation from tags like:
  // +deepcopy-gen=package
..rather than hardcoded lists of packages.  This will make it possible to
subsequently generate code ONLY for packages that need it *right now*, rather
than all of them always.

Also remove pkgs that really do not need deep-copies (no symbols used
anywhere).
2016-07-07 16:49:46 -07:00
Tim Hockin d88fc84bae Make multi-key tags more explicit
This is in prep to simplify tag logic.  Don't rely on processing commas as new
tag delimiters.  Put new tags on new lines.  This had zero effect on generated
code (as intended).
2016-07-07 16:49:46 -07:00
Tim Hockin 57c3196914 Add support for manually defined DeepCopy methods
In bringing back Clayton's PR piece-by-piece this was almost as easy to
implement as his version, and is much more like what I think we should be
doing.

Specifically, any time which defines a .DeepCopy() method will have that method
called preferentially.  Otherwise we generate our own functions for
deep-copying.  This affected exactly one type - resource.Quantity.  In applying
this heuristic, several places in the generated code were simplified.

To achieve this I had to convert types.Type.Methods from a slice to a map,
which seems correct anyway (to do by-name lookups).
2016-07-07 16:49:46 -07:00
Chao Xu a2980e56c9 stop update release_1_3 clientset; create release_1_4 2016-07-06 10:48:28 -07: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
k8s-merge-robot 1d9b61493d Merge pull request #28261 from mml/fed-etcd-pv
Automatic merge from submit-queue

Create a PD volume when deploying the federation with federation-up.
2016-06-29 22:46:52 -07:00
Matt Liggett c2e8099a81 Create a PD volume when deploying the federation with federation-up.
Tested only on GCE, where it worked.

Fixes #28248.
2016-06-29 22:01:50 -07:00
k8s-merge-robot f2ddd60eb9 Merge pull request #26755 from david-mcmahon/fix-headers
Automatic merge from submit-queue

Remove "All rights reserved" from all the headers.

cc @thockin @zmerlynn @brendanburns
2016-06-29 18:46:07 -07:00
k8s-merge-robot d8d5ab29a5 Merge pull request #26756 from hongchaodeng/cli
Automatic merge from submit-queue

Change client default value of qps and burst to constant
2016-06-29 18:11:18 -07:00
David McMahon ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
k8s-merge-robot 7f3da674f7 Merge pull request #26680 from olegshaldybin/fake-clientset-registry
Automatic merge from submit-queue

Track object modifications in fake clientset

Fake clientset is used by unit tests extensively but it has some
shortcomings:

- no filtering on namespace and name: tests that want to test objects in
  multiple namespaces end up getting all objects from this clientset,
  as it doesn't perform any filtering based on name and namespace;

- updates and deletes don't modify the clientset state, so some tests
  can get unexpected results if they modify/delete objects using the
  clientset;

- it's possible to insert multiple objects with the same
  kind/name/namespace, this leads to confusing behavior, as retrieval is
  based on the insertion order, but anchors on the last added object as
  long as no more objects are added.

This change changes core.ObjectRetriever implementation to track object
adds, updates and deletes.

Some unit tests were depending on the previous (and somewhat incorrect)
behavior. These are fixed in the following few commits.
2016-06-29 06:04:33 -07:00
Hongchao Deng 55d3597456 change default value of QPS and burst to constant 2016-06-28 21:45:35 -07:00
nikhiljindal 7fcf8daf6b Moving federation/v1alpha1 to federation/v1beta1 2016-06-28 17:12:58 -07:00
nikhiljindal 88b10b1dc0 Removing unneeded fields from Cluster API object 2016-06-28 17:12:57 -07:00
Oleg Shaldybin d445d4082d Regenerate clientsets 2016-06-28 10:59:54 -07:00
Colin Hom 28b471a8d6 Add colhom to federation OWNERS 2016-06-27 13:16:43 -07:00
k8s-merge-robot 7d57beac62 Merge pull request #28042 from nikhiljindal/addOWNERS
Automatic merge from submit-queue

Adding OWNERS for federation

Adding OWNERS for the federation dir

cc @kubernetes/sig-cluster-federation
2016-06-27 13:09:38 -07:00
k8s-merge-robot 93037844c1 Merge pull request #27293 from caesarxuchao/add-patch-to-clientset
Automatic merge from submit-queue

[client-gen]Add Patch to clientset

* add the Patch() method to the clientset. 
* I have to rename the existing Patch() method of `Event` to PatchWithEventNamespace() to avoid overriding.
* some minor changes to the fake Patch action.

cc @Random-Liu since he asked for the method
@kubernetes/sig-api-machinery 

ref #26580 

```release-note
Add the Patch method to the generated clientset.
```
2016-06-25 19:15:11 -07:00
k8s-merge-robot 07d24e4557 Merge pull request #28004 from mikedanese/fix-nil
Automatic merge from submit-queue

return nil from NewClientConfig instead of empty struct

This is a go convention and fixes an nil pointer in kubelet when passing in bad command line options:

```
I0624 04:12:33.333246   25404 plugins.go:141] Loaded network plugin "kubenet"
E0624 04:12:33.333390   25404 runtime.go:58] Recovered from panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/runtime/runtime.go:52
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/runtime/runtime.go:40
/usr/local/go/src/runtime/asm_amd64.s:472
/usr/local/go/src/runtime/panic.go:443
/usr/local/go/src/runtime/panic.go:62
/usr/local/go/src/runtime/sigpanic_unix.go:24
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/unversioned/service.go:132
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/kubelet.go:254
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/client/cache/listwatch.go:80
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/client/cache/reflector.go:262
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/client/cache/reflector.go:204
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/wait/wait.go:86
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/wait/wait.go:87
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/wait/wait.go:49
```
cc @caesarxuchao @lavalamp
2016-06-24 15:15:08 -07:00
k8s-merge-robot 9b215a33b5 Merge pull request #28026 from quinton-hoole/2016-06-24-fix-nits-in-dns-deletion-logic-fix
Automatic merge from submit-queue

Address outstanding review comments in #27999.
2016-06-24 14:37:45 -07:00
nikhiljindal b1021db07e Adding OWNERS for federation 2016-06-24 13:47:39 -07:00
nikhiljindal 1204411209 Revert "Federation e2e supports aws"
This reverts commit 5bacc4830e.
2016-06-24 10:44:35 -07:00
Quinton Hoole 8d5d7e9013 Address outstanding review comments in #27999. 2016-06-24 08:35:12 -07:00
Mike Danese 3162197c23 autogenerated 2016-06-23 22:15:03 -07:00
Quinton Hoole 6b435a6415 Fixes #27989 2016-06-23 19:06:22 -07:00
k8s-merge-robot 890ac5fdfe Merge pull request #27791 from colhom/gke-aws-federation
Automatic merge from submit-queue

Federation e2e support for AWS

I've observed e2e test failures on the two local runs I did, but the framework seems to come up successfully. [logs](http://pastebin.com/tsJpKUc4). Ideas on this?

I'm in the process of validating GKE as well, and will modify the title if it succeeds.

\cc @nikhiljindal @quinton-hoole 

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-06-23 13:34:25 -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
k8s-merge-robot de1719ed87 Merge pull request #27831 from quinton-hoole/2016-06-21-fix-panic-in-dns-zone-creation
Automatic merge from submit-queue

Add unit test for zone addition to all dnsproviders.  Fixes #27785
2016-06-22 04:03:34 -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
Quinton Hoole 37ce95e107 Add unit test for zone addition to all dnsproviders. Fixes #27785 2016-06-21 18:38:39 -07:00
Colin Hom 5bacc4830e Federation e2e supports aws 2016-06-21 18:22:46 -07:00
Matt Liggett 3733f64935 Add ssl certs to federation-controller-manager container.
Fixes #27684.

For now, I'm simply poking a hole to grab the system /etc/ssl/certs.  If
we decide we want something less dependent on the node filesystem, we
will need to decide how we pick a "distro" more sophisticated than
busybox for federation components running on k8s.  I'll open a followup
issue to discuss this.
2016-06-21 14:06:32 -07: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
k8s-merge-robot 64b2c0e2db Merge pull request #27736 from mml/fed-check-err-first
Automatic merge from submit-queue

Check for an error before checking for nil.
2016-06-20 22:21:14 -07:00
k8s-merge-robot 70ad689df4 Merge pull request #27332 from nikhiljindal/awsSecrets
Automatic merge from submit-queue

federation: Creating kubeconfig files to be used for creating secrets for clusters on aws and gke

Extension of https://github.com/kubernetes/kubernetes/pull/26914 which created the kubeconfig files for gce clusters.
This PR extends it to AWS, vagrant and GKE.

The change for AWS and vagrant is exactly same as GCE.
For GKE, since `gcloud create clusters` creates kubeconfig, we are just copying the generated kubeconfig to the desired location

cc @kubernetes/sig-cluster-federation @colhom 
@roberthbailey for GKE
2016-06-20 21:13:21 -07:00
k8s-merge-robot 0ded5b952f Merge pull request #27735 from mml/fed-log-version
Automatic merge from submit-queue

Log version info at start.

I need more confidence that the version I'm debugging matches the code on my
machine.
2016-06-20 20:03:26 -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
Matt Liggett 3c78acdb9b Log version info at start. 2016-06-20 16:43:48 -07:00
Quinton Hoole acaad60620 Rename dnsprovider/providers/aws/route53/internal/testing to stubs. 2016-06-20 16:29:07 -07:00
nikhiljindal 9026195614 Updating the code to fix the context name before using it as secret and cluster names 2016-06-20 14:50:28 -07:00
Mike Danese 4dd7b7c6ef fix some vets 2016-06-20 14:16:43 -07:00
Robert Deusser cd1450b3ec Fix spelling errors
More spelling fixes
2016-06-20 11:36:11 -04:00
k8s-merge-robot a055c4e80f Merge pull request #27400 from nikhiljindal/delFedPush
Automatic merge from submit-queue

Deleting federation-push.sh

This has bit me a few times. And based on my discussions with @madhusudancs has bit him as well.

Running federation-push.sh doesnt work anymore.
Running build/push-federation-images.sh does the right thing.
They were both trying to do the same thing anyway.

Our documentation (https://github.com/kubernetes/kubernetes/blob/master/docs/devel/e2e-tests.md#federation-e2e-tests) suggests running push-federation-images.sh.

Deleting federation-push.sh

@kubernetes/sig-cluster-federation @colhom @mml
2016-06-19 22:57:59 -07: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
Quinton Hoole 30afb6b072 Return error not empty list when dnsprovider returns an error. 2016-06-18 16:15:55 -07:00
Quinton Hoole 8d8d1922dd Change default Federation DNS zone to be RFC 2606 compliant. 2016-06-17 15:32:45 -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
Chao Xu a29f6aa8ae add Patch to clientsets 2016-06-17 10:30:58 -07:00
k8s-merge-robot c3a3241002 Merge pull request #27592 from nikhiljindal/fixFedTest
Automatic merge from submit-queue

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

Ref #26762

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

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

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

federation: only reachable endpoint should be treated as healthy

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

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

federation: fix dns provider initialization issues

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

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

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

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

Updating federation up scripts to work in non e2e setup

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

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

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

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

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

Only the last commit here needs review.

Depends on #26950.

cc @colhom @kubernetes/sig-cluster-federation

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

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

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

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

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

This PR make the call sequence correct.

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

Updating e2e docs with instructions on running federation tests

Last two commits are for review. Depends on #26951

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

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

Only the last commit here needs review.

Depends on #26951.

cc @kubernetes/sig-cluster-federation

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

Prefix scheme/protocol to federation API server URL.

cc @kubernetes/sig-cluster-federation 

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

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

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

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

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

federation: Update the list of supported admission controls

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

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

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

federation: Adding federation controller manager to federation e2es

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

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

Add direct serializer

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

First commit is cherry-picked from #24826.

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

Add federation cluster status zone update

Hi Nikhil

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

What's remaining:

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

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

Q
2016-05-29 00:40:09 -07:00
Quinton Hoole eff728a46d Merge pull request #26034 from mfanjie/federation-service-controller
Federation service controller
2016-05-28 11:25:25 -07:00
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
k8s-merge-robot 3b2b647409 Merge pull request #25983 from smarterclayton/cumulative
Automatic merge from submit-queue

Make UnsafeConversion fast by inlining copies

Not ready yet (need to add a copy to "safe" conversion and add mutation tests to roundtrip api/serialization_test).

Cuts another 10% off decode and encode.
2016-05-28 09:02:53 -07:00
Clayton Coleman 2faf49c75c
Generated fields for inlining 2016-05-28 08:53:22 -04:00
Quinton Hoole 0af78dcce7 Google Cloud DNS dnsprovider rewrite/refactor for unit tests. Successfully Tested against both real backend and stubbed backend. 2016-05-27 15:22:43 -07:00
Quinton Hoole 8fb3c81ac3 Add zones and region to federation cluster API object status. 2016-05-27 12:24:44 -07:00
Alex Robinson 4db3cc7e5e Merge pull request #26396 from colhom/fix-federation-build
Fix docker load error in federation image push
2016-05-27 11:44:32 -07:00
k8s-merge-robot 4047ca1d97 Merge pull request #26132 from nikhiljindal/newmaster
Automatic merge from submit-queue

federation: replacing string credentials field by secretRef

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

Replaced the string Credentials field in ClusterSpec by secretRef as discussed in https://github.com/kubernetes/kubernetes/issues/25761.
Also updated the clusterController to use this new secretRef field while creating a client to talk to a k8s cluster.

cc @lavalamp @kubernetes/sig-cluster-federation
2016-05-27 08:31:58 -07:00
Eric Paris cd700ee3eb Merge pull request #26313 from nikhiljindal/fedServerDoc
federation: Adding a tool to generate docs for federation apiserver and controller manager
2016-05-26 23:09:51 -04:00
Colin Hom f9e32118dc Fix docker load error in federation image push 2016-05-26 19:44:09 -07:00
k8s-merge-robot 2127a40596 Merge pull request #26142 from nikhiljindal/registerDeepCopyGeneratedFuncs
Automatic merge from submit-queue

federation: Adding deep copy funcs for v1 objects in federation apiserver

Trying to fix https://github.com/kubernetes/kubernetes/issues/26111
2016-05-26 19:17:54 -07:00
Colin Hom a092fd2dd4 Federation build and e2e test integration
Federation components are now buildable and e2e-testable via e2e.go.
2016-05-25 15:07:27 -07:00
nikhiljindal f98bda0b47 Adding a tool to generate federation docs 2016-05-25 15:04:20 -07:00
k8s-merge-robot f5b5d2bc26 Merge pull request #26196 from nikhiljindal/renameFedAPIServer
Automatic merge from submit-queue

Renaming federated-apiserver to federation-apiserver

Its not a "federated" apiserver. Its an apiserver for federation.

The corresponding controller manager is also called federation-controller-manager.

If we are going to rename, it should be done in 1.3 before people write scripts referencing the binary name.
2016-05-24 15:21:11 -07:00
nikhiljindal 8edb2d87cc Adding missing defaulting, deep copies and conversion funcs for v1 resources in federation 2016-05-24 15:16:26 -07:00
nikhiljindal 991eb753a2 Renaming federated-apiserver to federation-apiserver 2016-05-24 11:49:39 -07: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
nikhiljindal 236eb42664 Updating generated code 2016-05-23 21:50:00 -07:00
nikhiljindal 57ea89a512 Replacing string Credentials by SecretRef in API 2016-05-23 21:49:59 -07:00
Jordan Liggitt 29252acd1a Change rest storage Update interface to retrieve updated object
Add OldObject to admission attributes

Update resthandler Patch/Update admission plumbing
2016-05-23 21:09:26 -04:00
Daniel Smith 5448400b1c Merge pull request #25243 from smarterclayton/explore_quantity
Provide an int64 version of Quantity that is much faster
2016-05-19 16:56:48 -07:00