Commit Graph

7447 Commits

Author SHA1 Message Date
Kubernetes Submit Queue
0a22c159e5 Merge pull request #64015 from cofyc/improvetests
Automatic merge from submit-queue (batch tested with PRs 62756, 63862, 61419, 64015, 64063). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Handle TERM signal to reduce pod terminating time.

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

Register signal handler for `TERM`.

For container, process is run as PID 1. PID 1 is special in linux, it ignore any signal with the default action. So process will not terminate on `SIGINT` or `SIGTERM` unless it is coded to do so.

By default, docker use `TERM` signal to termiante pods, it will wait 10 seconds before sending `KILL` signal.

```
$ docker run -d --rm --name test busybox sh -c 'while true; do sleep 1; done'
aa827df5d7bfffc5ca4fae2429d0b761a5a142c57ba3e1faa59b305c92f1c875
$ time docker stop test
test

real	0m10.408s
user	0m0.048s
sys	0m0.020s
```

It's better to register a exit handler for `TERM`, it reduces a lot of time in waiting pods to termiante.

```
$ docker run -d --rm --name test busybox sh -c 'trap exit TERM; while true; do sleep 1; done'
e331bff454dba8e45df6065c3bd2a928e1c41303aafdf88ede38def3e4e5781f
$ time docker stop test
test

real	0m0.690s
user	0m0.048s
sys	0m0.020s
```

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

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2018-05-23 18:14:16 -07:00
Kubernetes Submit Queue
5fe35cdbf9 Merge pull request #61419 from enisoc/apps-v1-deploy
Automatic merge from submit-queue (batch tested with PRs 62756, 63862, 61419, 64015, 64063). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Use apps/v1 Deployment/ReplicaSet in controller and kubectl

This updates the Deployment controller and integration/e2e tests to use apps/v1, as part of #55714.

This also requires updating any other components that use the `deployment/util` package, most notably `kubectl`. That means client versions 1.11 and above will only work with server versions 1.9 and above. This is well within our client-server version skew policy of +/-1 minor version.

However, this PR *only* updates the parts of `kubectl` that used `deployment/util`. So although kubectl now requires apps/v1, it still also depends on extensions/v1beta1. Migrating other parts of kubectl to apps/v1 is beyond the scope of this PR, which was just to change the Deployment controller and fix all the fallout.

```release-note
kubectl: This client version requires the `apps/v1` APIs, so it will not work against a cluster version older than v1.9.0. Note that kubectl only guarantees compatibility with clusters that are +/-1 minor version away.
```
2018-05-23 18:14:13 -07:00
Cheng Xing
7653fb6887 Moving Regional PD e2e tests to regular test suites 2018-05-23 12:47:24 -07:00
Dr. Stefan Schimanski
818147d6fb apiextensions: make CreateNewCustomResourceDefinition return created CRD 2018-05-23 21:41:55 +02:00
Kubernetes Submit Queue
9c2e51f37c Merge pull request #64098 from jacobwgillespie/fix-e2e-complete-pods-in-kube-system-ns-failure
Automatic merge from submit-queue (batch tested with PRs 63283, 64032, 64159, 64126, 64098). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fix running e2e tests with completed kube-system pods

As per @timothysc's suggestion, this PR is the same as PR #53222, but with the CLA signed and with a comment explaining why completed pods are skipped.  Credit for finding this fix goes to @dlosev.

From the original PR:

> Currently e2e runner fails during BeforeSuite execution if there are pods in kube-system namespace in 'Completed' state.
>
> Exactly this issue was fixed previously in #37325 by adding new option "skipSucceeded" to ignore 'Completed' pods. Then, in 2e3cd93#diff-eb7b79470992813ea1905e96c298b47bL557 that option was removed and code was adjusted to ignore 'Completed' pods all the time. But in 0bf96a3 that code was accidentally removed as redundant.
>
> This fix restores removed code.

