Commit Graph

5362 Commits

Author SHA1 Message Date
Yu-Ju Hong
722ecfb21c cr2 e2e: remove experimental-mounter-rootfs flag
The commit was reverted and the flag no longer exists.
2016-11-03 08:21:07 -07:00
Marcin
d413f6979b Temporairly remove disruption e2e 2016-11-03 13:26:28 +01:00
Marcin
26acced6d8 Add policy api version v1beta1 and disable v1alpha1 2016-11-03 13:26:27 +01:00
Kubernetes Submit Queue
a8a8660415 Merge pull request #35204 from gmarek/node-affinity
Automatic merge from submit-queue

Add node affinity test to scheduler benchmark

cc @wojtek-t
2016-11-03 05:09:12 -07:00
Kubernetes Submit Queue
973fa6b334 Merge pull request #35821 from vishh/gci-mounter-scope
Automatic merge from submit-queue

[Kubelet] Use the custom mounter script for Nfs and Glusterfs only

This patch reduces the scope for the containerized mounter to NFS and GlusterFS on GCE + GCI clusters

This patch also enabled the containerized mounter on GCI nodes

Shepherding multiple PRs through the submit queue is painful. Hence I combined them into this PR. Please review each commit individually.

cc @jingxu97 @saad-ali

https://github.com/kubernetes/kubernetes/pull/35652 has also been reverted as part of this PR
2016-11-03 04:32:19 -07:00
Kubernetes Submit Queue
41b5fe86b6 Merge pull request #31546 from derekwaynecarr/systemd-pod-cgroups
Automatic merge from submit-queue

pod and qos level cgroup support

```release-note
[Kubelet] Add alpha support for `--cgroups-per-qos` using the configured `--cgroup-driver`. Disabled by default.
```
2016-11-03 03:56:56 -07:00
Kubernetes Submit Queue
e817594648 Merge pull request #35731 from janetkuo/statefulset-v1beta1
Automatic merge from submit-queue

Move Statefulset (previously PetSet) to v1beta1

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

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

**Special notes for your reviewer**: depends on #35663 (PetSet rename)
cc @erictune @foxish @kubernetes/sig-apps 

**Release note**:

``` release-note
v1beta1/StatefulSet replaces v1alpha1/PetSet.
```
2016-11-03 02:46:57 -07:00
Random-Liu
6c40bf5f50 Add e2e test for NPD v0.2. 2016-11-02 21:50:59 -07:00
Madhusudan.C.S
331ef53b69 [Federation][init-01] Add unit tests for kubefed init's certificate generator. 2016-11-02 19:27:39 -07:00
Janet Kuo
9f3560c563 Update how we detect overlapping deployments
When looking for overlapping deployments, we should also find other deployments that select current deployment's pods,
not just the ones whose pods are selected by current deployment.
2016-11-02 15:29:28 -07:00
Vishnu Kannan
414e4ae549 Revert "Adding a root filesystem override for kubelet mounter"
This reverts commit e861a5761d.
2016-11-02 15:18:09 -07:00
Janet Kuo
c15b9470f5 Replace apps/v1alpha1 with apps/v1beta1 and manually remove generated apps/v1alpha1 files
Manually remove generated apps/v1alpha1 types, protobuf, and api-reference doc files
Manually remove apps/v1alpha1 folder from 1.5 generated client
2016-11-02 15:16:23 -07:00
foxish
bbf3ac7324 Moving annotation to the right spot. 2016-11-02 14:53:45 -07:00
Clayton Coleman
6e25830378
Add --force to kubectl delete and explain force deletion
--force is required for --grace-period=0. --now is == --grace-period=1.
Improve command help to explain what graceful deletion is and warn about
force deletion.
2016-11-02 17:44:05 -04:00
Jeff Lowdermilk
283bb31ada Add cmd support to gcp auth provider plugin 2016-11-02 13:57:30 -07:00
Kubernetes Submit Queue
5db7596cdc Merge pull request #35903 from smarterclayton/test_node
Automatic merge from submit-queue

Add a test that emulates large N node behavior against master
2016-11-02 12:53:49 -07:00
Kubernetes Submit Queue
539165d899 Merge pull request #36075 from rmmh/root-gitattributes
Automatic merge from submit-queue

Move .gitattributes annotation to the root, so GitHub will respect them.

This should fix the merge conflicts by letting GitHub use the simpler line-by-line algorithm for this file. Having .gitattributes in a sub-directory would work for local merging, but would show conflicts on the web UI.
2016-11-02 12:13:54 -07:00
Tim St. Clair
ec9111d942
Hold bad AppArmor pods in pending rather than rejecting 2016-11-02 11:05:16 -07:00
Kubernetes Submit Queue
df8db653da Merge pull request #35493 from madhusudancs/federation-kubefed-01
Automatic merge from submit-queue

[Federation][join-01] Implement `kubefed join` command.

Supersedes PR #35155.

Please review only the last commit here. This is based on PR #35492 which will be reviewed independently.

I will add a release note separately for this entire feature, so please don't worry too much about the release note here in the PR.

Design Doc: PR #34484

cc @kubernetes/sig-cluster-federation @quinton-hoole @mwielgus
2016-11-02 10:35:55 -07:00
Michael Taufen
5190a7d72d Add dynamic kubelet configuration utilities to node e2e tests
Also modify dynamic kubelet configuration test to rely on new utility functions
2016-11-02 10:02:21 -07:00
Kubernetes Submit Queue
49f1aa0632 Merge pull request #35739 from foxish/migrating-the-annotation
Automatic merge from submit-queue

Making the pod.alpha.kubernetes.io/initialized annotation optional in PetSet pods

**What this PR does / why we need it**: As of now, the absence of the annotation `pod.alpha.kubernetes.io/initialized` in PetSets causes the PetSet controller to effectively "pause". Being a debug hook, users expect that its absence has no effect on the working of a PetSet. This PR inverts the logic so that we let the PetSet controller operate as expected in the absence of the annotation.
Letting the annotation remain alpha seems ok. Renaming it to something more meaningful needs further discussion.

