Commit Graph

1402 Commits (bebc5c1c4ff5ee53d8594b5820f2f81bf808bd18)

Author SHA1 Message Date
Kubernetes Submit Queue 10377f6593
Merge pull request #63896 from mtaufen/refactor-test-metrics
Automatic merge from submit-queue (batch tested with PRs 64013, 63896, 64139, 57527, 62102). 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>.

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.

```release-note
NONE
```
2018-05-23 19:44:15 -07:00
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
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
Jacob Gillespie 98bc39dcd5
Add Logf message for skipped succeeded pods 2018-05-22 12:40:20 -07:00
Jacob Gillespie 31bf75c116
Fix running e2e tests with completed kube-system pods 2018-05-21 09:16:36 -05: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
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
Michelle Au 46b62c20e4 Wait for pod deletion instead of termination 2018-05-17 10:08:54 -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
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
Shyam Jeedigunta 00abb651a9 Decrease default node schedulable timeout in e2e framework 2018-05-15 16:50:04 +02:00
Ashley Gau 054b4a7978 check for new backend naming scheme 2018-05-14 09:58:21 -07:00
Kubernetes Submit Queue 92ba95c39c
Merge pull request #63446 from deads2k/client-08-remove-old
Automatic merge from submit-queue (batch tested with PRs 63367, 63718, 63446, 63723, 63720). 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>.

finish new dynamic client and deprecate old dynamic client

Builds on a couple other pulls.  This completes the transition to the new dynamic client.

@kubernetes/sig-api-machinery-pr-reviews 
@caesarxuchao @sttts 

```release-note
The old dynamic client has been replaced by a new one.  The previous dynamic client will exist for one release in `client-go/deprecated-dynamic`.  Switch as soon as possible.
```
2018-05-11 14:49:16 -07:00
Kubernetes Submit Queue dbc491c031
Merge pull request #63594 from justinsb/introduce_tooling_to_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>.

e2e: add a tooling argument to differentiate tooling

We expect lots of tools to be able to install on provider=gce - the cluster
API, kops, kube-up etc.

We introduce a new optional flag to e2e ('tooling') to enable switching on
the tooling, not just the cloud.

This will prove useful for upgrade tests, for example, where the mechanism
will likely vary by tooling, but is currently tightly bound to the provider
(i.e. cloud)

```release-note
NONE
```
2018-05-11 12:35:47 -07:00
David Eads fd044d152e fix dynamic client name 2018-05-11 13:12:09 -04:00
Kubernetes Submit Queue 2c165efbb4
Merge pull request #63246 from losipiuk/lo/autoscaler-e2e-gpu-tests
Automatic merge from submit-queue (batch tested with PRs 63246, 63185). 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 scale-up test from 0 for GPU node-pool

**Release note**:
```release-note
NONE
```
2018-05-11 03:30:10 -07:00
Kubernetes Submit Queue 7eb88f11d2
Merge pull request #59727 from wgliang/master.time
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>.

should use time.Since instead of time.Now().Sub

**What this PR does / why we need it**:
should use time.Since instead of time.Now().Sub

**Special notes for your reviewer**:
2018-05-10 20:29:40 -07:00
Łukasz Osipiuk 14fc90a8f6 Add framework.GetReadyNodesIncludingTaintedOrDie 2018-05-10 20:17:42 +02:00
Jordan Liggitt 1fc99a2481
don't block e2e namespace cleanup checks on metrics.k8s.io API group 2018-05-09 10:16:12 -04:00
Justin Santa Barbara 0081512ddc e2e: add a tooling argument to differentiate tooling
We expect lots of tools to be able to install on provider=gce - the
cluster API, kops, kube-up etc.

We introduce a new optional flag to e2e ('tooling') to enable switching
on the tooling, not just the cloud.

This will prove useful for upgrade tests, for example, where the
mechanism will likely vary by tooling, but is currently tightly bound to
the provider (i.e. cloud)
2018-05-09 09:42:36 -04:00
David Eads dd97a7bc59 move client based restmappers to client-go 2018-05-08 08:11:56 -04:00
David Eads 94e3d94d67 update tests to be specific about the versions they are testing instead of floating 2018-05-01 13:18:41 -04:00
David Eads 5ff923c7f9 make dynamic client slightly easier to use 2018-04-30 08:54:30 -04:00
Kubernetes Submit Queue 6b9cf21d9f
Merge pull request #63203 from deads2k/api-07-versioninterface
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>.

remove versioning interface

Builds on prior restmapping/converter separation to completely remove the versioning interface which isn't needed.

intersection of @kubernetes/sig-api-machinery-pr-reviews and @kubernetes/sig-cli-maintainers  again

```release-note
NONE
```
2018-04-27 09:15:13 -07:00
David Eads e2fc5cf259 remove versioning interface 2018-04-27 07:56:42 -04:00
xuzhonghu 393324497f make use of simple dynamic client in test 2018-04-27 13:38:58 +08:00
Mike Danese 9d9e588ced e2e: save raw profiles too 2018-04-23 13:06:37 -07:00
Rohit Ramkumar f3cce76d3c
Update upgrade/downgrade images for ingress-gce 2018-04-23 08:41:45 -07:00
Kubernetes Submit Queue 2142bff940
Merge pull request #62606 from smarterclayton/defer_delete
Automatic merge from submit-queue (batch tested with PRs 61962, 58972, 62509, 62606). 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 a test suite reusing framework to register namespaces to delete

If the suite bypasses CreateNamespace (because it wants to create more
specialized namespaces) it has no way to register deletes.

