kubernetes/test/integration
k8s-merge-robot c63ac4e664 Merge pull request #24331 from jsafrane/devel/refactor-binder
Automatic merge from submit-queue

Refactor persistent volume controller

Here is complete persistent controller as designed in https://github.com/pmorie/pv-haxxz/blob/master/controller.go

It's feature complete and compatible with current binder/recycler/provisioner. No new features, it *should* be much more stable and predictable.

Testing
--
The unit test framework is quite complicated, still it was necessary to reach reasonable coverage (78% in `persistentvolume_controller.go`). The untested part are error cases, which are quite hard to test in reasonable way - sure, I can inject a VersionConflictError on any object update and check the error bubbles up to appropriate places, but the real test would be to run `syncClaim`/`syncVolume` again and check it recovers appropriately from the error in the next periodic sync. That's the hard part.

Organization
---
The PR starts with `rm -rf kubernetes/pkg/controller/persistentvolume`. I find it easier to read when I see only the new controller without old pieces scattered around.
[`types.go` from the old controller is reused to speed up matching a bit, the code looks solid and has 95% unit test coverage].

I tried to split the PR into smaller patches, let me know what you think.

~~TODO~~
--

* ~~Missing: provisioning, recycling~~.
* ~~Fix integration tests~~
* ~~Fix e2e tests~~

@kubernetes/sig-storage

<!-- Reviewable:start -->
---
This change is [<img src="http://reviewable.k8s.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/24331)
<!-- Reviewable:end -->

Fixes #15632
2016-05-19 03:06:46 -07:00
..
framework Finish implementing policy API. 2016-05-13 17:27:58 -07:00
auth_test.go Add a webhook token authenticator plugin. 2016-05-10 14:54:35 -07:00
benchmark-controller.json build/pause: write in C 2016-05-04 21:45:52 -04:00
client_test.go build/pause: write in C 2016-05-04 21:45:52 -04:00
configmap_test.go Uncomment the code that cause by #19254 2016-04-25 23:21:31 +08:00
doc.go Make copyright ownership statement generic 2015-05-01 17:49:56 -04:00
dynamic_client_test.go let dynamic client take runtime.Object instead of v1.ListOptions 2016-05-10 16:05:31 -07:00
etcd_tools_test.go Merge pull request #23914 from sky-uk/make-etcd-cache-size-configurable 2016-04-17 00:06:31 -07:00
extender_test.go Merge pull request #23009 from uluyol/c-pause 2016-05-08 09:29:32 -07:00
garbage_collector_test.go fixing TestCascadingDeletion flake 2016-05-17 13:48:37 -07:00
kubectl_test.go Add a ConfigPersister for AuthProvider plugins in kubectl/clients. 2016-05-07 18:15:18 -07:00
master_benchmark_test.go Fix compile errors in benchmark 2015-12-02 11:36:26 +01:00
master_test.go Uncomment the code that cause by #19254 2016-04-25 23:21:31 +08:00
metrics_test.go Uncomment the code that cause by #19254 2016-04-25 23:21:31 +08:00
openshift_test.go Extracting APIServer machinery code into a library 2015-12-16 13:54:23 -08:00
persistent_volumes_test.go Refactor persistent volume initialization 2016-05-18 10:06:51 +02:00
pods_test.go move pods.go to pods_test.go 2016-04-28 15:39:28 -07:00
quota_test.go Improve quota integration test to not use events, reduce number of pods provisioned 2016-05-10 19:50:36 -04:00
scheduler_test.go Merge pull request #23009 from uluyol/c-pause 2016-05-08 09:29:32 -07:00
secret_test.go Uncomment the code that cause by #19254 2016-04-25 23:21:31 +08:00
service_account_test.go Merge pull request #24595 from zhouhaibing089/httpserverclose 2016-04-28 01:41:16 -07:00
utils.go Add integration test for ConfigMap 2016-02-09 10:28:53 -05:00