**Which issue this PR fixes** _(optional, in `fixes #<issue number>(, #<issue_number>, ...)` format, will close that issue when PR gets merged)_: fixes https://github.com/kubernetes/kubernetes/issues/35498

**Special notes for your reviewer**: 

**Release note**:

``` release-note
The annotation "pod.alpha.kubernetes.io/initialized" on StatefulSets (formerly PetSets) is now optional and only encouraged for debug use.
```

cc @erictune @smarterclayton @bprashanth @kubernetes/sig-apps 
@kow3ns The examples will need to be cleaned up as well I think later on to remove them.
2016-11-02 09:58:00 -07:00
Ryan Hitchman
955f31353d Move .gitattributes annotation to the root, so GitHub will respect them. 2016-11-02 09:48:45 -07:00
Wojciech Tyczynski
314c4c2811 Revert "Make master components in kubemark monitored by supervisord" 2016-11-02 14:43:09 +01:00
derekwaynecarr
42289c2758 pod and qos level cgroup support 2016-11-02 08:07:04 -04:00
Kubernetes Submit Queue
0d228d6a61 Merge pull request #36052 from gmarek/density
Automatic merge from submit-queue

Create multiple clients in Density test and remove unused 'interval'

Fix #36039
2016-11-02 04:50:04 -07:00
Kubernetes Submit Queue
3eae250c58 Merge pull request #35918 from gmarek/supervisor
Automatic merge from submit-queue

Make master components in kubemark monitored by supervisord
2016-11-02 03:51:08 -07:00
gmarek
bd21b0312b Create multiple clients in Density test and remove unused 'interval' 2016-11-02 11:20:24 +01:00
Michail Kargakis
2491216222 Replica set/rc controller changes for Conditions 2016-11-02 10:30:09 +01:00
Wojciech Tyczynski
2e011d3097 Update density.go 2016-11-02 09:16:20 +01:00
Tim Hockin
f4c2a05eea Merge pull request #33656 from koep/typos
Fix typos
2016-11-02 07:25:16 +01:00
Kubernetes Submit Queue
737ba92f45 Merge pull request #36030 from yujuhong/disable_mounter
Automatic merge from submit-queue

Disable gci-mounter in cri node e2e tests

gci-mounter is still being validated and there are known issues. Do not enable it
for cri tests for now.
2016-11-01 20:47:26 -07:00
Kubernetes Submit Queue
49e7d640d9 Merge pull request #35235 from foxish/node-controller-no-force-deletion
Automatic merge from submit-queue

Node controller to not force delete pods

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

- [x] e2e tests to test Petset, RC, Job.
- [x] Remove and cover other locations where we force-delete pods within the NodeController.

**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
Node controller no longer force-deletes pods from the api-server.

