Skip to content

storage capacity tests#88114

Merged
k8s-ci-robot merged 6 commits into
kubernetes:masterfrom
pohly:storage-capacity-tests
Apr 15, 2020
Merged

storage capacity tests#88114
k8s-ci-robot merged 6 commits into
kubernetes:masterfrom
pohly:storage-capacity-tests

Conversation

@pohly

@pohly pohly commented Feb 13, 2020

Copy link
Copy Markdown
Contributor

What type of PR is this?
/kind failing-test

What this PR does / why we need it:

This adds tests for #72031.

Does this PR introduce a user-facing change?:

NONE

@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. kind/failing-test Categorizes issue or PR as related to a consistently or frequently failing test. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. labels Feb 13, 2020
@pohly

pohly commented Feb 13, 2020

Copy link
Copy Markdown
Contributor Author

WIP because csi-test and external-provisioner need to be updated for all test cases to pass.

@k8s-ci-robot k8s-ci-robot added area/test sig/storage Categorizes an issue or PR as relevant to SIG Storage. sig/testing Categorizes an issue or PR as relevant to SIG Testing. and removed needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Feb 13, 2020
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Feb 28, 2020
@pohly pohly force-pushed the storage-capacity-tests branch from a4d549e to cf65bce Compare March 24, 2020 15:08
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 24, 2020
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 25, 2020
@pohly pohly force-pushed the storage-capacity-tests branch from cf65bce to 3cf9ab1 Compare April 2, 2020 13:37
@k8s-ci-robot k8s-ci-robot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Apr 2, 2020
@pohly

pohly commented Apr 2, 2020

Copy link
Copy Markdown
Contributor Author

I have rebased on top of #89041 to reuse some of the new utility functions in that PR (specifically, compareCSICalls) and to avoid conflicts when that PR merges.

In addition, I am trying some enhancements for that PR.

@pohly

pohly commented Apr 2, 2020

Copy link
Copy Markdown
Contributor Author

/retest

Failures were unrelated.

@pohly pohly mentioned this pull request Apr 2, 2020
@pohly pohly force-pushed the storage-capacity-tests branch from 3cf9ab1 to d6f0d0e Compare April 3, 2020 08:48
@pohly

pohly commented Apr 3, 2020

Copy link
Copy Markdown
Contributor Author

/retest

@pohly

pohly commented Apr 3, 2020

Copy link
Copy Markdown
Contributor Author

@jsafrane what do you think about the log output retry approach (d6f0d0e)? Do you want to copy that into your PR or shall we merge your changes together with mine in this PR?

@jsafrane

jsafrane commented Apr 6, 2020

Copy link
Copy Markdown
Member

@pohly, thanks for the suggestion. I incorporated your last commit into #89041 (with you as author) to see if it helps.

pohly added 5 commits April 7, 2020 13:07
parseMockLogs is called potentially multiple times while waiting for
output. Dumping all CSI calls each time is quite verbose and
repetitive. To verify what the driver has done already, the normal
capturing of the container log can be used instead:

csi-mockplugin-0/mock@127.0.0.1: gRPCCall: {"Method":"/csi.v1.Node/NodePublishVolume","Request"...
The code became obsolete with the introduction of parseMockLogs
because that will retrieve the log itself. For debugging of a running
test the normal pod output logging is sufficient.
The mock driver gets instructed to return a ResourceExhausted error
for the first CreateVolume invocation via the storage class
parameters.

How this should be handled depends on the situation: for normal
volumes, we just want external-scheduler to retry. For late binding,
we want to reschedule the pod. It also depends on topology support.
The for loop that waited for the signal to delete pod had no timeout,
so if something went wrong, it would wait for the entire test suite to
time out.
The "error waiting for expected CSI calls" is redundant because it's
immediately followed by checking that error with:

   framework.ExpectNoError(err, "while waiting for all CSI calls")
@pohly pohly force-pushed the storage-capacity-tests branch from d6f0d0e to 48f8e39 Compare April 7, 2020 11:10
@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Apr 7, 2020
@pohly

pohly commented Apr 7, 2020

Copy link
Copy Markdown
Contributor Author

/retest

2 similar comments
@pohly

pohly commented Apr 7, 2020

Copy link
Copy Markdown
Contributor Author

/retest

@pohly

pohly commented Apr 7, 2020

Copy link
Copy Markdown
Contributor Author

/retest

@pohly pohly changed the title WIP: storage capacity tests storage capacity tests Apr 7, 2020
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 7, 2020
@pohly

pohly commented Apr 7, 2020

Copy link
Copy Markdown
Contributor Author

@jsafrane: I've rebased on top of your merged PR and the tests passed now after a few flakes. Perhaps you can have a look, as you are familiar with code and I am touching a few things you just worked on?

Comment thread test/e2e/storage/csi_mock_volume.go Outdated
}

var calls []mockCSICall
err = wait.Poll(time.Second, csiPodRunningTimeout, func() (done bool, err error) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By this time, test pvc/pod has been created, run and deleted. So all calls must be in mock driver logs. Isn't 5 minute timeout too much to get the logs?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've replaced this with a per-test timeout. It would be even nicer if that deadline could also be passed into the other helper functions (like WaitForPodNameRunningInNamespace) but those have their own builtin timeouts.

@jsafrane: please have another look

The timeout for the two loops inside the test itself are now bounded
by an upper limit for the duration of the entire test instead of
having their own, rather arbitrary timeouts.
@pohly

pohly commented Apr 14, 2020

Copy link
Copy Markdown
Contributor Author

/retest

@jsafrane

Copy link
Copy Markdown
Member

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Apr 15, 2020
@k8s-ci-robot

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jsafrane, pohly

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 15, 2020
@k8s-ci-robot

k8s-ci-robot commented Apr 15, 2020

Copy link
Copy Markdown
Contributor

@pohly: The following test failed, say /retest to rerun all failed tests:

Test name Commit Details Rerun command
pull-kubernetes-node-e2e-containerd 48f8e39 link /test pull-kubernetes-node-e2e-containerd

Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@pohly

pohly commented Apr 15, 2020

Copy link
Copy Markdown
Contributor Author

/retest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/test cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/failing-test Categorizes issue or PR as related to a consistently or frequently failing test. lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. release-note-none Denotes a PR that doesn't merit a release note. sig/storage Categorizes an issue or PR as relevant to SIG Storage. sig/testing Categorizes an issue or PR as relevant to SIG Testing. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants