Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ControllerModifyVolume E2E tests #1826

Merged
merged 1 commit into from
Sep 22, 2024

Conversation

travisyx
Copy link
Contributor

@travisyx travisyx commented Sep 17, 2024

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:

/kind api-change
/kind bug

/kind cleanup

/kind design
/kind documentation
/kind failing-test
/kind feature
/kind flake

What this PR does / why we need it:

This PR adds ControllerModifyVolume E2E tests. This allows us to directly test the various APIs to check for any breaking changes in the future with the clients used.

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

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. kind/bug Categorizes issue or PR as related to a bug. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Sep 17, 2024
@k8s-ci-robot
Copy link
Contributor

Hi @travisyx. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Sep 17, 2024
@amacaskill
Copy link
Member

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Sep 17, 2024
test/run-e2e.sh Outdated
@@ -5,4 +5,4 @@ set -x

readonly PKGDIR=sigs.k8s.io/gcp-compute-persistent-disk-csi-driver

go test --timeout 30m --v "${PKGDIR}/test/e2e/tests" --run-in-prow=true --delete-instances=true --logtostderr $@
go test --timeout 45m --v "${PKGDIR}/test/e2e/tests" --run-in-prow=true --delete-instances=true --logtostderr $@
Copy link
Member

Choose a reason for hiding this comment

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

previously these tests were taking 27 min ish to run, and now they are taking 44 min. Why do these tests make the tests run so much longer?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The changes from ControllerModifyVolume take 5-6 minutes to be reflected. I added tests for both IOPS/throughput, just IOPS, and just throughput, causing the tests to take longer

Copy link
Member

Choose a reason for hiding this comment

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

Do these e2e tests not run in parallel?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

No, they don't run in parallel by default

@@ -1549,6 +1560,84 @@ var _ = Describe("GCE PD CSI Driver", func() {
Entry("with missing multi-zone label", multiZoneTestConfig{diskType: standardDiskType, readOnly: true, hasMultiZoneLabel: false, wantErrSubstring: "points to disk that is missing label \"goog-gke-multi-zone\""}),
Entry("with unsupported disk-type pd-extreme", multiZoneTestConfig{diskType: extremeDiskType, readOnly: true, hasMultiZoneLabel: true, wantErrSubstring: "points to disk with unsupported disk type"}),
)

DescribeTable("Should update metadata when providing valid metadata",
Copy link
Member

Choose a reason for hiding this comment

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

If we cherry pick PRs back to previous release branches (before your change), is there a way to skip these test cases ? Otherwise I think these will fail against PRs merged to old release branches. In the test log, I see

Ran 43 of 51 Specs in 1471.037 seconds
SUCCESS! -- 43 Passed | 0 Failed | 2 Pending | 6 Skipped

So I think there is a way to skip somewhere

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I changed the table to be pending, so this should skip for older versions. Is this sufficient?

Copy link
Member

Choose a reason for hiding this comment

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

How does that make it skip for older versions? I see your tests now are pending even for this PR. I'm assuming that means they didn't run at all. What are the tests we are skipping now, and can we make those be skipped based on release branch?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The other tests that were skipped are the tests in multi_zone_e2e_test.go. They get skipped if an environment variable isn't set. It doesn't seem like doing the same for these tests makes sense as they just wouldn't run on the tests for this PR. I set the tests to read the latest tag information and base the test skip on if the version is before v1.15.0.

Copy link
Member

Choose a reason for hiding this comment

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

Actually, based on a past new feature / new e2e test (70148a9#diff-2547c5a5595d73ed4720c414c96d15d919e53abf7441f91f1b2c7250196a2606) I don't think this is an issue I guess?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

So basing test skips off an environment variable is fine? I guess that would make sense especially given that the tests were verified to be passing from an earlier PR run

@k8s-ci-robot
Copy link
Contributor

@travisyx: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-gcp-compute-persistent-disk-csi-driver-verify a72a91e link true /test pull-gcp-compute-persistent-disk-csi-driver-verify

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.

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-sigs/prow repository. I understand the commands that are listed here.

@amacaskill
Copy link
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 Sep 22, 2024
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: amacaskill, travisyx

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

The pull request process is described here

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 Sep 22, 2024
@amacaskill amacaskill merged commit feb8570 into kubernetes-sigs:master Sep 22, 2024
5 of 7 checks passed
@travisyx
Copy link
Contributor Author

travisyx commented Nov 5, 2024

/cherry-pick release-1.15

@k8s-infra-cherrypick-robot

@travisyx: only kubernetes-sigs org members may request cherry picks. If you are already part of the org, make sure to change your membership to public. Otherwise you can still do the cherry-pick manually.

In response to this:

/cherry-pick release-1.15

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-sigs/prow repository.

k8s-ci-robot added a commit that referenced this pull request Nov 5, 2024
…1836-#1838-#1841-upstream-release-1.15

Automated cherry pick of #1826: Add ControllerModifyVolume E2E tests
#1836: Create documentation for ControllerModifyVolume and controller default
#1838: Enable VolumeAttributesClass feature gate for CI runs
#1841: Update logic to use SI for VACs
travisyx added a commit to travisyx/gcp-compute-persistent-disk-csi-driver that referenced this pull request Nov 12, 2024
…ModifyVolume E2E tests

kubernetes-sigs#1836: Create documentation for ControllerModifyVolume and controller default
kubernetes-sigs#1838: Enable VolumeAttributesClass feature gate for CI runs
kubernetes-sigs#1841: Update logic to use SI for VACs"
amacaskill added a commit that referenced this pull request Nov 13, 2024
…ick-of-#1826-#1836-#1838-#1841-upstream-release-1.15

Revert "Automated cherry pick of #1826: Add ControllerModifyVolume E2E tests#1836: Create documentation for ControllerModifyVolume and controller default#1838: Enable VolumeAttributesClass feature gate for CI runs#1841: Update logic to use SI for VACs"
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. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/bug Categorizes issue or PR as related to a bug. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. release-note-none Denotes a PR that doesn't merit a release note. 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.

4 participants