* For StatefulSet (previously PetSet), this change means creation of replacement pods is blocked until old pods are definitely not running (indicated either by the kubelet returning from partitioned state, or deletion of the Node object, or deletion of the instance in the cloud provider, or force deletion of the pod from the api-server). This has the desirable outcome of "fencing" to prevent "split brain" scenarios.
* For all other existing controllers except StatefulSet , this has no effect on the ability of the controller to replace pods because the controllers do not reuse pod names (they use generate-name).
* User-written controllers that reuse names of pod objects should evaluate this change.
```
2016-11-01 20:08:57 -07:00
Yu-Ju Hong
d22f4045d5 Disable gci-mounter in cri node e2e tests
gci-mounter is still being validated and there are known issues. Do not enable it
for cri tests for now.
2016-11-01 18:00:43 -07:00
Janet Kuo
76ab3a45b7 StatefulSet e2e: verify stateful pod hostname 2016-11-01 16:38:46 -07:00
Kubernetes Submit Queue
33c1c93863 Merge pull request #35984 from zmerlynn/make-disruption-less-flakey
Automatic merge from submit-queue

Disruption e2e: wait for running pods in the table test, too

**What this PR does / why we need it**: Makes the `DisruptionController` tests less flaky.
**Which issue this PR fixes**: fixes #34032
2016-11-01 13:30:11 -07:00
Madhusudan.C.S
2342f6eefb [Federation][join-01] Implement kubefed join command.
Also, add unit tests for `kubefed join`.
2016-11-01 12:45:28 -07:00
Anirudh
71941016c1 Fix old e2e tests, refactor and add new e2e tests. 2016-11-01 11:46:13 -07:00
deads2k
912e6741b9 promote /metrics to genericapiserver 2016-11-01 14:42:01 -04:00
deads2k
f56cbfa8d5 add healthz to genericapiserver 2016-11-01 14:39:33 -04:00
Kubernetes Submit Queue
37122c2636 Merge pull request #35937 from zmerlynn/fix-e2e-for-taints
Automatic merge from submit-queue

e2e: Fix GetReadySchedulableNodesOrDie for taints

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

This changes framework.GetReadySchedulableNodesOrDie and
framework.GetMasterAndWorkerNodesOrDie so that nodes that can't take a
generic fake pod due to a taint/toleration mismatch aren't returned.

This is a rehash of #35210, but pulls in the scheduler code.

**Which issue this PR fixes**: c.f. #35210

**Special notes for your reviewer**: I think it's gross that we keep having to manually compute this in e2es. Maybe we need a bug for that?
2016-11-01 11:08:44 -07:00
Zach Loafman
f8de9abf28 Disruption e2e: wait for running pods in the table test, too 2016-11-01 10:53:08 -07:00
David Ashpole
d494ef66f0 Collects volume inode stats using the same find command that cadvisor uses these are included in the summary 2016-11-01 10:51:11 -07:00
Kubernetes Submit Queue
2244bfed81 Merge pull request #35137 from dashpole/per_container_inode_eviction
Automatic merge from submit-queue

Eviction manager evicts based on inode consumption

Fixes: #32526 Integrate Cadvisor per-container inode stats into the summary api.  Make the eviction manager act based on inode consumption to evict pods using the most inodes.

This PR is pending on a cadvisor godeps update which will be included in PR #35136
2016-11-01 10:32:09 -07:00
Zach Loafman
155a601425 e2e: Fix GetReadySchedulableNodesOrDie for taints
This changes framework.GetReadySchedulableNodesOrDie and
framework.GetMasterAndWorkerNodesOrDie so that nodes that can't take a
generic fake pod due to a taint/toleration mismatch aren't returned.

This is a rehash of #35210, but pulls in the scheduler code.
2016-11-01 09:40:02 -07:00
Clayton Coleman
498727a520
Add a test that emulates large N node behavior against master
Run:

    etcd &
    kube-apiserver --etcd-servers=... ...
    UPDATE_NODE_APISERVER go test ./test/integration/master
-test.run=TestUpdateNodeObjects -test.v -tags integration

Simulates the core update loops from nodes to the API server, allowing
baseline profiling for steady state of large clusters. May require
tweaking the http.Transport used by the client to support >N idle
connections to the master.
2016-11-01 11:26:06 -04:00
Wojciech Tyczynski
63954ccd0e Merge pull request #35964 from wojtek-t/fix_large_density_test
Fix density test in large clusters
2016-11-01 15:13:38 +01:00
Kubernetes Submit Queue
4eb1c2baa9 Merge pull request #35795 from deads2k/api-33-clean-master.go
Automatic merge from submit-queue

remove non-reuseable bits of MasterServer

Scrub `master.go` again.  I think I'm pretty happy with this shape.  I may promote `InstallAPIs` since we're likely to want it downstream.
2016-11-01 06:50:23 -07:00
Wojciech Tyczynski
b6a5992ee5 Fix density test in large clusters 2016-11-01 11:03:21 +01:00
Dr. Stefan Schimanski
d0b3981f07 Make GenericApiServer.Run interruptable and fail on first listen 2016-11-01 09:50:56 +01:00
Kubernetes Submit Queue
d461262bf8 Merge pull request #35497 from liggitt/node-address
Automatic merge from submit-queue

Allow apiserver to choose preferred kubelet address type

Follow up to #33718 to stay compatible with clusters using DNS names for master->node communications. Adds the `--kubelet-preferred-address-types` apiserver flag for clusters that prefer a different node address type.

```release-note
The apiserver can now select which type of kubelet-reported address to use for master->node communications, using the --kubelet-preferred-address-types flag.
```
2016-10-31 18:33:27 -07:00
Kubernetes Submit Queue
4bae0f3a96 Merge pull request #35927 from timstclair/summary-test
Automatic merge from submit-queue

Bump Kubelet workingset upper bound

For https://github.com/kubernetes/kubernetes/issues/34990

Follow up to https://github.com/kubernetes/kubernetes/pull/35828, because working memory is too high now too.
2016-10-31 15:34:18 -07:00
Tim St. Clair
8330b081bc
Bump Kubelet workingset upper bound 2016-10-31 13:51:07 -07:00
Jordan Liggitt
1a7f7c5399
Allow apiserver to choose preferred kubelet address type 2016-10-31 16:02:38 -04:00
Anirudh
5c3792a4db Flipping behavior when annotation is absent. 2016-10-31 12:49:11 -07:00
gmarek
3e78f4feb8 Make master components in kubemark monitored by supervisord 2016-10-31 19:44:18 +01:00
David Ashpole
b8fc546d60 eviction manager ecivts pod using the most inodes. 2016-10-31 11:32:49 -07:00
Jacob Beacham
cf6b6778dc Adding CLI tests for kubeadm. 2016-10-31 11:12:51 -07:00
Christian Koep
cc1d8951a9
Fix typos and linted_packages sorting 2016-10-31 18:31:08 +01:00
derekwaynecarr
1bcb057636 quota controller uses informers if available for pod calculation 2016-10-31 11:38:22 -04:00
Kubernetes Submit Queue
35bdb1ee46 Merge pull request #35892 from kargakis/fix-test-panic
Automatic merge from submit-queue

test: check for desired Deployment status prior to listing RSs

Fixes the panic in https://github.com/kubernetes/kubernetes/issues/35337

@mfojtik
2016-10-31 08:08:03 -07:00
deads2k
7e65d5693b remove non-reuseable bits of MasterServer 2016-10-31 08:50:05 -04:00
Kubernetes Submit Queue
09664dd26f Merge pull request #35501 from sttts/sttts-misc-master-cleanups
Automatic merge from submit-queue

Misc master and federation cleanups

- misc small cleanups
- make ServerRunOption embeddings explicit in order to make the technical debt in our plumbing code visible.
2016-10-31 05:28:46 -07:00
Dr. Stefan Schimanski
ab3ce27f01 Make master+federation ServerRunOptions embeddings explicit 2016-10-31 11:04:58 +01:00
Dr. Stefan Schimanski
b798527793 Rename master/options/{APIServer -> ServerRunOptions} 2016-10-31 10:55:19 +01:00
Wojciech Tyczynski
42d8a13229 Fix conflict in kubemark 2016-10-31 08:34:33 +01:00
Justin Santa Barbara
cebfc821a4 Create simple version of ratelimit package
Allows for more testing.
2016-10-30 20:55:03 -04:00
Chao Xu
2044927034 move watch.ListWatchUntil to its own package to avoid future import cycle 2016-10-30 13:14:20 -07:00
Kubernetes Submit Queue
9e71a65335 Merge pull request #35326 from apprenda/kubeadm-unit-tests-pkg-preflight
Automatic merge from submit-queue

kubeadm: added unit test for app/preflight pkg

Added unit test for kubeadm/app/preflight package testing functionality of checks.go.

This PR is part of the ongoing effort to add tests (#35025)

/cc @pires @jbeda
2016-10-30 10:31:56 -07:00
Michail Kargakis
a96fa8489e test: check for desired Deployment status prior to listing RSs 2016-10-30 15:11:46 +01:00
Kubernetes Submit Queue
6343db835a Merge pull request #35454 from bowei/image-for-issue-32551
Automatic merge from submit-queue

Add test image for networking related tests

This test image is to support the e2e test for #32551
2016-10-30 01:56:10 -07:00
Chao Xu
6d33eddae9 skip scheduleJob e2e test if it's not enabled on server 2016-10-29 17:02:03 -07:00
Kubernetes Submit Queue
a06a08a906 Merge pull request #34489 from caesarxuchao/time-copy.sh
Automatic merge from submit-queue

Verify and update client-go staging area for every PR

We need to keep the staging area up-to-date to prevent PRs from breaking client-go.

It's marked as "WIP" because we need to decide the [versioning strategy](https://github.com/kubernetes/client-go/issues/9) for client-go first. This PR contains breaking changes for client-go.

This is blocking #29934 and potentially #34441

cc @kubernetes/sig-api-machinery
2016-10-29 16:24:07 -07:00
Kubernetes Submit Queue
7f309f5fae Merge pull request #35471 from caesarxuchao/client-gen-multi-versions
Automatic merge from submit-queue

Let release_1_5 clientset include multiple versions of a group

Fix #35237 

This PR make versioned clientset to include multiple versions of a group. Currently only `batch` has `v1` and `v2alpha1`. The clientset interface now looks like:
```go
	BatchV2alpha1() v2alpha1batch.BatchV2alpha1Interface
	BatchV1() v1batch.BatchV1Interface
	// Deprecated: please explicitly pick a version if possible.
	Batch() v1batch.BatchV1Interface
