Commit Graph

14919 Commits

Author SHA1 Message Date
Kubernetes Submit Queue
b2d02bd1ab Merge pull request #31395 from yujuhong/getpods
Automatic merge from submit-queue

Instruct PLEG to detect pod sandbox state changes

This PR adds a Sandboxes list in `kubecontainer.Pod`, so that PLEG can check
sandbox changes using `GetPods()` . The sandboxes are treated as regular
containers (type `kubecontainer.Container`) for now to avoid additional
changes in PLEG.

/cc @feiskyer @yifan-gu @euank
2016-09-08 05:41:16 -07:00
Kubernetes Submit Queue
8d9d32db0a Merge pull request #31499 from areed/31130-rollout-status
Automatic merge from submit-queue

kubectl rollout status waits for available pods

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

**What this PR does / why we need it**:
This changes kubectl rollout status to wait until all updated replicas are available before finishing.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #31130

**Special notes for your reviewer**:

**Release note**:
<!--  Steps to write your release note:
1. Use the release-note-* labels to set the release note state (if you have access) 
2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`. 
-->
```release-note
Changes 'kubectl rollout status' to wait until all updated replicas are available before finishing.
```
Currently kubectl rollout status finishes when Deployment.Spec.Replicas == Deployment.Status.UpdatedReplicas, but it's less surprising to the user for kubectl rollout status to wait until Deployment.Status.UpdatedReplicas == Deployment.Status.Replics == Deployment.Status.AvailableReplicas
2016-09-08 05:01:26 -07:00
Kubernetes Submit Queue
d877967c1a Merge pull request #32269 from wojtek-t/watcher_logs
Automatic merge from submit-queue

Extend logging for scalability tests debugging

Ref #32257
2016-09-08 04:25:10 -07:00
Kubernetes Submit Queue
c27326a26c Merge pull request #31189 from hongchaodeng/r1
Automatic merge from submit-queue

api storage: Decouple Decorator from Filter

Continue #28249

What?
This PR decouples Decorator from Filter, i.e. remove Decorator in createFilter().
- For List, Decorator is called on returned list object.
- For Watch, we implement a new watcher to pipe through decorator. Error will be returned as a watch event.

Why?
- We want to change filter to SelectionPredicate struct. But Decorator is designed to be coupled with filtering.
- Per the discussion in #28249, decorator shouldn't be coupled to filter and error from Decorator should be returned instead of assuming false filtering.
2016-09-08 04:25:05 -07:00
Kubernetes Submit Queue
bf4e9e9db8 Merge pull request #31245 from deads2k/api-02
Automatic merge from submit-queue

privatize, document, and scrub GenericAPIServer

I've gone through more of the `GenericAPIServer` struct, started documenting what the fields do and privatizing ones that aren't used elsewhere or are only used by components that need some refactoring too.
2016-09-08 03:47:50 -07:00
Wojciech Tyczynski
bd54c389f5 Extend logging for scalability tests debugging 2016-09-08 12:02:59 +02:00
Kubernetes Submit Queue
aff7dfcaab Merge pull request #30513 from tmrts/kubelet-rkt-cri/use-image-service
Automatic merge from submit-queue

Kubelet rkt CRI use ImageService

Implements `container.ImageService` and refactors the `pkg/kubelet/rkt` to use it
2016-09-08 02:49:58 -07:00
Kubernetes Submit Queue
7a4d81ea43 Merge pull request #31271 from deads2k/self-sar
Automatic merge from submit-queue

add selfsubjectaccessreview API

Exposes the REST API for self subject access reviews.  This allows a user to see whether or not they can perform a particular action.

@kubernetes/sig-auth
2016-09-08 01:29:48 -07:00
Kubernetes Submit Queue
63495d785b Merge pull request #31045 from abrarshivani/vsphere_describe_volume
Automatic merge from submit-queue

Add kubectl describe cmd support for vSphere volume

This PR does following,
Add kubectl describe cmd support for vSphere volume

Examples:

> kubectl describe pod redis
.......
Volumes:
  vmdk-storage:
    Type:	vSphereVolume (a Persistent Disk resource in vSphere)
    VolumePath:	[Datastore] test1
    FSType:	ext4
.........

> kubectl describe pv pv0001
Name:		pv0001
Labels:		<none>
Status:		Available
Claim:
Reclaim Policy:	Recycle
Access Modes:	RWO
Capacity:	2Gi
Message:
Source:
    Type:	vSphereVolume (a Persistent Disk resource in vSphere)
    VolumePath:	[vsanDatastore] volumes/test11
    FSType:	ext4
No events.
2016-09-08 00:08:35 -07:00
Kubernetes Submit Queue
93c9b05bc9 Merge pull request #31979 from dagnello/vsphere-cleanup-controller-nil-check
Automatic merge from submit-queue

vSphere Cloud provider null pointer exception

This PR addresses issue #31823.

SelectByType function in govmomi will panic if deviceType is not Array,
Chan, Map, Ptr, or Slice.  Also checking if vmDevices or vm are nil,
there is nothing to cleanup.
2016-09-07 23:30:48 -07:00
Kubernetes Submit Queue
9ae463593c Merge pull request #32212 from fraenkel/save_stderr
Automatic merge from submit-queue

Save stderr since it may become nil

fixes #32206

opts.Run() may set Err to nil
2016-09-07 22:54:03 -07:00
Kubernetes Submit Queue
962d51ec68 Merge pull request #32077 from jsafrane/provision-plugin
Automatic merge from submit-queue

Do not report warning event when an unknown provisioner is requested.

with `StorageClass.Provisioner == <unknown plugin>`, we should wait for
either external provisioner or volume admin to provide a PV for a claim
instead of reporting an error.

Fixes #31723
2016-09-07 21:05:45 -07:00
Matt Liggett
108a15db38 Add eviction e2e tests.
Also refactor the test a bit.
2016-09-07 17:38:38 -07:00
Kubernetes Submit Queue
7c27a2686f Merge pull request #31688 from mehdy/master
Automatic merge from submit-queue

updated client document
2016-09-07 16:25:24 -07:00
Michael Fraenkel
fb4a466321 Save stderr since it may become nil 2016-09-07 19:01:59 -04:00
Kubernetes Submit Queue
0bd0d5571a Merge pull request #31540 from mtaufen/DockerOrDieRename
Automatic merge from submit-queue

Rename ConnectToDockerOrDie to CreateDockerClientOrDie

This function does not actually attempt to connect to the docker daemon, it just creates a client object that can be used to do so later. The old name was confusing, as it implied that a failure to touch the docker daemon could cause program termination (rather than just a failure to create the client).
2016-09-07 15:27:41 -07:00
Kubernetes Submit Queue
4c9ab4e856 Merge pull request #32213 from derekwaynecarr/log-an-event-when-eviction-cannot-kill-fast-enough
Automatic merge from submit-queue

Log an event when container runtime exceeds grace-period during eviction

While debugging flakes in eviction, I encountered scenarios where the container run-time did not evict a pod within the allowed grace period.  This could result in situations where a BE pod would not get killed fast enough and therefore a Bu pod was killed next (assuming there were no other BE pods)

/cc @mtaufen @vishh
2016-09-07 14:11:06 -07:00
Kubernetes Submit Queue
184e91bbf6 Merge pull request #32182 from smarterclayton/aggregate_discovery_errors
Automatic merge from submit-queue

Use a structured error rather than an Aggregate error in discovery

Should provide more information for debugging the root cause of
discovery failures.

Exposes the true cause of #32009

@lavalamp @derekwaynecarr
2016-09-07 12:12:58 -07:00
Kubernetes Submit Queue
c6919a0187 Merge pull request #32181 from smarterclayton/stable_flags
Automatic merge from submit-queue

Feature gate is not stable sorted - docs change each gen

Also... why are the feature flags defined *in* pkg/util/config which has nothing to do with general Kube?  Flags should be defined statically in a subpackage of the kubelet (if they are kubelet feature flags) or in pkg/kubernetes/features or something somewhere else generic.
2016-09-07 11:33:03 -07:00
derekwaynecarr
ff017839c7 Log an event when container runtime exceeds grace-period during eviction 2016-09-07 13:28:08 -04:00
Kubernetes Submit Queue
d0ee9ce47e Merge pull request #31509 from ping035627/ping035627-patch-0826
Automatic merge from submit-queue

Combine the ValidateRunOptions errors

In the "ValidateRunOptions" function, it had better to show all the invalid flags, so the user can modify them at once.
2016-09-07 10:14:43 -07:00
Kubernetes Submit Queue
542e5f9c5e Merge pull request #31494 from hongchaodeng/fix3
Automatic merge from submit-queue

fix EtcdTestClientServer leaking clients

Continued on https://github.com/kubernetes/kubernetes/pull/31390#discussion_r76360860
2016-09-07 10:14:37 -07:00
Kubernetes Submit Queue
9f58a867e1 Merge pull request #31522 from krousey/path_validation
Automatic merge from submit-queue

Split path validation into a separate library

This PR splits path segment validation into it's own package. This cuts off one of the restclient's dependency paths to some docker packages, and completely eliminates its dependency on go-restful swagger validation.


cc @kubernetes/sig-api-machinery
2016-09-07 10:14:32 -07:00
Kubernetes Submit Queue
4300055405 Merge pull request #30267 from feiskyer/kuberuntime-podstatus
Automatic merge from submit-queue

Kubelet: implement GetPodStatus for new runtime API

Implement `GetPodStatus()` for new runtime API.  Part of #28789 .

CC @yujuhong @Random-Liu @dchen1107
2016-09-07 10:14:26 -07:00
Clayton Coleman
88b64a7a82 Use a structured error rather than an Aggregate error in discovery
Should provide more information for debugging the root cause of
discovery failures.
2016-09-07 10:59:03 -04:00
Kubernetes Submit Queue
243959ce5a Merge pull request #32020 from euank/version-twiddling
Automatic merge from submit-queue

rkt: Update kube-up rkt version to v1.14.0

cc @kubernetes/sig-rktnetes 

This should have been included in #31286 (whoops).

This is a bugfix that I propose for v1.4 inclusion.
2016-09-07 01:18:57 -07:00
Jan Safranek
3a2f4e52a8 Do not report warning event when an nknown provisioner is requested
with StorageClass.Provisioner == <unknown plugin>, we should wait for
either external provisioner or volume admin to provide a PV for a claim
instead of reporting an error.

Fixes #31723
2016-09-07 09:11:41 +02:00
Kubernetes Submit Queue
a16de4a787 Merge pull request #32072 from sttts/sttts-sysctl-remove-tcp_max_syn_backlog
Automatic merge from submit-queue

Remove net.ipv4.tcp_max_syn_backlog from sysctl whitelist

Remove `net.ipv4.tcp_max_syn_backlog` from sysctl whitelist. This is not namespaced in today's kernels, but must be set on node-level.

Having this on the whitelist, wouldn't harm because the kernel only offers namespaced `net.*` sysctls in the `/proc/sys` tree. But having a sysctl on the whitelist, which cannot be used, doesn't make sense either.

#### 1.4 justification:

- Risk: the whitelist is a published API. We shouldn't have sysctls on there which do not work.
- Rollback: nothing should depend on this behavior.
- Cost: the cost of this is relatively low, as no pod with this sysctl will launch.
2016-09-06 23:59:49 -07:00
Kubernetes Submit Queue
54db8fa2e3 Merge pull request #31886 from deads2k/move-storage-class
Automatic merge from submit-queue

Move StorageClass to a storage group

We discussed the pros and cons in sig-api-machinery yesterday.  Choosing a particular group name means that clients (including our internal code) require less work and re-swizzling to handle promotions between versions.  Even if you choose a group you end up not liking, the amount of work remains the same as the incubator work case: you move the affected kind, resource, and storage.

This moves the `StorageClass` type to the `storage.k8s.io` group (named for consistency with authentication, authorization, rbac, and imagepolicy).  There are two commits, one for manaul changes and one for generated code.
2016-09-06 23:22:02 -07:00
Kubernetes Submit Queue
9dce773502 Merge pull request #31947 from smarterclayton/check_empty_config
Automatic merge from submit-queue

Check for EmptyConfig errors when trying to use in-cluster config

By removing the default "localhost:8080" behavior several paths in
client config began returning err == ErrEmptyConfig rather than err ==
nil.  The code checking for in cluster config was wrong - the logic
should be:

1. If loading the underlying config returns a non-empty error, fail
2. If the underlying config is not equal to the default config,
   return that config (it has user input)
3. If it is possible to use in-cluster config, do so
4. Otherwise return the default config (and or default EmptyConfig
   error).

Fixes #31910 @thockin @lavalamp @deads2k. We introduced EmptyConfig a very long time ago, but until I removed the "localhost:8080" Kubernetes was not actually exposing it (OpenShift relies on it since we don't set an insecure default). This properly falls through to in-cluster config in the described conditions.



```release-note
Some components like kube-dns and kube-proxy could fail to load the service account token when started within a pod. Properly handle empty configurations to try loading the service account config.
```
2016-09-06 22:02:55 -07:00
Clayton Coleman
4189062a03 Feature gate is not stable sorted - docs change each gen 2016-09-06 23:36:24 -04:00
Ryan Hitchman
4c7ef6561e Revert "Add e2e tests for eviction subresource." 2016-09-06 16:21:50 -07:00
Clayton Coleman
48b4d6d30c Check for EmptyConfig errors when trying to use in-cluster config
By removing the default "localhost:8080" behavior several paths in
client config began returning err == ErrEmptyConfig rather than err ==
nil.  The code checking for in cluster config was wrong - the logic
should be:

1. If loading the underlying config returns a non-empty error, fail
2. If the underlying config is not equal to the default config,
   return that config (it's got user input)
3. If it is possible to use in cluster config, do so
4. Otherwise return the default config (and or default EmptyConfig
   error).
2016-09-06 17:46:50 -04:00
Kubernetes Submit Queue
3da5d781fc Merge pull request #31722 from mml/evict.test
Automatic merge from submit-queue

Add e2e tests for eviction subresource.

This branch includes changes pending in both #31638 and #31721.  I will rebase
once those merge.
2016-09-06 14:25:07 -07:00
Kubernetes Submit Queue
fb679f99c1 Merge pull request #32125 from wojtek-t/fix_delta_fifo_race
Automatic merge from submit-queue

Fix race in DeltaFIFO

Fix #31981

@ncdc @deads2k @pmorie @gmarek
2016-09-06 13:46:09 -07:00
Euan Kemp
a2a324bf8b cluster/rkt: Update default rkt version 2016-09-06 12:09:11 -07:00
Matt Liggett
c377011138 Add eviction e2e tests.
Also refactor the test a bit.
2016-09-06 11:58:22 -07:00
Kubernetes Submit Queue
9dfe8df7cd Merge pull request #32107 from xingzhou/km_bug
Automatic merge from submit-queue

Used goroutine to launch node controller's internalPodInformer.

Fixes #32103
2016-09-06 11:50:28 -07:00
Wojciech Tyczynski
e0779df721 Fix race in DeltaFIFO 2016-09-06 20:48:18 +02:00
Kubernetes Submit Queue
c9fde2ba8a Merge pull request #32082 from gmarek/namespace
Automatic merge from submit-queue

Make ExponentialFailureRateLimiter slightly slower and cap the backof…

Fix #27503

cc @deads2k @derekwaynecarr @ncdc @wojtek-t

For the context of this change see: https://github.com/kubernetes/kubernetes/issues/27503#issuecomment-244741161
2016-09-06 10:34:49 -07:00
Kubernetes Submit Queue
2a7d0df30d Merge pull request #30727 from asalkeld/iptables-caps
Automatic merge from submit-queue

Clean up IPTables caps i.e.: sed -i "s/Iptables/IPTables/g"

Fixes #30651
2016-09-06 09:01:27 -07:00
gmarek
0b8aeaf500 Make ExponentialFailureRateLimiter slightly slower and cap the backoff 2016-09-06 15:53:52 +02:00
deads2k
6320dc6e73 generated code for moving StorageClass 2016-09-06 08:41:17 -04:00
deads2k
cd5b6cc491 move StorageClass to its own group 2016-09-06 08:41:17 -04:00
Kubernetes Submit Queue
4260f4ed0b Merge pull request #31661 from mikedanese/log-fix-ds
Automatic merge from submit-queue

fix log message to include ds name

The pod name is never set because newPod is created a couple lines up without a name. Instead log the name and namespace of the ds which the pod is created from.

also bump the log level because reasons loop get's hit fairly often and does not indicate a bug.
2016-09-06 03:51:25 -07:00
Kubernetes Submit Queue
afef4b6938 Merge pull request #32070 from gmarek/nodecontroller
Automatic merge from submit-queue

Sleep between NodeStatus update retries

Just a thing I found when looking into other problems.

This is pretty much no-risk change fixing wrong behavior. Do you think it should go in 1.4? @pwittrock
2016-09-06 03:51:20 -07:00
Kubernetes Submit Queue
606e8fb34a Merge pull request #32047 from guangxuli/kuber_learn
Automatic merge from submit-queue

const string testQuantityFlag no longer use
2016-09-06 02:37:16 -07:00
Kubernetes Submit Queue
2fe1fcdab8 Merge pull request #31951 from m1093782566/m109-master-errs
Automatic merge from submit-queue

Fix errors.NewAggregate nil pointer panic

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

**What this PR does / why we need it**:

Consider the following code block,

```
err := myfunc()
agg := errors.NewAggregate([]error{err})
fmt.Println("aggregate error is %v", agg)
```

If the `err` is **nil**, then it will cause a panic:

```
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
        panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x20 pc=0x481a61]

