Commit Graph

349 Commits

Author SHA1 Message Date
Kubernetes Submit Queue
069929bbfd Merge pull request #31076 from mwielgus/object-meta
Automatic merge from submit-queue

Object meta fixes in federation controllers

This PR adds helper functions for handling object meta structs and applies them to the existing controllers.

cc: @quinton-hoole @jianhuiz @kubernetes/sig-cluster-federation
2016-08-21 13:19:55 -07:00
Marcin Wielgus
9b00a6654c Comments and extra tests for federated ObjectMeta utils 2016-08-21 21:14:07 +02:00
Kubernetes Submit Queue
7979801e54 Merge pull request #28860 from ericchiang/separate-apiserver-authz-options
Automatic merge from submit-queue

pkg/genericapiserver/options: don't import pkg/apiserver

Refactor the authorization options for the API server so
pkg/apiserver isn't directly imported by the options package.

Closes #28544

cc @smarterclayton

@madhusudancs, @nikhiljindal I've updated `federation/cmd/federation-apiserver/app/server.go` to include the RBAC options with this change. I don't know if this was intentionally left out in the first place but would like your feedback.
2016-08-21 09:49:14 -07:00
Marcin Wielgus
b0ec300ce8 Apply object meta functions to controllers 2016-08-21 13:02:55 +02:00
Marcin Wielgus
66df63f618 Object meta helper functions for federated controller 2016-08-21 13:02:19 +02:00
Kubernetes Submit Queue
ada58f5ff2 Merge pull request #30823 from nikhiljindal/swaggerDocs
Automatic merge from submit-queue

Adding a script to fetch swagger spec from federation apiserver

First step for https://github.com/kubernetes/kubernetes/issues/30541.
Next step is to generate docs like http://kubernetes.io/docs/api-reference/v1/definitions/ from this swagger spec.

cc @kubernetes/sig-cluster-federation @kubernetes/sig-api-machinery
2016-08-20 18:09:58 -07:00
Kubernetes Submit Queue
eaa2b6f528 Merge pull request #31042 from jianhuiz/federation-informer-kube-client
Automatic merge from submit-queue

Federation informer use kube clientset for target

This is to use kubernetes clientset as the federation informer target clientset as it's used to talking the k8s cluster.

#29939 #30669 #30207
@mwielgus @quinton-hoole @kshafiee @deepak-vij
2016-08-20 08:06:08 -07:00
nikhiljindal
56a2458d29 Adding cert and basic auth files for federation-apiserver 2016-08-20 02:17:39 -07:00
Kubernetes Submit Queue
5caf74c517 Merge pull request #30529 from hongchaodeng/r1
Automatic merge from submit-queue

change all PredicateFunc to use SelectionPredicate

What?
- This PR changes all PredicateFunc in registry to return SelectionPredicate instead of Matcher interface.

Why?
- We want to pass SelectionPredicate to storage layer. Matcher interface did not expose enough information for indexing.
2016-08-20 00:24:40 -07:00
jianhuiz
47f317eeb3 update federation controllers to use kube clientset 2016-08-19 15:51:41 -07:00
Kubernetes Submit Queue
9bc8240f1a Merge pull request #31028 from mwielgus/secret-fix
Automatic merge from submit-queue

Handle secret namespace and data properly in federated secret controller

This PR fixes what was missed in #30669 review. It uses both namespace and secret name for keying and propagates secret data to underlying clusters.

cc: @quinton-hoole @kshafiee @kubernetes/sig-cluster-federation
2016-08-19 15:47:11 -07:00
Kubernetes Submit Queue
5fb525a309 Merge pull request #30956 from nikhiljindal/clusterName
Automatic merge from submit-queue

federation: updating cluster name validation to allow DNS labels only

Forked from https://github.com/kubernetes/kubernetes/pull/28921

Summarizing the discussion from that PR:
* Right now, we allow name of the Cluster resource in federation/v1beta1 group version to be a subdomain (group of DNS labels separated by dots). This prevents us from using the cluster name in our dns search paths, since there is a restriction of 6 domain labels there.
* Restricting cluster name to DNS label will give us the flexibility to be able to do that in the future, if we want to. Though we do not have a concrete use case right now, the possibility is attractive.
* There is not a strong argument in favor of allowing subdomains as cluster names right now. If in future, there is one then we can get more permissive but its better to start with a stricter model.