```

Commit "update client-gen to say internalversion rather than unversioned" fixes https://github.com/kubernetes/kubernetes/issues/24481. 


cc @kubernetes/sig-api-machinery @soltysh @deads2k @nikhiljindal 



```release-note
release_1_5 clientset supports multiple versions of a group.
```
2016-10-29 15:40:13 -07:00
Kubernetes Submit Queue
7c9c8cbf28 Merge pull request #34952 from kargakis/update-observedgeneration-for-overlapping-deployments
Automatic merge from submit-queue

Make overlapping deployments deletable

@kubernetes/deployment ptal

Fixes https://github.com/kubernetes/kubernetes/issues/34466 by 1) not adding the overlapping annotation in the working deployment, 2) updates observedGeneration for overlapping deployments, and 3) updates the kubectl deployment reaper to do non-cascading deletion for deployments with the overlapping annotation.
2016-10-29 14:50:16 -07:00
Chao Xu
4287973d99 run copy.sh
fix test/e2e/disruption after running copy.sh
2016-10-29 14:44:07 -07:00
Chao Xu
850729bfaf include multiple versions in clientset
update client-gen to use the term "internalversion" rather than "unversioned";
leave internal one unqualified;
cleanup client-gen
2016-10-29 13:30:47 -07:00
Kubernetes Submit Queue
3bda6884b8 Merge pull request #35432 from ncdc/protobuf-dash-package-names
Automatic merge from submit-queue

Convert - to _ for protobuf package names

Convert - to _ for protobuf package names to allow protobuf code generation
support for go packages that have - in their names.

@smarterclayton @deads2k @liggitt @sttts @lavalamp @nikhiljindal @kubernetes/sig-api-machinery
2016-10-29 13:25:04 -07:00
Kubernetes Submit Queue
620788a795 Merge pull request #35230 from deads2k/controller-12-sa-controller
Automatic merge from submit-queue

convert SA controller to shared informers

convert the SA controller to shared informer + workqueue.

I think one of @derekwaynecarr @ncdc or @liggitt
2016-10-29 10:09:46 -07:00
Kubernetes Submit Queue
17e4156163 Merge pull request #35785 from piosz/clientset
Automatic merge from submit-queue

Removed 1.3 clientset

needed for #35782
2016-10-29 08:37:04 -07:00
Kubernetes Submit Queue
4ec036c8af Merge pull request #35452 from deads2k/auth-02-front-proxy
Automatic merge from submit-queue

allow authentication through a front-proxy

This allows a front proxy to set a request header and have that be a valid `user.Info` in the authentication chain.  To secure this power, a client certificate may be used to confirm the identity of the front proxy

@kubernetes/sig-auth fyi
@erictune per-request
@liggitt you wrote the openshift one, ptal.
2016-10-29 07:52:09 -07:00
Paulo Pires
1157548e3c
kubeadm: added tests owner. 2016-10-29 09:40:13 -04:00
Kubernetes Submit Queue
569da52204 Merge pull request #35708 from wojtek-t/rename_test_etcd_version
Automatic merge from submit-queue

Rename TEST_ETCD_VERSION to ETCD_VERSION

Ref #20504
2016-10-29 05:46:51 -07:00
Kubernetes Submit Queue
0e46a5b2ec Merge pull request #35798 from bprashanth/ing_test
Automatic merge from submit-queue

Clean up static-ip in e2e

I dropped this line: https://github.com/kubernetes/kubernetes/pull/35331/files#diff-5997d488011ead8354bdddfceaf1515dL595, in a previous refactor https://github.com/kubernetes/kubernetes/pull/35331, so we started leaking static ips. This commit adds it back in, along with some debug info if it happens again. Marking p2 since test is currently leaking.
2016-10-29 04:15:59 -07:00
Kubernetes Submit Queue
9a219eb803 Merge pull request #34651 from smarterclayton/negotiate
Automatic merge from submit-queue

Simplify negotiation in server in preparation for multi version support

This is a pre-factor for #33900 to simplify runtime.NegotiatedSerializer, tighten up a few abstractions that may break when clients can request different client versions, and pave the way for better negotiation.

View this as pure simplification.
2016-10-29 03:32:02 -07:00
Kubernetes Submit Queue
f196c40366 Merge pull request #35581 from foxish/fix-network-partition-e2e
Automatic merge from submit-queue

Fixing e2e tests which rely on network disruptions

**What this PR does / why we need it**: It fixes e2e tests  on network disruptions

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes https://github.com/kubernetes/kubernetes/issues/27324, https://github.com/kubernetes/kubernetes/issues/35293

https://github.com/kubernetes/kubernetes/pull/33655 changed the kubelet's `--api-server` flag to use the external IP address of the APIServer in GCE. Hence, the iptables rules were failing previously. We now return the external IP for `getMaster()`. This fix is required in order to write e2e tests which test behavior in the face of network disruptions.

/cc @bprashanth @dchen1107 @kubernetes/sig-apps
2016-10-29 01:17:38 -07:00
Kubernetes Submit Queue
2f4cdd3f7e Merge pull request #35560 from jingxu97/Oct/pd-tests
Automatic merge from submit-queue

Add a retry when reading a file content from a container

To avoid temporal failure in reading the file content, add a retry
process in function verifyPDContentsViaContainer
2016-10-28 23:51:37 -07:00
Kubernetes Submit Queue
58457daf63 Merge pull request #31652 from intelsdi-x/poc-opaque-int-resources
Automatic merge from submit-queue

[PHASE 1] Opaque integer resource accounting.

## [PHASE 1] Opaque integer resource accounting.

This change provides a simple way to advertise some amount of arbitrary countable resource for a node in a Kubernetes cluster. Users can consume these resources by including them in pod specs, and the scheduler takes them into account when placing pods on nodes. See the example at the bottom of the PR description for more info.

Summary of changes:

- Defines opaque integer resources as any resource with prefix `pod.alpha.kubernetes.io/opaque-int-resource-`.
- Prevent kubelet from overwriting capacity.
- Handle opaque resources in scheduler.
- Validate integer-ness of opaque int quantities in API server.
- Tests for above.

Feature issue: https://github.com/kubernetes/features/issues/76

Design: http://goo.gl/IoKYP1

Issues:

kubernetes/kubernetes#28312
kubernetes/kubernetes#19082

Related:

kubernetes/kubernetes#19080

CC @davidopp @timothysc @balajismaniam 

**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
Added support for accounting opaque integer resources.

Allows cluster operators to advertise new node-level resources that would be
otherwise unknown to Kubernetes. Users can consume these resources in pod
specs just like CPU and memory. The scheduler takes care of the resource
accounting so that no more than the available amount is simultaneously
allocated to pods.
```