@liggitt this was something that came up in an older rebase and was missed (for things creating projects)
2018-04-19 16:47:26 -07:00
Marek Siarkowicz c21aeacc36 Remove InfluxDB from default cluster monitoring 2018-04-19 16:17:55 +02:00
Yecheng Fu 27e2e32b00 Use shorter timeout if possible.
- Add PodStartShortTimeout and ClaimProvisionShortTimeout constants.
- Change framework.PodStartTimeout to framework.PodStartShortTimeout in
  persistent_volumes-local.go. Busybox image is very small, no need to
  wait for a long time.
2018-04-19 10:07:59 +08:00
Kubernetes Submit Queue 17fec00b89
Merge pull request #62433 from davidz627/feature/csiGCETest
Automatic merge from submit-queue (batch tested with PRs 62694, 62569, 62646, 61633, 62433). 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 GCE-PD CSI Driver test to E2E test suite

Fixes: #60462

/sig storage
/kind technical-debt
/assign @saad-ali @msau42 

**What this PR does / why we need it**:
This PR adds an E2E test for the GCE-PD CSI driver that deploys the driver in a production-like setting and tests whether dynamic provisioning with the driver is possible.

```release-note
NONE
```
2018-04-18 14:44:24 -07:00
Kubernetes Submit Queue b758341a04
Merge pull request #62646 from cofyc/reporteventtoapiserver
Automatic merge from submit-queue (batch tested with PRs 62694, 62569, 62646, 61633, 62433). 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>.

Report events to apiserver in local volume plugin.

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

See https://github.com/kubernetes/kubernetes/pull/62102#discussion_r179238429.

Report events to apiserver in local volume plugin.

- Add VolumeHost.GetEventRecorder() method
- Add related e2e tests

**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 #62248

**Special notes for your reviewer**:

Example output of `kubectl describe pods`:

```
Events:
  Type     Reason                 Age   From                Message
  ----     ------                 ----  ----                -------
  Normal   Scheduled              7s    default-scheduler   Successfully assigned e2e-tests-persistent-local-volumes-test-x4h5x/security-context-670da435-4174-11e8-9098-000c29bb0377 to 127.0.0.1
  Warning  AlreadyMountedVolume   7s    kubelet, 127.0.0.1  The requested fsGroup is 4321, but the volume local-pvfbb76 has GID 1234. The volume may not be shareable.
  Normal   SuccessfulMountVolume  7s    kubelet, 127.0.0.1  MountVolume.SetUp succeeded for volume "default-token-996xr"
  Normal   SuccessfulMountVolume  7s    kubelet, 127.0.0.1  MountVolume.SetUp succeeded for volume "local-pvfbb76"
  Normal   Pulled                 6s    kubelet, 127.0.0.1  Container image "k8s.gcr.io/busybox:1.24" already present on machine
  Normal   Created                6s    kubelet, 127.0.0.1  Created container
  Normal   Started                6s    kubelet, 127.0.0.1  Started container
```

**Release note**:

```release-note
NONE
```
2018-04-18 14:44:17 -07:00
Kubernetes Submit Queue bb8f58b6e6
Merge pull request #62195 from serathius/prometheus
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>.

Add prometheus cluster monitoring addon.

This PR adds new cluster monitoring addon based on prometheus.
It adds prometheus deployment with e2e tests.
Additional components will be added iterativly in future.
Manifests based on current Helm chart.
At current state it's not intended for production use.

cc @piosz @kawych @miekg
```release-note
Add prometheus cluster monitoring addon to kube-up
```
/sig instrumentation
/kind feature
/priority important-soon
2018-04-18 02:17:48 -07:00
Yecheng Fu 55ef18ad42 Report events to apiserver in local volume plugin.
- Add VolumeHost.GetEventRecorder() method
- Add related e2e tests
2018-04-18 11:19:36 +08:00
Clayton Coleman 565f97bf68
Allow a test suite reusing framework to register namespaces to delete
If the suite bypasses CreateNamespace (because it wants to create more
specialized namespaces) it has no way to register deletes.
2018-04-15 20:15:38 -04:00
David Zhu 01d916167b Add GCE-PD CSI Driver test to E2E test suite 2018-04-13 15:31:33 -07:00
Marek Siarkowicz 9544222e91 Test e2e prometheus addon 2018-04-13 11:12:10 +02:00
Nick Sardo 97798c4f3d Fix ingress util handling of TLS 2018-04-12 17:50:50 -07:00
Kubernetes Submit Queue 2d10c212b3
Merge pull request #62475 from rramkumar1/patch-8
Automatic merge from submit-queue (batch tested with PRs 62324, 61459, 62475, 62476, 61914). 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>.

Bump image in ingress downgrade test

**Release note**:
```release-note
None
```

/assign @nicksardo
2018-04-12 13:18:11 -07:00
Kubernetes Submit Queue 9816b43188
Merge pull request #61198 from jpbetz/etcd-3.2-upgrade-reattempt
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>.

Update default etcd server to 3.2 for kubernetes 1.11

Repply #59836 but with latest etcd 3.2 patch version (3.2.18 which includes mvcc fix and leader election timeout fix) and default `--snapshot-count` to 10k to resolve performance regression in previous etcd 3.2 server upgrade attempt (https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372458578).

See https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372458578 for details on the root cause of the performance regression and scalability test results of setting `--snapshot-count` to 10k.

```release-note
Upgrade the default etcd server version to 3.2.18
```
@gyuho @shyamjvs @jdumars @timothysc
2018-04-12 10:46:42 -07:00
Rohit Ramkumar aec7a794bd
Bump image in ingress downgrade test 2018-04-12 09:00:48 -07:00
wojtekt 4cb99318d2 Fix PodStore to wait for being initialized 2018-04-12 15:38:11 +02:00