Note that we are breaking a beta API, but it should be fine since we do not expect anyone to be using subdomain as cluster name. Have added release-note-action-required label


```release-note
Action required: federation-only: Please update your cluster name to be a valid DNS label.
Updating federation.v1beta1.Cluster API to disallow subdomains as valid cluster names. Only DNS labels are allowed as valid cluster names now.
```
2016-08-19 15:46:34 -07:00
jianhuiz
65cb176572 use kube clientset to access k8s clusters 2016-08-19 15:00:15 -07:00
Marcin Wielgus
0ec28ac86e Handle secret namespace and data properly in federated secret controller 2016-08-19 23:02:40 +02:00
kshafiee
febe9adcf0 Federated secret controller 2016-08-19 17:02:30 +00:00
Kubernetes Submit Queue
b6d4462f01 Merge pull request #30983 from mwielgus/planer2
Automatic merge from submit-queue

Support for preexisting replicas and estimated capacity in federated replicaset controller

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

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

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

Move UTs that block on apiserver to integration tests. 

In validating etcd.v3client we had uncovered that a change in the behavior of the client https://github.com/coreos/etcd/issues/6162 , caused a number of unit tests to fail.  These test failures were due to the fact that the unit tests were trying to standup a apiserver even though there was no etcd backend stood up.  

This PR simply shuffles those tests to integration tests, which is where they should be. 

/cc @kubernetes/sig-scalability @wojtek-t @hongchaodeng @xiang90
2016-08-18 18:39:13 -07:00
nikhiljindal
473c1d5653 Update cluster name validation to allow only DNS labels 2016-08-18 18:19:19 -07:00
nikhiljindal
d76cdc7482 Adding a script to fetch swagger spec from federation apiserver 2016-08-18 17:19:21 -07:00
Kubernetes Submit Queue
83ded2858c Merge pull request #28568 from xiangpengzhao/check_ensureDnsRecords_return_value
Automatic merge from submit-queue

Check return value when calling ensureDnsRecords

