Commit Graph

31450 Commits

Author SHA1 Message Date
Jan Safranek
c5fe1f943c Fixed binder logging
- we need the original volume/claim in error paths
- don't report version conflicts as errors (they happen pretty often and we
  recover from them)
2016-05-18 10:06:51 +02:00
Jan Safranek
41adcc5496 Speed up binding of provisioned volumes
This fixes e2e test for provisioning - it expects that provisioned volumes
are bound quickly.

Majority of this patch is update of test framework needs to initialize the
controller appropriately.
2016-05-18 10:06:51 +02:00
Jan Safranek
c6f05c8056 provisioning: Add unit testso for provisioning errors. 2016-05-18 10:06:51 +02:00
Jan Safranek
c24b33793c unit test: Add possibility to inject kubeclient errors. 2016-05-18 10:06:51 +02:00
Jan Safranek
92dc159ab6 Delete provisioned volumes that are not needed.
We should delete volumes that are provisioned for a claim and the claim
gets bound to different volume during the provisioning.
2016-05-18 10:06:51 +02:00
Jan Safranek
9fb0f7a3fd provisioning: Unit tests 2016-05-18 10:06:51 +02:00
Jan Safranek
514d595881 provisioning: Implement provisioner 2016-05-18 10:06:51 +02:00
Jan Safranek
75b0e2ad63 provisioning: Refactor volume plugins.
NewPersistentVolumeTemplate() and Provision() are merged into one call.
2016-05-18 10:06:51 +02:00
Jan Safranek
dd7890c362 delete: Implement Deleter 2016-05-18 10:06:51 +02:00
Jan Safranek
22e68d4622 recycler: unit tests
- Add reclaim policy to newVolume() call.
- Implement reactor Volumes().Get().
- Implement mock volume plugin.
- Add recycler tests.
- Add a synchronization condition to controller.scheduleOperation
  - we need to pause the controller here, let the test to do some bad things
    to the controller and test error cases in recycleVolumeOperation.

Test framework gets more and more complicated... But this is the last piece,
I promise.
2016-05-18 10:06:24 +02:00
Jan Safranek
a08d826ca5 Make a separate functions to emit events and change status.
These two seem to be always used together.
2016-05-18 10:06:24 +02:00
Jan Safranek
1feb346830 recycler: implement recycler
Also update the old unit test to pass. New unit tests will be added in
subsequent commit.
2016-05-18 10:06:24 +02:00
Jan Safranek
56cae2dc20 unit test framework: Wait for all running operations to finish during all tests. 2016-05-18 10:06:24 +02:00
Jan Safranek
cf68370371 recycler: Maintain a list of long-running operations.
We need to keep list of running recyclers, deleters and provisioners in
memory in order not to start a new recycling/deleting/provisioning twice
for the same volume/claim.

This will be eventually replaced by GoRoutineMap from PR #24838.
2016-05-18 10:06:24 +02:00
Jan Safranek
4e47f69cba recycler: Implement volume host interfaces.
We need the controller to implement volume.VolumeHost interface to be able
to call recycle plugins.
2016-05-18 10:06:24 +02:00
Jan Safranek
a17f0d5949 Move release logic to standalone function. 2016-05-18 10:06:23 +02:00
Jan Safranek
7b73384fda Add controller method tests. 2016-05-18 10:05:14 +02:00
k8s-merge-robot
bf4f84167f Merge pull request #23567 from smarterclayton/init_containers
Automatic merge from submit-queue

Add init containers to pods

This implements #1589 as per proposal #23666

Incorporates feedback on #1589, creates parallel structure for InitContainers and Containers, adds validation for InitContainers that requires name uniqueness, and comments on a number of implications of init containers.

This is a complete alpha implementation.

<!-- 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/23567)
<!-- Reviewable:end -->
2016-05-18 00:53:30 -07:00
Tim Hockin
152c86ab06 Make name validators return string slices 2016-05-18 00:48:01 -07:00
Tim Hockin
66d0d87829 Make IsValidLabelValue return error strings 2016-05-17 21:36:10 -07:00
Kris
925003b4bc Add mapper and typer based on discovery info 2016-05-17 21:02:35 -07:00
gmarek
6d27009db1 NodeController doesn't evict Pods if no Nodes are Ready 2016-05-17 23:03:21 +02:00
Brendan Burns
178b5f7638 address comments 2016-05-17 10:24:29 -07:00
k8s-merge-robot
7b4851b9ae Merge pull request #21274 from derekwaynecarr/kubelet_eviction
Automatic merge from submit-queue

out of resource killing (memory)

Adds the core framework for low-resource killing in the kubelet.

Implements support for out of memory killing.