```release-note
NONE
```
2018-05-22 22:14:17 -07:00
Kubernetes Submit Queue
90d81eb0fd Merge pull request #64159 from rramkumar1/patch-11
Automatic merge from submit-queue (batch tested with PRs 63283, 64032, 64159, 64126, 64098). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Stub out BackendService check in Ingress upgrade test.

/assign @MrHohn 

```release-note
None
```
2018-05-22 22:14:10 -07:00
Yecheng Fu
df0f108a02 Fixes fsGroup check in local volume in containerized kubelet. Except
this, it also fixes fsGroup check when volume source is a normal
directory whether kubelet is running on the host or in a container.
2018-05-23 10:41:42 +08:00
Sandeep Rajan
d4ff4ca87f extend configmap tests to include CoreDNS 2018-05-22 17:10:41 -04:00
Anthony Yeh
046ae81e35 e2e/auth: Expect apps/v1 Deployment calls in audit test. 2018-05-22 13:43:07 -07:00
Anthony Yeh
436db71751 Set explicit labels/selector for apps/v1 Deployment/RS. 2018-05-22 13:43:07 -07:00
Anthony Yeh
a6a5190494 test/e2e: Use apps/v1 Deployment/ReplicaSet.
This must be done at the same time as the controller update,
since they share code.
2018-05-22 13:43:06 -07:00
Rohit Ramkumar
4eb6657848 Stub out BackendService check in Ingress upgrade test. 2018-05-22 13:29:46 -07:00
Jacob Gillespie
98bc39dcd5 Add Logf message for skipped succeeded pods 2018-05-22 12:40:20 -07:00
Luis Pabón
a0b9219c4c e2e: Remove flaky from CSI E2E test
The tests have been passing consistently and now we can remove
the Flaky tag.
2018-05-22 02:39:34 -04:00
Yu-Ju Hong
39bb841827 test/e2e/common: Add NodeFeature or NodeConformance tags
The following tests are not tagged because they are not really run in
node e2e suites:
  * A subset of host path tests that required SSH access
    - should evaluate whether the tests should be moved to test/e2e_node
  * GCP volume tests
    - should evaluate whether these tests should be moved out of the
    common directly since they are not shared with the node e2e suite.
2018-05-21 21:28:42 -07:00
Kubernetes Submit Queue
7136cbce50 Merge pull request #64112 from BenTheElder/stackdrvier
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

correct test logging package stackdrvier -> stackdriver

**What this PR does / why we need it**: corrects the name of the stackdriver logging test package

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

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2018-05-21 19:40:49 -07:00
Yu-Ju Hong
3815dfe478 test/e2e/common: add NodeConformance tag to all Conformance tests 2018-05-21 18:09:33 -07:00
Kubernetes Submit Queue
99e9db5815 Merge pull request #63881 from luxas/disable_cadvisor_default
Automatic merge from submit-queue (batch tested with PRs 63881, 64046, 63409, 63402, 63221). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Disable the public cadvisor port by default

**What this PR does / why we need it**:
Quoting @tallclair in #56523:
> We should add the deprecation warning in 1.10 along with a release note, but not change the default. The notes should warn that the default will change in 1.11. We disable the flag by default in 1.11, and remove it entirely in 1.12 or 1.13.
> If you currently depend on the UI or the API, speak up! Going forward, the recommended way of taking advantage of those features will be to run cAdvisor as a DaemonSet.

Disabling the publicly-available cAdvisor port is beneficial for security, as you might not want to expose the UI with lots of information about what your system is doing. We already did this for all kubeadm deployments in v1.7, and haven't recieved any issues for that. This should be okay to do at this stage, as this flag was deprecated in v1.10. Given we need to support this flag for one more release (v1.11), it makes perfect sense to instead switch it off in preparation for v1.12 when we can delete it (see the [deprecation policy](https://kubernetes.io/docs/reference/deprecation-policy/#deprecating-a-flag-or-cli))

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Part of #56523

**Special notes for your reviewer**:

I removed the e2e test that expects cAdvisor to be running, as we don't expect it to be anymore.

**Release note**:

```release-note
[action required] The formerly publicly-available cAdvisor web UI that the kubelet ran on port 4194 by default is now turned off by default. The flag configuring what port to run this UI on `--cadvisor-port` was deprecated in v1.10. Now the default is `--cadvisor-port=0`, in other words, to not run the web server. The recommended way to run cAdvisor if you still need it, is via a DaemonSet. The `--cadvisor-port` will be removed in v1.12
```
cc @kubernetes/sig-cluster-lifecycle-pr-reviews @kubernetes/sig-auth-pr-reviews @kubernetes/sig-node-pr-reviews
2018-05-21 17:05:27 -07:00
Benjamin Elder
e911418242 correct test logging package stackdrvier -> stackdriver 2018-05-21 12:03:52 -07:00
Jacob Gillespie
31bf75c116 Fix running e2e tests with completed kube-system pods 2018-05-21 09:16:36 -05:00
Kubernetes Submit Queue
15581eec41 Merge pull request #63770 from MrHohn/fix-ingress-upgrade-gke-staging
Automatic merge from submit-queue (batch tested with PRs 63770, 63776, 64001, 64028, 63984). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

[e2e ingress-gce] Implement Skip() and skip SSL check if needed

**What this PR does / why we need it**:
Fix failing ingress-upgrade test in [gke-staging-1-9-1-10-upgrade-cluster](https://k8s-testgrid.appspot.com/google-gke-staging#gke-staging-1-9-1-10-upgrade-cluster).

Example failure run: https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-kubernetes-e2e-gke-staging-1-9-1-10-upgrade-cluster/40.

Similar to https://github.com/kubernetes/kubernetes/pull/62291, but making test aware of k8s versions. Hope this makes sense.

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

**Special notes for your reviewer**:
/assign @rramkumar1 @krousey 
@liyinan926 

**Release note**:

```release-note
NONE
```
2018-05-19 02:11:27 -07:00
Kubernetes Submit Queue
ddf551c24b Merge pull request #60012 from atlassian/dial-with-context
Automatic merge from submit-queue (batch tested with PRs 60012, 63692, 63977, 63960, 64008). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Use Dial with context

**What this PR does / why we need it**:
`net/http/Transport.Dial` field is deprecated:
```go
// DialContext specifies the dial function for creating unencrypted TCP connections.
// If DialContext is nil (and the deprecated Dial below is also nil),
// then the transport dials using package net.
DialContext func(ctx context.Context, network, addr string) (net.Conn, error)

// Dial specifies the dial function for creating unencrypted TCP connections.
//
// Deprecated: Use DialContext instead, which allows the transport
// to cancel dials as soon as they are no longer needed.
// If both are set, DialContext takes priority.
Dial func(network, addr string) (net.Conn, error)
```
This PR switches all `Dial` usages to `DialContext`. Fixes #63455.

**Special notes for your reviewer**:
Also related: https://github.com/kubernetes/kubernetes/pull/59287 https://github.com/kubernetes/kubernetes/pull/58532 https://github.com/kubernetes/kubernetes/issues/815 https://github.com/kubernetes/community/pull/1166 https://github.com/kubernetes/kubernetes/pull/58677 https://github.com/kubernetes/kubernetes/pull/57932

**Release note**:
```release-note
HTTP transport now uses `context.Context` to cancel dial operations. k8s.io/client-go/transport/Config struct has been updated to accept a function with a `context.Context` parameter. This is a breaking change if you use this field in your code.
```
/sig api-machinery
/kind enhancement
/cc @sttts
2018-05-18 23:35:13 -07:00
Kubernetes Submit Queue
1e689a8b8c Merge pull request #63978 from kawych/master
Automatic merge from submit-queue (batch tested with PRs 63969, 63902, 63689, 63973, 63978). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Allow for system metrics discovery in Custom Metrics - Stackdriver Adapter test

**What this PR does / why we need it**:
Allow for system metrics discovery in Custom Metrics - Stackdriver Adapter test

**Release note**:
```release-note
NONE
```
2018-05-18 15:59:25 -07:00
Mikhail Mazurskiy
5e8e570dbd Use Dial with context 2018-05-19 08:14:37 +10:00
Michael Taufen
83509a092f Refactor test utils that deal with Kubelet metrics for clarity
I found these functions hard to understand, because the names did not
accurately reflect their behavior. For example, GetKubeletMetrics
assumed that all of the metrics passed in were measuring latency.
The caller of GetKubeletMetrics was implicitly making this assumption,
but it was not obvious at the call site.
2018-05-18 11:32:29 -07:00
Karol Wychowaniec
63e6496c61 Allow for system metrics discovery in Custom Metrics - Stackdriver Adapter test 2018-05-18 11:20:45 +02:00
Yecheng Fu
55bc8d74a2 Handle TERM signal to reduce pod terminating time. 2018-05-18 16:55:00 +08:00
Kubernetes Submit Queue
e6688fc65a Merge pull request #63946 from msau42/fix-reconstruction-flake
Automatic merge from submit-queue (batch tested with PRs 63920, 63716, 63928, 60553, 63946). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Wait for pod deletion instead of termination in reconstruction test

**What this PR does / why we need it**:
Change volume test to wait for pod deletion instead of pod termination

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

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2018-05-18 01:07:25 -07:00
Kubernetes Submit Queue
60ff557f90 Merge pull request #60553 from brahmaroutu/conf_apps
Automatic merge from submit-queue (batch tested with PRs 63920, 63716, 63928, 60553, 63946). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Adding details to Conformance Tests using RFC 2119 standards.

This PR is part of the conformance documentation. This is to provide more formal specification using RFC 2119 keywords to describe the test so that who ever is running conformance tests do not have to go through the code to understand why and what is tested.
The documentation information added here into each of the tests eventually result into a document which is currently checked in at location https://github.com/cncf/k8s-conformance/blob/master/docs/KubeConformance-1.9.md

I would like to have this PR reviewed for v1.10 as I consider it important to strengthen the conformance documents.
2018-05-18 01:07:22 -07:00
Zihong Zheng
aaf74aecf0 [e2e ingress-gce] Implement Skip() for ingress upgrade test 2018-05-17 20:24:32 -07:00
Michelle Au
46b62c20e4 Wait for pod deletion instead of termination 2018-05-17 10:08:54 -07:00
David Eads
eabfcfaa2b start splitting polymorphic functions out of the factory 2018-05-17 08:55:31 -04:00
Ashley Gau
2c73d99fce test clusterip 2018-05-16 14:30:21 -07:00
Ashley Gau
101dde0c22 check for NEG healthcheck with correct name 2018-05-16 14:30:21 -07:00
Kubernetes Submit Queue
5686fcfcf8 Merge pull request #62328 from serathius/monitoring-default-none
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Deprecate InfluxDB cluster monitoring

InfluxDB cluster monitoring addon will no longer be supported and will be removed in k8s 1.12.
Default monitoring solution will be changed to `standalone`.
Heapster will still be deployed for backward compatibility of `kubectl top`

```release-note
Stop using InfluxDB as default cluster monitoring
InfluxDB cluster monitoring is deprecated and will be removed in v1.12
```
cc @piosz
2018-05-16 07:07:05 -07:00
Kubernetes Submit Queue
c2b4fc99df Merge pull request #63911 from shyamjvs/change-default-minStartupPods-value
Automatic merge from submit-queue (batch tested with PRs 63850, 63911). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Change default min-startup-pods value

As ~all our e2e jobs on CI (not just scalability ones) seem to be setting this flag to 8. See - https://github.com/kubernetes/test-infra/blob/master/jobs/config.json

/cc @wojtek-t 

```release-note
NONE
```
2018-05-16 04:04:19 -07:00
Lucas Käldström
703dc826bf Remove e2e test for cAdvisor running in the kubelet, as it's deprecated and gonna be removed 2018-05-16 10:39:07 +01:00
Kubernetes Submit Queue
8c240523ca Merge pull request #63870 from shyamjvs/autocalculate-allowed-not-ready-nodes
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Auto-calculate allowed-not-ready-nodes in test framework

Actually we (sig-scalability) are pretty much the only users of this flag.
This reduces the overhead of having to provide its value based on num-nodes each time we run our tests.

/cc @wojtek-t 

```release-note
NONE
```
2018-05-16 02:36:59 -07:00
Shyam Jeedigunta
de0bf05f46 Change default min-startup-pods value 2018-05-16 10:50:00 +02:00
Shyam Jeedigunta
6514dd656c Auto-calculate allowed-not-ready-nodes in test framework 2018-05-16 09:50:13 +02:00
Kubernetes Submit Queue
ea4920ae31 Merge pull request #63868 from shyamjvs/decrease-node-schedulable-timeout-in-e2e
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Decrease default node schedulable timeout in e2e framework

This seems to have been introduced earlier primarily because in large clusters some nodes are waiting on route creation.
But now, with all our large-scale tests moved to IP-aliases we are much faster (typically <5m) in having the nodes schedulable.

/cc @wojtek-t 

```release-note
NONE
```
2018-05-15 16:01:05 -07:00
Kubernetes Submit Queue
40b8247e3a Merge pull request #63586 from serathius/clean-sd-sinks-limit
Automatic merge from submit-queue (batch tested with PRs 63658, 63509, 63800, 63586, 63840). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Clean stackdriver sinks when reached limit

Workaround for stackdriver sinks leaking during test. 

This will automate cleaning when sinks when we reach limit.
It can cause other tests running in parallel to fail, but because it's happens once per month impact is negligible. 

Fixes #7295

```release-note
NONE
```
/cc @krzyzacy @x13n @cezarygerard
2018-05-15 14:23:20 -07:00
AdamDang
cf50026886 Typo fix in the returen message: dynamicly->dynamically
dynamicly->dynamically
2018-05-16 01:18:43 +08:00
Kubernetes Submit Queue
944e07480f Merge pull request #63742 from thockin/kill-tolerate-unready-annotation
Automatic merge from submit-queue (batch tested with PRs 63792, 63495, 63742, 63332, 63779). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Actually support service `publishNotReadyAddresses`

This was added and the annotation was deprecated, but it was never
implemented.

xref #63741

**Release note**:

```release-note
The annotation `service.alpha.kubernetes.io/tolerate-unready-endpoints` is deprecated.  Users should use Service.spec.publishNotReadyAddresses instead.
```
2018-05-15 09:04:24 -07:00
Kubernetes Submit Queue
2955d450ce Merge pull request #63792 from serathius/prometheus-fix-test-filter-image
Automatic merge from submit-queue (batch tested with PRs 63792, 63495, 63742, 63332, 63779). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

[prometheus addon] Add filter out timeseries without image in prometheus integration cpu tests

This PR fixes prometheus integration tests https://k8s-testgrid.appspot.com/sig-instrumentation#gce-prometheus

New pod timeseries was introduced (https://github.com/kubernetes/kubernetes/pull/63406/files) that has same labels for namespace and
pod_name resulting in doubling value in old query. New metric is not
based on containers so filtering on image solves that problem.


```release-note
NONE
```
/cc @brancz
2018-05-15 09:04:17 -07:00
Shyam Jeedigunta
00abb651a9 Decrease default node schedulable timeout in e2e framework 2018-05-15 16:50:04 +02:00
Marek Siarkowicz
a443bf9694 Clean stackdriver sinks when reached limit 2018-05-15 12:11:49 +02:00
Srini Brahmaroutu
84a7e280a9 Adding details to Conformance Tests using RFC 2119 standards. 2018-05-14 21:25:12 -07:00
Kubernetes Submit Queue
40f8c91e70 Merge pull request #63805 from losipiuk/lo/gpu-e2e-followup
Automatic merge from submit-queue (batch tested with PRs 63492, 62379, 61984, 63805, 63807). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Add e2e test to verify that GPU pool is not scaled up if GPUs are not requested

**Release note**:
```release-note
NONE
```
2018-05-14 17:11:23 -07:00
ravisantoshgudimetla
441b6d4465 Build files generated 2018-05-14 18:15:34 -04:00