## Usage example

```sh
$ echo '[{"op": "add", "path": "pod.alpha.kubernetes.io~1opaque-int-resource-bananas", "value": "555"}]' | \
> http PATCH http://localhost:8080/api/v1/nodes/localhost.localdomain/status \
> Content-Type:application/json-patch+json
```

```http
HTTP/1.1 200 OK
Content-Type: application/json
Date: Thu, 11 Aug 2016 16:44:55 GMT
Transfer-Encoding: chunked

{
    "apiVersion": "v1",
    "kind": "Node",
    "metadata": {
        "annotations": {
            "volumes.kubernetes.io/controller-managed-attach-detach": "true"
        },
        "creationTimestamp": "2016-07-12T04:07:43Z",
        "labels": {
            "beta.kubernetes.io/arch": "amd64",
            "beta.kubernetes.io/os": "linux",
            "kubernetes.io/hostname": "localhost.localdomain"
        },
        "name": "localhost.localdomain",
        "resourceVersion": "12837",
        "selfLink": "/api/v1/nodes/localhost.localdomain/status",
        "uid": "2ee9ea1c-47e6-11e6-9fb4-525400659b2e"
    },
    "spec": {
        "externalID": "localhost.localdomain"
    },
    "status": {
        "addresses": [
            {
                "address": "10.0.2.15",
                "type": "LegacyHostIP"
            },
            {
                "address": "10.0.2.15",
                "type": "InternalIP"
            }
        ],
        "allocatable": {
            "alpha.kubernetes.io/nvidia-gpu": "0",
            "cpu": "2",
            "memory": "8175808Ki",
            "pods": "110"
        },
        "capacity": {
            "alpha.kubernetes.io/nvidia-gpu": "0",
            "pod.alpha.kubernetes.io/opaque-int-resource-bananas": "555",
            "cpu": "2",
            "memory": "8175808Ki",
            "pods": "110"
        },
        "conditions": [
            {
                "lastHeartbeatTime": "2016-08-11T16:44:47Z",
                "lastTransitionTime": "2016-07-12T04:07:43Z",
                "message": "kubelet has sufficient disk space available",
                "reason": "KubeletHasSufficientDisk",
                "status": "False",
                "type": "OutOfDisk"
            },
            {
                "lastHeartbeatTime": "2016-08-11T16:44:47Z",
                "lastTransitionTime": "2016-07-12T04:07:43Z",
                "message": "kubelet has sufficient memory available",
                "reason": "KubeletHasSufficientMemory",
                "status": "False",
                "type": "MemoryPressure"
            },
            {
                "lastHeartbeatTime": "2016-08-11T16:44:47Z",
                "lastTransitionTime": "2016-08-10T06:27:11Z",
                "message": "kubelet is posting ready status",
                "reason": "KubeletReady",
                "status": "True",
                "type": "Ready"
            },
            {
                "lastHeartbeatTime": "2016-08-11T16:44:47Z",
                "lastTransitionTime": "2016-08-10T06:27:01Z",
                "message": "kubelet has no disk pressure",
                "reason": "KubeletHasNoDiskPressure",
                "status": "False",
                "type": "DiskPressure"
            }
        ],
        "daemonEndpoints": {
            "kubeletEndpoint": {
                "Port": 10250
            }
        },
        "images": [],
        "nodeInfo": {
            "architecture": "amd64",
            "bootID": "1f7e95ca-a4c2-490e-8ca2-6621ae1eb5f0",
            "containerRuntimeVersion": "docker://1.10.3",
            "kernelVersion": "4.5.7-202.fc23.x86_64",
            "kubeProxyVersion": "v1.3.0-alpha.4.4285+7e4b86c96110d3-dirty",
            "kubeletVersion": "v1.3.0-alpha.4.4285+7e4b86c96110d3-dirty",
            "machineID": "cac4063395254bc89d06af5d05322453",
            "operatingSystem": "linux",
            "osImage": "Fedora 23 (Cloud Edition)",
            "systemUUID": "D6EE0782-5DEB-4465-B35D-E54190C5EE96"
        }
    }
}
```

After patching, the kubelet's next sync fills in allocatable:

```
$ kubectl get node localhost.localdomain -o json | jq .status.allocatable
```