When [lockedUpdateDNSRecords](https://github.com/xiangpengzhao/kubernetes/blob/check_ensureDnsRecords_return_value/federation/pkg/federation-controller/service/servicecontroller.go#L723) calls `ensureDnsRecords`, it should check the return value. If it returns error, the `ensuredCount ` should not increment.
2016-08-18 16:25:09 -07:00
Eric Chiang
b4eaf625a0 pkg/genericapiserver/options: don't import pkg/apiserver
Refactor the authorization options for the API server so
pkg/apiserver isn't directly imported by the options package.
2016-08-18 13:01:50 -07:00
Timothy St. Clair
d6606a6aa9 etcd3 validation showed that several unit tests that depend on apiserver being fully
stood up should be integration tests, not unit tests.
2016-08-18 14:12:24 -05:00
Kubernetes Submit Queue
b15c2d67e6 Merge pull request #30872 from mwielgus/fed-informer-deadlock
Automatic merge from submit-queue

Fix deadlock possibility in federated informer

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

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

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

Fixes: #30855
2016-08-18 08:31:26 -07:00
Marcin Wielgus
420bab477e Federated namespace controller - stop reconcilation if not in sync 2016-08-18 14:48:38 +02:00
Marcin Wielgus
681d153050 Fix deadlock possibility in federated informer 2016-08-18 14:37:38 +02:00
Marcin Wielgus
23ca79bd53 Remove Set/GetClusterName hack from federated libs: 2016-08-18 08:04:46 +02:00
Marcin Wielgus
c75cefa296 FederatedInformer returns clusterName + obj pair when needed 2016-08-18 07:48:21 +02:00
Kubernetes Submit Queue
3a938dac07 Merge pull request #30207 from mwielgus/namespace-controller
Automatic merge from submit-queue

Federated namespace controller

Implemented based on federation common libs.

Depends on #30126.

cc: @quinton-hoole @wojtek-t @kubernetes/sig-cluster-federation
2016-08-17 09:19:45 -07:00
Timothy St. Clair
730fc70107 Update etcd default ports for v3, and validate tests 2016-08-17 07:49:19 -05:00
Kubernetes Submit Queue
60579ee628 Merge pull request #30433 from madhusudancs/fed-dns-provider-test-A-CNAME-fix
Automatic merge from submit-queue

Update dnsprovider multi-type support test to test for an A-record and an AAAA-record.

Having an A-record and a CNAME-record in the tests led to a confusion
that dns providers support such configurations. This change avoids
that confusion by putting only compatible records for the same domain
name in the tests.

cc @kubernetes/sig-cluster-federation
2016-08-16 23:38:14 -07:00
Kubernetes Submit Queue
fc7a7f5f7d Merge pull request #30655 from nikhiljindal/fedSwagger
Automatic merge from submit-queue

Fixing the error in registering /v1 api

Temporary fix for https://github.com/kubernetes/kubernetes/issues/30635.

Am working on a proper fix, but its much bigger.
Would be good to unblock devs in the meantime.

cc @lavalamp @kubernetes/sig-api-machinery
2016-08-16 20:28:59 -07:00
Madhusudan.C.S
b4ea59e65a Update dnsprovider multi-type support test to test for an A-record and an AAAA-record.
Having an A-record and a CNAME-record in the tests led to a confusion
that dns providers support such configurations. This change avoids
that confusion by putting only compatible records for the same domain
name in the tests.
2016-08-16 14:38:16 -07:00
Marcin Wielgus
c1cbe4771b Use backoff from util/flowcontroll in federated namespace controller and other minor fixes 2016-08-16 21:51:24 +02:00
Marcin Wielgus
378a49613f Enable federated namespace controller 2016-08-16 21:05:50 +02:00
Marcin Wielgus
b2c192bcc9 Federated Namespace Controller test 2016-08-16 21:05:50 +02:00
Marcin Wielgus
e428ffe879 Federated namespace controller 2016-08-16 21:05:50 +02:00
Kubernetes Submit Queue
ce302c0c55 Merge pull request #30509 from mwielgus/set-client
Automatic merge from submit-queue

SetClientFactory in FederatedInformer

For unit tests.

cc: @quinton-hoole @wojtek-t @kubernetes/sig-cluster-federation
2016-08-16 11:10:58 -07:00
nikhiljindal
217d2f57e9 Fixing the error in registering /v1 api 2016-08-15 21:11:32 -07:00
Kubernetes Submit Queue
69419a145a Merge pull request #29802 from jfrazelle/fix-go-vet-errors
Automatic merge from submit-queue

fix go vet errors

<!--
Checklist for submitting a Pull Request

Please remove this comment block before submitting.

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

```release-note
```

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

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

also related to #16086
2016-08-15 13:10:08 -07:00
Kubernetes Submit Queue
ef16cb78a7 Merge pull request #30564 from nikhiljindal/eventsE2e
Automatic merge from submit-queue

Adding events to federation clientset and adding an e2e

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

events was added to federation-apiserver in https://github.com/kubernetes/kubernetes/pull/30421

cc @kubernetes/sig-cluster-federation @mfanjie
2016-08-15 12:18:18 -07:00
Hongchao Deng
75fe25e717 generic.Matcher -> *generic.SelectionPredicate 2016-08-13 21:52:11 -07:00
Hongchao Deng
d4afb781c3 change all PredicateFunc to use SelectionPredicate 2016-08-13 10:11:35 -07:00
Kubernetes Submit Queue
e39d7f71e6 Merge pull request #30251 from hongchaodeng/r2
Automatic merge from submit-queue

Move new etcd storage (low level storage) into cacher

In an effort for #29888, we are pushing forward this:

What?
- It changes creating etcd storage.Interface impl into creating config
- In creating cacher storage (StorageWithCacher), it passes config created above and new etcd storage inside.

Why?
- We want to expose the information of (etcd) kv client to cacher. Cacher storage uses this information to talk to remote storage.
2016-08-13 10:09:49 -07:00
Kubernetes Submit Queue
df1abb40ec Merge pull request #30246 from liggitt/certificates
Automatic merge from submit-queue

Set user info in CertificateSigningRequest.Spec on create

Fixes #30239
2016-08-12 23:03:18 -07:00
Hongchao Deng
d0938094d9 move new etcd storage into cacher 2016-08-12 18:40:20 -07:00
Kubernetes Submit Queue
b7ccc15b0a Merge pull request #30559 from mwielgus/informer-quick-fix
Automatic merge from submit-queue

Fix in default client factory in federated informer

This wasn't catched by junit tests because we mock the factory.
2016-08-12 18:38:48 -07:00
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