Commit Graph

29425 Commits (025b0172774770f0d5eee3e9604c1a2d938976e0)

Author SHA1 Message Date
k8s-merge-robot 025b017277 Merge pull request #25177 from euank/rkt-alternate-stage1
Automatic merge from submit-queue

rkt: Support alternate stage1's via annotation

This provides a basic implementation for setting a stage1 on a per-pod
basis via an annotation.

This provides a basic implementation for setting a stage1 on a per-pod
basis via an annotation. See discussion here for how this approach was arrived at: https://github.com/kubernetes/kubernetes/issues/23944#issuecomment-212653776

It's possible this feature should be gated behind additional knobs, such
as a kubelet flag to filter allowed stage1s, or a check akin to what
priviliged gets in the apiserver.
Currently, it checks `AllowPrivileged`, as a means to let people disable
this feature, though overloading it as stage1 and privileged isn't
ideal.

Fixes #23944

Testing done (note, unfortunately done with some additional ./cluster changes merged in):

```
$ cat examples/stage1-fly/fly-me-to-the-moon.yaml
apiVersion: v1
kind: Pod
metadata:
  labels:
    name: exit
  name: exit-fast
  annotations: {"rkt.alpha.kubernetes.io/stage1-name-override": "coreos.com/rkt/stage1-fly:1.3.0"}
spec:
  restartPolicy: Never
  containers:
    - name: exit
      image: busybox
      command: ["sh", "-c", "ps aux"]
$ kubectl create -f examples/stage1-fly
$ ssh core@minion systemctl status -l --no-pager k8s_2f169b2e-c32a-49e9-a5fb-29ae1f6b4783.service
...
failed
...
May 04 23:33:03 minion rkt[2525]: stage0: error writing /etc/rkt-resolv.conf: open /var/lib/rkt/pods/run/2f169b2e-c32a-49e9-a5fb-29ae1f6b4783/stage1/rootfs/etc/rkt-resolv.conf: no such file or directory
...
# Restart kubelet with allow-privileged=false
$ kubectl create -f examples/stage1-fly
$ kubectl describe exit-fast
...
  1m		19s		5	{kubelet euank-e2e-test-minion-dv3u}	spec.containers{exit}	Warning		Failed		Failed to create rkt container with error: cannot make "exit-fast_default(17050ce9-1252-11e6-a52a-42010af00002)": running a custom stage1 requires a privileged security context
....
```

Note as well that the "success" here is rkt spitting out an [error message](https://github.com/coreos/rkt/issues/2141) which indicates that the right stage1 was being used at least.

cc @yifan-gu @aaronlevy
2016-05-25 07:52:17 -07:00
k8s-merge-robot e5cb165ecc Merge pull request #25091 from deads2k/reduce-conflicts
Automatic merge from submit-queue

reduce conflict retries

Eliminates quota admission conflicts due to latent caches on the same API server.

@derekwaynecarr
2016-05-25 05:33:23 -07:00
k8s-merge-robot 83c78fdcaa Merge pull request #24179 from aveshagarwal/master-downward-api-resources-limits-requests-implementation
Automatic merge from submit-queue

Downward API implementation for resources limits and requests

This is an implementation of Downward API for resources limits and requests, and it works with environment variables and volume plugin.

This is based on proposal https://github.com/kubernetes/kubernetes/pull/24051. This implementation follows API with magic keys approach as discussed in the proposal.

@kubernetes/rh-cluster-infra

<!-- 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/24179)
<!-- Reviewable:end -->
2016-05-25 03:38:49 -07:00
k8s-merge-robot dec18dabc1 Merge pull request #26254 from wojtek-t/faster_load_test
Automatic merge from submit-queue

Speed up load test
2016-05-25 02:46:00 -07:00
k8s-merge-robot e8f3cc9072 Merge pull request #26101 from pwittrock/node-e2e-junit
Automatic merge from submit-queue

Node e2e junit test artifacts