```json
{
  "alpha.kubernetes.io/nvidia-gpu": "0",
  "pod.alpha.kubernetes.io/opaque-int-resource-bananas": "555",
  "cpu": "2",
  "memory": "8175808Ki",
  "pods": "110"
}
```

Create two pods, one that needs a single banana and another that needs a truck load:

```
$ kubectl create -f chimp.yaml
$ kubectl create -f superchimp.yaml
```

Inspect the scheduler result and pod status:

```
$ kubectl describe pods chimp
Name:           chimp
Namespace:      default
Node:           localhost.localdomain/10.0.2.15
Start Time:     Thu, 11 Aug 2016 19:58:46 +0000
Labels:         <none>
Status:         Running
IP:             172.17.0.2
Controllers:    <none>
Containers:
  nginx:
    Container ID:       docker://46ff268f2f9217c59cc49f97cc4f0f085d5ac0e251f508cc08938601117c0cec
    Image:              nginx:1.10
    Image ID:           docker://sha256:82e97a2b0390a20107ab1310dea17f539ff6034438099384998fd91fc540b128
    Port:               80/TCP
    Limits:
      cpu:                                      500m
      memory:                                   64Mi
      pod.alpha.kubernetes.io/opaque-int-resource-bananas:   3
    Requests:
      cpu:                                      250m
      memory:                                   32Mi
      pod.alpha.kubernetes.io/opaque-int-resource-bananas:   1
    State:                                      Running
      Started:                                  Thu, 11 Aug 2016 19:58:51 +0000
    Ready:                                      True
    Restart Count:                              0
    Volume Mounts:                              <none>
    Environment Variables:                      <none>
Conditions:
  Type          Status
  Initialized   True 
  Ready         True 
  PodScheduled  True 
No volumes.
QoS Class:      Burstable
Events:
  FirstSeen     LastSeen        Count   From                            SubobjectPath           Type            Reason                  Message
  ---------     --------        -----   ----                            -------------           --------        ------                  -------
  9m            9m              1       {default-scheduler }                                    Normal          Scheduled               Successfully assigned chimp to localhost.localdomain
  9m            9m              2       {kubelet localhost.localdomain}                         Warning         MissingClusterDNS       kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to DNSDefault policy.
  9m            9m              1       {kubelet localhost.localdomain} spec.containers{nginx}  Normal          Pulled                  Container image "nginx:1.10" already present on machine
  9m            9m              1       {kubelet localhost.localdomain} spec.containers{nginx}  Normal          Created                 Created container with docker id 46ff268f2f92
  9m            9m              1       {kubelet localhost.localdomain} spec.containers{nginx}  Normal          Started                 Started container with docker id 46ff268f2f92
```

```
$ kubectl describe pods superchimp
Name:           superchimp
Namespace:      default
Node:           /
Labels:         <none>
Status:         Pending
IP:
Controllers:    <none>
Containers:
  nginx:
    Image:      nginx:1.10
    Port:       80/TCP
    Requests:
      cpu:                                      250m
      memory:                                   32Mi
      pod.alpha.kubernetes.io/opaque-int-resource-bananas:   10Ki
    Volume Mounts:                              <none>
    Environment Variables:                      <none>
Conditions:
  Type          Status
  PodScheduled  False 
No volumes.
QoS Class:      Burstable
Events:
  FirstSeen     LastSeen        Count   From                    SubobjectPath   Type            Reason                  Message
  ---------     --------        -----   ----                    -------------   --------        ------                  -------
  3m            1s              15      {default-scheduler }                    Warning         FailedScheduling        pod (superchimp) failed to fit in any node
fit failure on node (localhost.localdomain): Insufficient pod.alpha.kubernetes.io/opaque-int-resource-bananas
```
2016-10-28 22:25:18 -07:00
Tim St. Clair
304dbd0e2e
Increase sys container usageBytes upper bound 2016-10-28 14:50:08 -07:00
Kubernetes Submit Queue
bbe36f9186 Merge pull request #35812 from rmmh/owner-better
Automatic merge from submit-queue

Improve update_owners.py username detection and error message.

Fixes the root cause of #35808.
2016-10-28 14:44:38 -07:00
Kubernetes Submit Queue
cf7178d7c3 Merge pull request #35572 from bprashanth/ip_gc
Automatic merge from submit-queue

GC pod ips

Finally managed to write a *failing* test. 
Supersedes https://github.com/kubernetes/kubernetes/pull/34373

```release-note
GC pod ips
```
2016-10-28 14:44:28 -07:00
Ryan Hitchman
20754c0f5c Improve update_owners.py username detection and error message.
Also, skip _output.
2016-10-28 13:23:19 -07:00
Connor Doyle
b0421c1ba4 Updated test owners file. 2016-10-28 10:28:50 -07:00
Connor Doyle
c93646e8da Support opaque integer resource accounting.
- Prevents kubelet from overwriting capacity during sync.
- Handles opaque integer resources in the scheduler.
  - Adds scheduler predicate tests for opaque resources.
- Validates opaque int resources:
  - Ensures supplied opaque int quantities in node capacity,
    node allocatable, pod request and pod limit are integers.
  - Adds tests for new validation logic (node update and pod spec).
- Added e2e tests for opaque integer resources.
2016-10-28 10:15:13 -07:00
bprashanth
7cde81b59c Clean up static-ip in e2e 2016-10-28 10:06:31 -07:00
Clayton Coleman
ca2f1b87ad
Replace negotiation with a new method that can extract info
Alter how runtime.SerializeInfo is represented to simplify negotiation
and reduce the need to allocate during negotiation. Simplify the dynamic
client's logic around negotiating type. Add more tests for media type
handling where necessary.
2016-10-28 11:30:11 -04:00
Andy Goldstein
72cec547cd Convert - to _ for protobuf package names
Convert - to _ for protobuf package names to allow protobuf code generation
support for go packages that have - in their names.
2016-10-28 11:08:13 -04:00
Wojciech Tyczynski
96a26d93f5 Merge pull request #35789 from wojtek-t/fix_quota_backend_bytes
Fix wrong flag to etcd in kubemark
2016-10-28 17:08:12 +02:00
Wojciech Tyczynski
6a4a4bcf36 Fix wrong flag to etcd in kubemark 2016-10-28 15:54:15 +02:00
Kubernetes Submit Queue
1c677ed91e Merge pull request #35690 from gmarek/e2e2
Automatic merge from submit-queue