goroutine 6 [running]:
panic(0x5769c0, 0xc082002090)
        C:/Go/src/runtime/panic.go:464 +0x3f4
testing.tRunner.func1(0xc082074090)
        C:/Go/src/testing/testing.go:467 +0x199
panic(0x5769c0, 0xc082002090)
        C:/Go/src/runtime/panic.go:426 +0x4f7
k8s.io/kubernetes/pkg/util/errors.aggregate.Error(0xc082002590, 0x1, 0x1, 0x0, 0x0)
        D:/goproject/community/src/k8s.io/kubernetes/pkg/util/errors/errors.go:71 +0x91
k8s.io/kubernetes/pkg/util/errors.(*aggregate).Error(0xc08200c7e0, 0x0, 0x0)
        <autogenerated>:1 +0xb4
k8s.io/kubernetes/pkg/util/errors.TestAggregateWithNil(0xc082074090)
        D:/goproject/community/src/k8s.io/kubernetes/pkg/util/errors/errors_test.go:70 +0x402
testing.tRunner(0xc082074090, 0x67cdb8)
        C:/Go/src/testing/testing.go:473 +0x9f
created by testing.RunTests
        C:/Go/src/testing/testing.go:582 +0x899
exit status 2
```

The root cause is that [aggregate.Error()](https://github.com/kubernetes/kubernetes/blob/master/pkg/util/errors/errors.go#L47) doesn't check if error list contains nil.

We can blame the user didn't check if `err` is nil before passing it to 

```
errors.NewAggregate([]error{err})
``` 

but I think we can check again inside in case of user forget to check outside.
2016-09-06 02:01:29 -07:00
Xing Zhou
46c302b4c2 Used goroutine to launch node controller's internalPodInformer.
Node controller's internalPodInformer will block main thread
if it is not started as a go routine. This patch fixed this
by runing internalPodInformer as a go routine.
2016-09-06 15:39:13 +08:00
Kubernetes Submit Queue
065fad7ad1 Merge pull request #32100 from wojtek-t/fix_rc_log
Automatic merge from submit-queue

Fix debugging log in RC

Ref #31981
2016-09-06 00:38:51 -07:00