Related:
https://github.com/kubernetes/kubernetes/pull/18724

<!-- 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/21274)
<!-- Reviewable:end -->
2016-05-17 10:15:32 -07:00
derekwaynecarr
3075d8554f Have quota controller use a rate limiter to avoid hot-loops 2016-05-17 11:09:30 -04:00
deads2k
7a7fe3abb8 prevent namespace cleanup hotloop 2016-05-17 11:04:48 -04:00
k8s-merge-robot
a24f03c3c9 Merge pull request #25669 from deads2k/fix-npe
Automatic merge from submit-queue

prevent nil pointer when starting controllers before running the shar…

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

https://github.com/kubernetes/kubernetes/pull/23795 changed initialization order, so the controller isn't guaranteed to be present at startup.

@mqliang @wojtek-t I'm pretty sure that we're not guaranteed to get back the correct `cache.Indexer` or `cache.Store` either.  I'll look at re-plumbing the `AddIndexer` path to use the same instance so that its safe to use again.
2016-05-17 07:54:12 -07:00
Jan Safranek
af295719f6 Add events. 2016-05-17 15:14:11 +02:00
Jan Safranek
61019b2401 Process deleted PVs
To speed up marking claims as "lost".
2016-05-17 15:14:10 +02:00
Jan Safranek
50b61ae168 Add "multi-sync" tests.
These test will call syncVolume/syncClaim until they reach consistent state.
2016-05-17 15:14:09 +02:00
Jan Safranek
f4f252e81c Implement syncVolume. 2016-05-17 15:14:08 +02:00
Jan Safranek
0be1512f1c Add ClaimLost phase. 2016-05-17 15:14:07 +02:00
Jan Safranek
5949b956f5 Implement syncClaim with bound claims. 2016-05-17 15:14:06 +02:00
Jan Safranek
eff6b50b93 Bind unbound claims in syncClaim. 2016-05-17 15:14:06 +02:00
Jan Safranek
e620bfc9cc Add unit test framework.
It's quite complicated one, see subsequent commits for usage.
2016-05-17 15:14:05 +02:00
Jan Safranek
a195802d3e Make standalone function to check for (pre-)bound volumes.
Note the semantic change, we now check for UID=""
2016-05-17 15:14:04 +02:00
Jan Safranek
20305f9235 Don't process events until fully initialized.
We do not want to process any volume / claim events until both PV and claim
caches are fully loaded.
2016-05-17 15:14:03 +02:00
Jan Safranek
71aa892a86 Implement volume controller skeleton.
This is a simple controller that watches changes of PersistentVolumes and
PersistentVolumeClaims.
2016-05-17 15:14:02 +02:00
Jan Safranek
b86e5923b2 Rename types.go to persistentvolume_index.go
With some changes:
- make some method private, nobody seems to use them.
- adapt to framework.NewIndexerInformer instead of using custom cache.
2016-05-17 15:14:01 +02:00
Wojciech Tyczynski
48a21be72b Fix client name for dynamic clients 2016-05-17 13:34:36 +02:00
Wojciech Tyczynski
c5147bdb16 Split request_count metric by contentType 2016-05-17 13:34:36 +02:00
zhangke
3eb9aff216 Update fake.go 2016-05-17 19:00:34 +08:00
k8s-merge-robot
a57fd9adfb Merge pull request #25651 from 249043822/249043822-patch-1
Automatic merge from submit-queue

MatchingCache lock optimize
2016-05-17 01:56:03 -07:00
k8s-merge-robot
6376b52b90 Merge pull request #25271 from euank/fix-missing-resttest-call
Automatic merge from submit-queue

test: Call forgotten resttest test

PR #3789 introduced this test, but it was never called.

This test was created, but never called.
Written, but never run.
It has neither flaked nor asserted. At its inception it was deserted.
My change gives this test a chance, to at long last finally pass.

The resttest stuff is a bit complicated and I'm not totally sure I put it in the right place  @smarterclayton, want to double check this change makes sense?
2016-05-16 23:49:39 -07:00
Prashanth Balasubramanian
daa8e29c5b Add a kubectl create secret tls command 2016-05-16 22:38:56 -07:00
CJ Cullen
066e70fac2 Add an LRU Expire Cache. 2016-05-16 21:55:13 -07:00
Clayton Coleman
2a53330700 Describe and get should show init containers 2016-05-17 00:29:54 -04:00
Clayton Coleman
205a8b4574 Add init container loading to the kubelet 2016-05-17 00:29:53 -04:00
Clayton Coleman
6cc6d29339 Generated code for init containers 2016-05-17 00:29:52 -04:00
Clayton Coleman
6685715c4c API for adding init containers 2016-05-17 00:29:49 -04:00