Create multiple namespaces in the Density test
2016-10-28 06:06:20 -07:00
Piotr Szczesniak
3bea5fc28a Removed 1.3 clientset usage 2016-10-28 15:02:32 +02:00
deads2k
557e653785 add front proxy authenticator 2016-10-28 08:36:46 -04:00
Wojciech Tyczynski
7ee7b55c5e Rename TEST_ETCD_VERSION to ETCD_VERSION 2016-10-28 13:56:59 +02:00
gmarek
30c78c8ab3 Create multiple namespaces in the Density test 2016-10-28 13:50:39 +02:00
Wojciech Tyczynski
2f756e4ebc Merge pull request #35766 from wojtek-t/backend_quota_bytes_kubemark
Increase backend-quota-bytes in kubemark
2016-10-28 12:14:21 +02:00
Kubernetes Submit Queue
14495fed7c Merge pull request #35717 from vishh/rkt-v1.18.0
Automatic merge from submit-queue

Update rkt version on GCI nodes to v1.18.0

v1.18.0 avoids outputting debug information by default which happens to
pollute events and kubelet logs.
2016-10-28 03:10:30 -07:00
Wojciech Tyczynski
137d2398a8 Increase backend-quota-bytes in kubemark 2016-10-28 09:14:57 +02:00
bprashanth
37bc34c567 periodically GC pod ips 2016-10-27 22:15:35 -07:00
Janet Kuo
e0252f9be0 Update test owners 2016-10-27 17:25:46 -07:00
Janet Kuo
10aee82ae3 Rename PetSet API to StatefulSet 2016-10-27 17:25:10 -07:00
Kubernetes Submit Queue
a266f72b34 Merge pull request #35730 from yujuhong/expand_benchmarks
Automatic merge from submit-queue

Add coreos and gci images to the node benchmark job
2016-10-27 16:47:19 -07:00
Kubernetes Submit Queue
bbe5fe327f Merge pull request #35650 from rmmh/verify-test-owners
Automatic merge from submit-queue

Add hack/verify-test-owners.sh to ensure tests always have owners.

This ensures that new tests or changed tests are assigned appropriate owners.
2016-10-27 16:46:50 -07:00
Anirudh
8f2f4ddab4 Review comments. 2016-10-27 15:12:14 -07:00
Yu-Ju Hong
bf2fd238cc Add coreos and gci images to the node benchmark job 2016-10-27 14:52:58 -07:00
Anirudh
b751e0daa9 Fixing e2e tests which rely on network disruptions. 2016-10-27 14:31:09 -07:00
Kubernetes Submit Queue
da43c15edc Merge pull request #35598 from piosz/test-ownership
Automatic merge from submit-queue

Swap in tests ownership

To make the test ownership more closer to actual area of expertise I made the following swap. I included @mtaufen to close the cycle. Please wait with applying lgtm label for the second reviewer.
2016-10-27 13:50:01 -07:00
Kubernetes Submit Queue
90f4ceefc4 Merge pull request #35349 from vishh/gci-cmount
Automatic merge from submit-queue

Update GCI mounter script to run in a rkt container

Depends on #35652
2016-10-27 13:49:37 -07:00
deads2k
df4ed892c4 convert SA controller to shared informers 2016-10-27 15:44:46 -04:00
Ryan Hitchman
8e4e8944b6 Add hack/verify-test-owners.sh to ensure tests always have owners. 2016-10-27 12:35:43 -07:00
Vishnu kannan
c556b33bd6 update rkt to v1.18.0 which avoids outputting debug information by default
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-10-27 12:24:29 -07:00
Anirudh Ramanathan
7870543471 Merge pull request #35702 from mikedanese/unrevert
unrevert genrule for bindata
2016-10-27 11:53:04 -07:00
Mike Danese
bce3f0e247 unrevert genrule for bindata 2016-10-27 10:35:28 -07:00
Vishnu kannan
19c19c2e0f Updating GCI mounter to be containerized
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-10-27 09:37:08 -07:00
David Ashpole
eb19713486 kubelet calls GetDirFsInfo(root directory) instead of using GetFsInfo(root label). Reverted #33520, and changed e2e test context to use nodefs 2016-10-27 08:04:59 -07:00
Kubernetes Submit Queue
5423eaf431 Merge pull request #35431 from deads2k/client-16-remove-old
Automatic merge from submit-queue

remove the non-generated client

Removes the non-generated client from kube.  The package has a few methods left, but nothing that needs updating when adding new groups.

@ingvagabund
2016-10-27 05:12:33 -07:00
gmarek
b8a83b983f Remove outdated parts of density test 2016-10-27 11:37:26 +02:00
gmarek
d0ef0d238a Add node affinity test to scheduler benchmark 2016-10-27 11:18:49 +02:00
Kubernetes Submit Queue
6e767c71ed Merge pull request #35175 from rothgar/issue-33765
Automatic merge from submit-queue

Fixed gcloud command in logs-generator makefile

I grepped through the code looking for `gcloud` and `push` commands and only found one Makefile missing the `--`. I added it.

fixes #33765 🐛
2016-10-27 01:28:04 -07:00
Kubernetes Submit Queue
e190fec59e Merge pull request #35128 from wongma7/wait-restartpolicy
Automatic merge from submit-queue

Set done to true & return error if RestartPolicy not Always in test framework

Found a small issue with https://github.com/kubernetes/kubernetes/pull/34632, it returns an error if the RestartPolicy is not Always, but the user will never see it because done isn't set to true & they will timeout instead.

@Random-Liu because you wrote that PR
2016-10-27 01:27:56 -07:00
Vishnu kannan
e861a5761d Adding a root filesystem override for kubelet mounter
This is useful for supporting hostPath volumes via containerized
mounters in kubelet.

Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-10-26 21:42:59 -07:00
Kubernetes Submit Queue
dcdbf27d4f Merge pull request #34648 from nikhiljindal/NSCasDel
Automatic merge from submit-queue

