Commit Graph

450 Commits

Author SHA1 Message Date
k8s-merge-robot
793b4fea9e Merge pull request #27900 from derekwaynecarr/test_defaults_qos
Automatic merge from submit-queue

Add additional testing scenarios for compute resource requests=0

I was asked about the qos tier of a pod that specified 

`--requests=cpu=0,memory=0 --limits=cpu=100m,memory=1Gi`

and in just investigating current behavior, realized we should have an explicit test case to ensure that 0 values are preserved in defaulting passes, and that this is still a burstable pod (but the lowest for that tier as it related to eviction)

/cc @vishh
2016-07-01 16:16:23 -07:00
Jordan Liggitt
993ab1d886 Allow specifying secret data using strings 2016-06-30 16:03:47 -04:00
David McMahon
ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
Girish Kalele
3778ca196e Remove comment about empty selectors 2016-06-28 17:04:24 -07:00
Clayton Coleman
1c8b928908
Handle aliases correctly in deepcopy/conversion 2016-06-27 21:42:02 -07:00
derekwaynecarr
a04e6f8635 Add additional testing scenarios for compute resource requests=0 2016-06-27 14:38:55 -04:00
saadali
e3e919ca20 Add VolumesAttached field to Node Status API 2016-06-19 23:54:02 -07:00
k8s-merge-robot
9d8e79be09 Merge pull request #27168 from smarterclayton/flatten_types
Automatic merge from submit-queue

ObjectMeta, ListMeta, and TypeMeta should implement their interfaces

Make unversioned.ListMeta implement List. Update all the *List types so they implement GetListMeta.
This helps avoid using reflection to get list information.

Remove all unnecessary boilerplate, move the interfaces to the right
places, and add a test that verifies that objects implement one, the
other, but never both.

@ncdc @lavalamp this supercedes #26964 with the boilerplate removed.  Added tests
2016-06-18 20:23:50 -07:00
saadali
542f2dc708 Introduce new kubelet volume manager
This commit adds a new volume manager in kubelet that synchronizes
volume mount/unmount (and attach/detach, if attach/detach controller
is not enabled).

This eliminates the race conditions between the pod creation loop
and the orphaned volumes loops. It also removes the unmount/detach
from the `syncPod()` path so volume clean up never blocks the
`syncPod` loop.
2016-06-15 09:34:08 -07:00
saadali
9b6a505f8a Rename UniqueDeviceName to UniqueVolumeName
Rename UniqueDeviceName to UniqueVolumeName and move helper functions
from attacherdetacher to volumehelper package.
Introduce UniquePodName alias
2016-06-15 09:32:12 -07:00
Dawn Chen
88de86fcb9 Revert "Versioning docs and examples for v1.4.0-alpha.0."
This reverts commit cce9db3aa9.
2016-06-10 16:46:46 -07:00
David McMahon
cce9db3aa9 Versioning docs and examples for v1.4.0-alpha.0. 2016-06-10 14:55:35 -07:00
Andy Goldstein
e3af3451c8
ObjectMeta, ListMeta, and TypeMeta should implement their interfaces
Make unversioned.ListMeta implement List. Update all the *List types so they implement GetListMeta.
This helps avoid using reflection to get list information.

Remove all unnecessary boilerplate, move the interfaces to the right
places, and add a test that verifies that objects implement one, the
other, but never both.
2016-06-10 13:28:54 -04:00
Clayton Coleman
e1dc3ef933
Remove unused deep_copies 2016-06-06 17:18:22 -04:00
Huamin Chen
4b4048a084 correction on rbd volume object and defaults
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-06-06 17:27:47 +00:00
Saad Ali
9dbe943491 Attach/Detach Controller Kubelet Changes
This PR contains Kubelet changes to enable attach/detach controller control.
* It introduces a new "enable-controller-attach-detach" kubelet flag to
  enable control by controller. Default enabled.
* It removes all references "SafeToDetach" annoation from controller.
* It adds the new VolumesInUse field to the Node Status API object.
* It modifies the controller to use VolumesInUse instead of SafeToDetach
  annotation to gate detachment.
* There is a bug in node-problem-detector that causes VolumesInUse to
  get reset every 30 seconds. Issue https://github.com/kubernetes/node-problem-detector/issues/9
  opened to fix that.
2016-06-02 16:47:11 -07:00
k8s-merge-robot
5288a255f4 Merge pull request #25567 from gmarek/validate
Automatic merge from submit-queue

Add Controller field to OwnerReference

cc @davidopp
2016-05-31 14:21:38 -07:00
gmarek
778b1df717 Add Controller to api/meta 2016-05-31 20:21:05 +02:00
k8s-merge-robot
484830c763 Merge pull request #26564 from wojtek-t/fix_pod_annotations
Automatic merge from submit-queue

Fix apiservers crashes

Ref #26563
2016-05-31 10:55:48 -07:00
Wojciech Tyczynski
d002cb1d63 Fix apiservers crashes 2016-05-31 17:26:35 +02:00
gmarek
a6dd89d797 Add Controller field to OwnerReference 2016-05-31 15:33:35 +02:00
Paul Morie
acfcb73533 Regen for pv selector 2016-05-31 09:32:23 -04:00
Paul Morie
faa112bad1 Add selector to PersistentVolumeClaim 2016-05-30 12:09:50 -04:00
k8s-merge-robot
577cdf937d Merge pull request #26415 from wojtek-t/network_not_ready
Automatic merge from submit-queue