[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()

- Add junit test reported
- Write etcd.log, kubelet.log and kube-apiserver.log to files instead of stdout
- Scp artifacts to the jenkins WORKSPACE

Fixes #25966
2016-05-25 02:45:56 -07:00
k8s-merge-robot a2de33e7ff Merge pull request #26252 from piosz/ca-0.1.0
Automatic merge from submit-queue

Bumped Cluster Autoscaler to v0.1.0

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-05-25 01:50:39 -07:00
k8s-merge-robot 1fc5687715 Merge pull request #25784 from bprashanth/prepull
Automatic merge from submit-queue

Prepull images in e2e 

Quick and dirty image puller because the SQ stalled multiple times just *today* on image pull flake (https://github.com/kubernetes/kubernetes/issues/25277).
@kubernetes/sig-node @kubernetes/sig-testing wdyt?
2016-05-25 01:50:35 -07:00
Wojciech Tyczynski 774347afca Speed up load test 2016-05-25 09:58:30 +02:00
k8s-merge-robot 201aa24b85 Merge pull request #25701 from wonderfly/drop_trusty
Automatic merge from submit-queue

e2e-runner: Drop Trusty support in favor of GCI

Now that GCI (Google Container-VM Image) is out, we will start running e2e tests
with it instead of Ubuntu Trusty. This change updates `e2e-runner.sh` to replace
the Trusty related logic with GCI.

_Note that this change has to go in the same time as https://github.com/kubernetes/test-infra/pull/54_

@spxtr Can you review?

cc/ @andyzheng0831 @kubernetes/goog-image
2016-05-25 00:58:18 -07:00
Piotr Szczesniak 5e3dfdefa2 Bumped Cluster Autoscaler to v0.1.0 2016-05-25 09:38:29 +02:00
k8s-merge-robot 2524cadeee Merge pull request #25171 from bprashanth/rolling
Automatic merge from submit-queue

Wait for RC to stabilize in rolling-update e2e

https://github.com/kubernetes/kubernetes/issues/25170
2016-05-25 00:09:00 -07:00
Wojciech Tyczynski 9a996f4eea Merge pull request #26249 from wojtek-t/increase_fluent_limits
Increase expected fluent CPU usage
2016-05-25 08:31:19 +02:00
Wojciech Tyczynski eaf9e5f596 Increase expected fluent CPU limit 2016-05-25 08:16:01 +02:00
Mike Danese 1ef1906209 Merge pull request #26197 from wonderfly/update_default_master_image
Replace containervm with GCI as default master image for GCE clusters
2016-05-24 16:58:14 -07:00
k8s-merge-robot 107fedf607 Merge pull request #26192 from Random-Liu/fix-node-e2e-log-print
Automatic merge from submit-queue

Fix node e2e log print

Fix bad log print:
```
W0524 18:20:41.679642    2069 container_list.go:56] Could not pre-pull image %s %v output:  %sgcr.io/google_containers/pause-amd64:3.0exit status 1 [69 114 114 111 114 32 114 101 115 112 111 110 115 101 32 102 114 111 109 32 100 97 101 109 111 110 58 32 71 101 116 32 104 116 116 112 115 58 47 47 103 99 114 46 105 111 47 118 50 47 103 111 111 103 108 101 95 99 111 110 116 97 105 110 101 114 115 47 112 97 117 115 101 45 97 109 100 54 52 47 109 97 110 105 102 101 115 116 115 47 51 46 48 58 32 71 101 116 32 104 116 116 112 115 58 47 47 103 99 114 46 105 111 47 118 50 47 116 111 107 101 110 63 115 99 111 112 101 61 114 101 112 111 115 105 116 111 114 121 37 51 65 103 111 111 103 108 101 95 99 111 110 116 97 105 110 101 114 115 37 50 70 112 97 117 115 101 45 97 109 100 54 52 37 51 65 112 117 108 108 38 115 101 114 118 105 99 101 61 103 99 114 46 105 111 58 32 110 101 116 47 104 116 116 112 58 32 114 101 113 117 101 115 116 32 99 97 110 99 101 108 101 100 32 119 104 105 108 101 32 119 97 105 116 105 110 103 32 102 111 114 32 99 111 110 110 101 99 116 105 111 110 32 40 67 108 105 101 110 116 46 84 105 109 101 111 117 116 32 101 120 99 101 101 100 101 100 32 119 104 105 108 101 32 97 119 97 105 116 105 110 103 32 104 101 97 100 101 114 115 41 10]
```

/cc @pwittrock 

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-05-24 16:16:28 -07:00
pwittrock eae1961599 Node e2e export test artifacts to jenkins.
- Add junit test reported
- Write etcd.log, kubelet.log and kube-apiserver.log to files instead of stdout
- Scp artifacts to the jenkins WORKSPACE

Fixes #25966
2016-05-24 23:00:58 +00:00
Daniel Wang 3d95151971 Replace containervm with GCI as default master image for GCE clusters 2016-05-24 17:28:17 -05: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
k8s-merge-robot db74335f60 Merge pull request #26100 from rootfs/fix-pd
Automatic merge from submit-queue

in e2e test, when kubectl exec fails to find the container to run a command, it should retry

fix #26076 
Without retrying upon "container not found" error, `Pod Disks` test failed on the following error:
```console
[k8s.io] Pod Disks 
  should schedule a pod w/two RW PDs both mounted to one container, write to PD, verify contents, delete pod, recreate pod, verify contents, and repeat in rapid succession [Slow]
  /go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/test/e2e/pd.go:271
[BeforeEach] [k8s.io] Pod Disks
  /go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/test/e2e/framework/framework.go:108
STEP: Creating a kubernetes client
May 23 19:18:02.254: INFO: >>> TestContext.KubeConfig: /root/.kube/config

STEP: Building a namespace api object
STEP: Waiting for a default service account to be provisioned in namespace
[BeforeEach] [k8s.io] Pod Disks
  /go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/test/e2e/pd.go:69
[It] should schedule a pod w/two RW PDs both mounted to one container, write to PD, verify contents, delete pod, recreate pod, verify contents, and repeat in rapid succession [Slow]
  /go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/test/e2e/pd.go:271
STEP: creating PD1
May 23 19:18:06.678: INFO: Successfully created a new PD: "rootfs-e2e-11dd5f5b-211b-11e6-a3ff-b8ca3a62792c".
STEP: creating PD2
May 23 19:18:11.216: INFO: Successfully created a new PD: "rootfs-e2e-141f062d-211b-11e6-a3ff-b8ca3a62792c".
May 23 19:18:11.216: INFO: PD Read/Writer Iteration #0
STEP: submitting host0Pod to kubernetes
W0523 19:18:11.279910    4984 request.go:347] Field selector: v1 - pods - metadata.name - pd-test-16d3653c-211b-11e6-a3ff-b8ca3a62792c: need to check if this is versioned correctly.
STEP: writing a file in the container
May 23 19:18:39.088: INFO: Running '/srv/dev/kubernetes/_output/dockerized/bin/linux/amd64/kubectl kubectl --server=https://130.211.199.187 --kubeconfig=/root/.kube/config exec --namespace=e2e-tests-pod-disks-3t3g8 pd-test-16d3653c-211b-11e6-a3ff-b8ca3a62792c -c=mycontainer -- /bin/sh -c echo '1394466581702052925' > '/testpd1/tracker0''
May 23 19:18:40.250: INFO: Wrote value: "1394466581702052925" to PD1 ("rootfs-e2e-11dd5f5b-211b-11e6-a3ff-b8ca3a62792c") from pod "pd-test-16d3653c-211b-11e6-a3ff-b8ca3a62792c" container "mycontainer"
STEP: writing a file in the container
May 23 19:18:40.251: INFO: Running '/srv/dev/kubernetes/_output/dockerized/bin/linux/amd64/kubectl kubectl --server=https://130.211.199.187 --kubeconfig=/root/.kube/config exec --namespace=e2e-tests-pod-disks-3t3g8 pd-test-16d3653c-211b-11e6-a3ff-b8ca3a62792c -c=mycontainer -- /bin/sh -c echo '1740704063962701662' > '/testpd2/tracker0''
May 23 19:18:41.433: INFO: Wrote value: "1740704063962701662" to PD2 ("rootfs-e2e-141f062d-211b-11e6-a3ff-b8ca3a62792c") from pod "pd-test-16d3653c-211b-11e6-a3ff-b8ca3a62792c" container "mycontainer"
STEP: reading a file in the container
May 23 19:18:41.433: INFO: Running '/srv/dev/kubernetes/_output/dockerized/bin/linux/amd64/kubectl kubectl --server=https://130.211.199.187 --kubeconfig=/root/.kube/config exec --namespace=e2e-tests-pod-disks-3t3g8 pd-test-16d3653c-211b-11e6-a3ff-b8ca3a62792c -c=mycontainer -- cat /testpd1/tracker0'
May 23 19:18:42.585: INFO: Read file "/testpd1/tracker0" with content: 1394466581702052925

STEP: reading a file in the container
May 23 19:18:42.585: INFO: Running '/srv/dev/kubernetes/_output/dockerized/bin/linux/amd64/kubectl kubectl --server=https://130.211.199.187 --kubeconfig=/root/.kube/config exec --namespace=e2e-tests-pod-disks-3t3g8 pd-test-16d3653c-211b-11e6-a3ff-b8ca3a62792c -c=mycontainer -- cat /testpd2/tracker0'
May 23 19:18:43.779: INFO: Read file "/testpd2/tracker0" with content: 1740704063962701662

STEP: deleting host0Pod
May 23 19:18:44.048: INFO: PD Read/Writer Iteration #1
STEP: submitting host0Pod to kubernetes
W0523 19:18:44.132475    4984 request.go:347] Field selector: v1 - pods - metadata.name - pd-test-16d3653c-211b-11e6-a3ff-b8ca3a62792c: need to check if this is versioned correctly.
STEP: reading a file in the container
May 23 19:18:45.186: INFO: Running '/srv/dev/kubernetes/_output/dockerized/bin/linux/amd64/kubectl kubectl --server=https://130.211.199.187 --kubeconfig=/root/.kube/config exec --namespace=e2e-tests-pod-disks-3t3g8 pd-test-16d3653c-211b-11e6-a3ff-b8ca3a62792c -c=mycontainer -- cat /testpd1/tracker0'
May 23 19:18:46.290: INFO: error running kubectl exec to read file: exit status 1
stdout=
stderr=error: error executing remote command: error executing command in container: container not found ("mycontainer")
)
May 23 19:18:46.290: INFO: Error reading file: exit status 1
May 23 19:18:46.290: INFO: Unexpected error occurred: exit status 1
```
Now I've run this fix on e2e pd test 5 times and no longer see any failure
2016-05-24 15:21:07 -07:00
k8s-merge-robot 50524c78a1 Merge pull request #20672 from brendandburns/dump
Automatic merge from submit-queue

Add a 'kubectl clusterinfo dump' option

Ref: #3500 

@bgrant0607 @smarterclayton @jszczepkowski 

Usage:
```
  # Dump current cluster state to stdout
  kubectl clusterinfo dump
  
  # Dump current cluster state to /tmp
  kubectl clusterinfo dump --output-directory=/tmp
  
  # Dump all namespaces to stdout
  kubectl clusterinfo dump --all-namespaces
  
  # Dump a set of namespaces to /tmp
  kubectl clusterinfo dump --namespaces default,kube-system --output-directory=/tmp
```

<!-- 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/20672)
<!-- Reviewable:end -->
2016-05-24 14:24:17 -07:00
Mike Danese 7350897238 Merge pull request #26122 from yujuhong/no_timeout
docker: don't set timeout for image pulling requests
2016-05-24 13:29:47 -07:00
Zach Loafman 6e4f494ad0 Merge pull request #26195 from Q-Lee/addon-resizer
Don't try executing bash variable in assignment.
2016-05-24 12:41:50 -07:00
Quintin Lee 3ca4c36ebc Don't try executing bash variable in assignment. 2016-05-24 11:50:16 -07:00
nikhiljindal 991eb753a2 Renaming federated-apiserver to federation-apiserver 2016-05-24 11:49:39 -07:00
Mike Danese caa2e1713c Merge pull request #26105 from mhrgoog/godeps_skip_example
Removing unreferenced code in github/com/emicklei
2016-05-24 11:45:39 -07:00
Random-Liu 22e4df74d8 Fix node e2e log print 2016-05-24 11:34:40 -07:00
Wojciech Tyczynski 7ad337a2c2 Merge pull request #26170 from wojtek-t/log_requests_to_gce
Log requests to GCE
2016-05-24 18:59:20 +02:00
Avesh Agarwal 1931931494 Downward API implementation for resources limits and requests 2016-05-24 12:22:35 -04:00
Wojciech Tyczynski 55fdc1c036 Log requests to GCE 2016-05-24 18:14:37 +02:00
k8s-merge-robot 5303794ef0 Merge pull request #25787 from liggitt/update-admission
Automatic merge from submit-queue

plumb Update resthandler to allow old/new comparisons in admission

Rework how updated objects are passed to rest storage Update methods (first pass at https://github.com/kubernetes/kubernetes/pull/23928#discussion_r61444342)

* allows centralizing precondition checks (uid and resourceVersion)
* allows admission to have the old and new objects on patch/update operations (sets us up for field level authorization, differential quota updates, etc)
* allows patch operations to avoid double-GETting the object to apply the patch

Overview of important changes:
* pkg/api/rest/rest.go
  * changes `rest.Update` interface to give rest storage an `UpdatedObjectInfo` interface instead of the object directly. To get the updated object, the storage must call `UpdatedObject()`, passing in the current object
* pkg/api/rest/update.go
  * provides a default `UpdatedObjectInfo` impl
  * passes a copy of the updated object through any provided transforming functions and returns it when asked
  * builds UID preconditions from the updated object if they can be extracted
* pkg/apiserver/resthandler.go
  * Reworks update and patch operations to give old objects to admission
* pkg/registry/generic/registry/store.go
  * Calls `UpdatedObject()` inside `GuaranteedUpdate` so it can provide the old object

Todo:
- [x] Update rest.Update interface:
  * Given the name of the object being updated
  * To get the updated object data, the rest storage must pass the current object (fetched using the name) to an `UpdatedObject(ctx, oldObject) (newObject, error)` func. This is typically done inside a `GuaranteedUpdate` call.
- [x] Add old object to admission attributes interface
- [x] Update resthandler Update to move admission into the UpdatedObject() call
- [x] Update resthandler Patch to move the patch application and admission into the UpdatedObject() call
- [x] Add resttest tests to make sure oldObj is correctly passed to UpdatedObject(), and errors propagate back up

Follow-up:
* populate oldObject in admission for delete operations?
* update quota plugin to use `GetOldObject()` in admission attributes
* admission plugin to gate ownerReference modification on delete permission
* Decide how to handle preconditions (does that belong in the storage layer or in the resthander layer?)
2016-05-24 08:41:31 -07:00
k8s-merge-robot 04d6162e0f Merge pull request #26071 from gmarek/kube-up
Automatic merge from submit-queue

Make node-instance-group base names unique to prevent collisions

We create multiple IGMs for >1000 Node clusters. When we have a conflict on base name IGMs will fight over ownership of the VM that happen to have the name belonging to multiple IGMs.

This change will increase reliability of starting big clusters.

cc @wojtek-t @alex-mohr @roberthbailey @mikedanese
2016-05-24 07:31:22 -07:00
Huamin Chen 56719f83b7 when kubectl exec fails to find the container to run a command, it should retry
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-05-24 14:18:44 +00:00
Wojciech Tyczynski 01e79b88e1 Merge pull request #26159 from wojtek-t/fix_gci
Fix GCI after #26109 breakage
2016-05-24 14:47:55 +02:00
Wojciech Tyczynski e515da4545 Fix GCI after #26109 breakage 2016-05-24 14:12:30 +02:00
Filip Grzadkowski 1ab5fc4392 Merge pull request #26069 from fgrzadkowski/unschedulable_pod
Refactor scheduler to expose predicates to cluster autoscaler
2016-05-24 12:01:32 +02:00
Wojciech Tyczynski 316103875e Merge pull request #26146 from wojtek-t/avoid_dumb_logs
Avoid dumping all information in large clusters
2016-05-24 11:20:08 +02:00
Wojciech Tyczynski bd920de4a4 Avoid dumping all information in large clusters 2016-05-24 10:23:42 +02:00
Wojciech Tyczynski e58788be6d Merge pull request #26140 from zmerlynn/rate-limit-everything
GCE provider: Rate limit all API calls
2016-05-24 09:25:52 +02:00
Filip Grzadkowski 55a1c826bb Refactor scheduler to expose predicates to cluster autoscaler 2016-05-24 09:04:31 +02:00
k8s-merge-robot ac3b315881 Merge pull request #26115 from janetkuo/edit-pod-flake
Automatic merge from submit-queue

Add pre-condition before editing pod in test-cmd.sh

Ref #25925

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-05-23 23:48:26 -07:00
Zach Loafman 9b5cdfb705 GCE provider: Rate limit all API calls
Instead of just rate limits to operation polling, send all API calls
through a rate limited RoundTripper.

This isn't a perfect solution, since the QPS is obviously getting
split between different controllers, etc., but it's also spread across
different APIs, which, in practice, rate limit differently.

Fixes #26119 (hopefully)
2016-05-23 23:23:53 -07:00
Wojciech Tyczynski 307767ec7c Merge pull request #26109 from Q-Lee/addon-resizer
Fixing heapster memory requirements.
2016-05-24 08:17:49 +02:00
k8s-merge-robot a68fc248d3 Merge pull request #19872 from nagarjung/kube_tarball
Automatic merge from submit-queue

Add kubernetes.tar.gz to .gitignore

This patch avoids adding kubernetes.tar.gz to git staging as it gets downloaded during get-kube.sh script.
2016-05-23 22:57:12 -07:00
k8s-merge-robot 2dbda8c705 Merge pull request #25990 from caesarxuchao/remove-configmap-ex
Automatic merge from submit-queue

remove ConfigMap example from GC proposal

We need more thoughts on the design. Remove it to avoid causing confusion.

@derekwaynecarr  @lavalamp
2016-05-23 21:02:33 -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
Mike Danese 1e97583f01 Merge pull request #26089 from spxtr/flakyflaky
Move PD tests to flaky suite.
2016-05-23 17:20:36 -07:00
Yu-Ju Hong 77dba962db docker: don't set timeout for image pulling requests 2016-05-23 16:17:49 -07:00
k8s-merge-robot bf0a5e9fac Merge pull request #25413 from pmorie/storage-proposal
Automatic merge from submit-queue

Proposal: persistent volume selector

Partially replaces #17056.  Another proposal will follow dealing with dynamic provisioning on top of storage classes.

@kubernetes/sig-storage
2016-05-23 15:21:05 -07:00
Janet Kuo 89df549016 Add pre-condition before editing pod in test-cmd.sh 2016-05-23 15:04:43 -07:00
Quintin Lee 81ee3e2d30 Fixing heapster memory requirements. 2016-05-23 14:25:55 -07:00