Adding cascading deletion support to federated namespaces

Ref https://github.com/kubernetes/kubernetes/issues/33612

With this change, whenever a federated namespace is deleted with `DeleteOptions.OrphanDependents = false`, then federation namespace controller first deletes the corresponding namespaces from all underlying clusters before deleting the federated namespace.

cc @kubernetes/sig-cluster-federation @caesarxuchao


```release-note
Adding support for DeleteOptions.OrphanDependents for federated namespaces. Setting it to false while deleting a federated namespace also deletes the corresponding namespace from all registered clusters.
```
2016-10-26 21:04:03 -07:00
Kubernetes Submit Queue
ab0ee35462 Merge pull request #35651 from caesarxuchao/remove-label-selectors
Automatic merge from submit-queue

Sending #35255 again: Remove versioned LabelSelectors

ref #35255: "Remove versioned LabelSelectors"

FYI @smarterclayton
2016-10-26 18:21:22 -07:00
Kubernetes Submit Queue
f300d7ed69 Merge pull request #35646 from vishh/klet-relative-mount
Automatic merge from submit-queue

rename kubelet flag mounter-path to experimental-mounter-path

```release-note
* Kubelet flag '--mounter-path' renamed to '--experimental-mounter-path'
```

The feature the flag controls is an experimental feature and this renaming ensures that users do not depend on this feature just yet.
2016-10-26 16:57:33 -07:00
nikhiljindal
f955d556f8 Adding cascading deletion support to federated namespaces 2016-10-26 16:54:12 -07:00
Brian Grant
2ae2339d6a Merge pull request #35546 from thockin/kill-head-scary-warning-on-master
Remove obsolete munger on docs
2016-10-26 16:44:53 -07:00
Vishnu kannan
adef4675a0 rename kubelet flag mounter-path to experimental-mounter-path
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-10-26 14:50:33 -07:00
Chao Xu
0a896a9e57 remove versioned LabelSelector definitions 2016-10-26 13:50:13 -07:00
Kubernetes Submit Queue
95542190db Merge pull request #31732 from copejon/multi-pv-pvc-pair-testing
Automatic merge from submit-queue

Add multiple PV/PVC pair handling to persistent volume e2e test

Adds the framework for creating, validating, and deleting groups of PVs and PVCs.
2016-10-26 13:39:24 -07:00
deads2k
81ae13084d handle non-generated client removal 2016-10-26 16:10:41 -04:00
Kubernetes Submit Queue
667740d334 Merge pull request #35196 from gmarek/pod-create
Automatic merge from submit-queue

Generalize Pod creation across e2e and integration tests

Depends on previous PRs
2016-10-26 10:23:29 -07:00
Kubernetes Submit Queue
d9033691e4 Merge pull request #35114 from wojtek-t/speedup_networking_tests
Automatic merge from submit-queue

Speed up some networking tests in large clusters

Since we are getting towards testing larger and larger clusters (hopefully 5000-node ones soon-ish), I'm trying to limit the amount of super long tests to minimum.

This should significantly reduce amount of time used by those from test/e2e/networking.go.

@gmarek
2016-10-26 10:23:20 -07:00
gmarek
24975aad30 Revert "remove versioned LabelSelector definitions"
This reverts commit 1ace8fa9ce.
2016-10-26 16:52:02 +02:00
gmarek
be57ca5015 Generalize Pod creation across e2e and integration tests 2016-10-26 11:52:14 +02:00
Wojciech Tyczynski
6714526587 Speed up some networking tests in large clusters 2016-10-26 11:17:14 +02:00
Piotr Szczesniak
c0e55a9235 Swap in tests ownership 2016-10-26 09:34:16 +02:00
Kubernetes Submit Queue
b1d8961fe4 Merge pull request #35463 from timstclair/summary-test
Automatic merge from submit-queue

Log failed containers after summary e2e test

To help debug https://github.com/kubernetes/kubernetes/issues/34990
2016-10-25 23:55:05 -07:00
Kubernetes Submit Queue
5c6fdc7b50 Merge pull request #35255 from caesarxuchao/remove-label-selectors
Automatic merge from submit-queue

Remove versioned LabelSelectors

We have LabelSelectors defined in `unversioned`, `batch/v1`, `batch/v2alpha1`, and `extensions/v1beta1`.  Their definitions are all the same. I kept the definition in `unversioned` and removed the others. It only makes sense to define a versioned LabelSelectors if the definition is different.
2016-10-25 23:54:56 -07:00
Kubernetes Submit Queue
7d0b12f916 Merge pull request #35551 from Crassirostris/out-of-disk-disable
Automatic merge from submit-queue

Marked NodeOutOfDisk test with feature label

Marked NodeOutOfDisk test with feature label to temporarily remove it from flaky suite.

@madhusudancs @piosz
2016-10-25 23:12:29 -07:00
Chao Xu
1ace8fa9ce remove versioned LabelSelector definitions 2016-10-25 22:09:02 -07:00
Kubernetes Submit Queue
3b19fb9581 Merge pull request #32183 from mfanjie/clean-gce-in-service-e2e
Automatic merge from submit-queue

always clean gce resources in service e2e

@bprashanth the previous PR was closed when I squashed my commits.
Here is the new change set, please help to review again.
1). only the following two It() create, I created a string array to persist the LB name so that they can be cleaned in AfterEach(), and the string array was reset after clean up.
```
"should be able to change the type and ports of a service [Slow]"
"should be able to create services of type LoadBalancer and externalTraffic=localOnly"
```
2). Directly call gce api to delete the resource and ignore any error returned.
2016-10-25 22:07:35 -07:00
Kubernetes Submit Queue
ab04d7ef7c Merge pull request #35467 from mikedanese/serve_hostname
Automatic merge from submit-queue

serve_hostnames: fix compilation

this and #35373 allows `bazel build //test/...`

@ixdy @spxtr
2016-10-25 18:37:59 -07:00