Add a NodeCondition "NetworkUnavaiable" to prevent scheduling onto a node until the routes have been created 

This is new version of #26267 (based on top of that one).

The new workflow is:
- we have an "NetworkNotReady" condition
- Kubelet when it creates a node, it sets it to "true"
- RouteController will set it to "false" when the route is created
- Scheduler is scheduling only on nodes that doesn't have "NetworkNotReady ==true" condition

@gmarek @bgrant0607 @zmerlynn @cjcullen @derekwaynecarr @danwinship @dcbw @lavalamp @vishh
2016-05-29 03:06:59 -07:00
k8s-merge-robot
3717e4e46b Merge pull request #26033 from smarterclayton/safer_quantity
Automatic merge from submit-queue

Round should avoid clearing s, save a string

Instead of saving bytes, save a string, which makes String() faster
and does not unduly penalize marshal. During parse, save the string
if it is in canonical form.

@wojtek-t @lavalamp this makes quantity.String() faster for a few cases
where it matters. We were also not clearing s properly before on Round()
2016-05-28 09:56:39 -07:00
Clayton Coleman
8b01cfe1eb
Serialization test should verify encode does not mutate in 2016-05-28 08:53:22 -04:00
Clayton Coleman
2faf49c75c
Generated fields for inlining 2016-05-28 08:53:22 -04:00
Clayton Coleman
0854fd651c
Update direct conversions to inline fields 2016-05-28 08:52:08 -04:00
Wojciech Tyczynski
be1b57100d Change to NotReadyNetworking and use in scheduler 2016-05-27 19:32:49 +02:00
gmarek
7bdf480340 Node is NotReady until the Route is created 2016-05-27 19:29:51 +02:00
Minhan Xia
466bc3831b update all 2016-05-26 11:59:53 -07:00
Minhan Xia
a1bd33f510 promote sourceRange into service spec 2016-05-26 10:42:30 -07:00
Clayton Coleman
ff867fe034
Changes to resource serialization 2016-05-24 22:32:45 -04:00
Avesh Agarwal
1931931494 Downward API implementation for resources limits and requests 2016-05-24 12:22:35 -04:00
Abitha Palaniappan
11397654b6 Adding volume plugin to api/v1 and updating auto-generated files 2016-05-21 12:53:03 -07:00
k8s-merge-robot
eb733cbf45 Merge pull request #25285 from ingvagabund/extend-secrets-volumes-with-path-control
Automatic merge from submit-queue

Extend secrets volumes with path control

As per [1] this PR extends secrets mapped into volume with:

* key-to-path mapping the same way as is for configmap. E.g.

```
{
 "apiVersion": "v1",
 "kind": "Pod",
  "metadata": {
    "name": "mypod",
    "namespace": "default"
  },
  "spec": {
    "containers": [{
      "name": "mypod",
      "image": "redis",
      "volumeMounts": [{
        "name": "foo",
        "mountPath": "/etc/foo",
        "readOnly": true
      }]
    }],
    "volumes": [{
      "name": "foo",
      "secret": {
        "secretName": "mysecret",
        "items": [{
          "key": "username",
          "path": "my-username"
        }]
      }
    }]
  }
}
```

Here the ``spec.volumes[0].secret.items`` added changing original target ``/etc/foo/username`` to ``/etc/foo/my-username``.

* secondly, refactoring ``pkg/volumes/secrets/secrets.go`` volume plugin to use ``AtomicWritter`` to project a secret into file.

[1] https://github.com/kubernetes/kubernetes/blob/master/docs/design/configmap.md#changes-to-secret
2016-05-21 03:55:13 -07:00
Filip Grzadkowski
c4e239b314 Merge pull request #25918 from smarterclayton/init_annotation_mutation
Conversions were mutating the internal object
2016-05-20 10:25:36 +02:00
Clayton Coleman
997d55d796
Conversions were mutating the internal object
Internal objects can be shared, it is not allowed to mutate an internal
object in conversion.
2016-05-19 18:01:35 -04:00
Clayton Coleman
5e4308f91d
Update use of Quantity in other classes 2016-05-19 08:41:43 -04:00
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
Kevin
52fb89ff73 implement taints and tolerations 2016-05-18 15:06:23 +00:00
Jan Chaloupka
e3aa900d52 Regenerate swagger, api, conversion and other code that needs to be regenerated 2016-05-18 16:12:55 +02:00
Jan Chaloupka
ebe56f5ff9 Extend the current secrets mounting to volume implementation with key to path mapping.
The key to path mapping allows pod to specify different name (thus location) of each secret.
At the same time refactor the volume plugin to use AtomicWritter to project secrets to files in a volume.

Update e2e Secrets test, the secret file permission has changed from 0444 to 0644
Remove TestPluginIdempotent as the AtomicWritter is responsible for secret creation
2016-05-18 16:12:31 +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
Jan Safranek
0be1512f1c Add ClaimLost phase. 2016-05-17 15:14:07 +02: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
derekwaynecarr
edc76f6d4f out of resource killing (memory) 2016-05-14 11:34:45 -04:00
Jeff Lowdermilk
177c0efe72 Merge pull request #25552 from caesarxuchao/merge-finalizers
add merge tag to v1/ObjectMeta.Finalizers
2016-05-13 15:04:17 -07:00
k8s-merge-robot
ce80372573 Merge pull request #25500 from mml/2016
Automatic merge from submit-queue

It's 2016, yo.
2016-05-13 14:24:57 -07:00