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 end to end test cases #118

Closed
11 of 13 tasks
leakingtapan opened this issue Nov 16, 2018 · 7 comments · Fixed by #173
Closed
11 of 13 tasks

Add end to end test cases #118

leakingtapan opened this issue Nov 16, 2018 · 7 comments · Fixed by #173
Assignees
Labels
priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Milestone

Comments

@leakingtapan
Copy link
Contributor

leakingtapan commented Nov 16, 2018

This is the top level issue about implementing e2e test for the driver. The tests will exercise the driver functionalities along with kubernetes being the CO. The functionalities includes:

Happy Scenarios:

  • It("should create a PV object, bind to a PVC and be deleted with Delete reclaimPolicy")
  • It("should create a PV object, bind to a PVC and be retained with Retain reclaimPolicy")
  • It("should create multiple PV objects, bind to PVCs and attach each to different pods on the same node") (Add first few e2e test cases #151)
  • It("should allow for provisioning with different volume types (gp2, io1, sc1, st1)") (Add first few e2e test cases #151)
  • It("should allow for provisioning with different file system types (ext2, ext3, ext4, etc)") (Add first few e2e test cases #151)
  • It("should allow for provisioning with specified zone in allowedTopologies")
  • It("should allow for volume provisioning with encryption enabled")
  • It("should allow for topology aware volume provisioning")
  • It("should allow for statically creating a PV and writing and reading data")
  • It("should allow for mounting volume with mount options")
  • It("should allow for a pod writing and reading data, expanding the PersistentVolume and writing and reading data") (depends volume resizing) (will do this when feature is being implemented)

Failure Scenarios:

  • It("should reattach a volume after a pod is deleted and data can be read")
  • It("should reattach a volume after a pod is rescheduled from a drained node and data can be read") (punt to Add e2e test for failure scenarios #189)

The test will be a go test using ginkgo as behavioral driven testing. It should assume that a cluster is already pre-created and the EBS CSI driver is already deployed for the test to run.

In Scope
For each test case, the test should create a storageclass, create a pvc/pvc and verifies that certain conditions is met given the test scenario.

Out of scope
The following will be tracked separately and implemented as part of the general testing framework for testing k8s on AWS:

  • Building test driver container image
  • Pushing test driver image to registry
  • Setting up cluster
  • Deploying test driver
@leakingtapan leakingtapan added the priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. label Nov 16, 2018
@leakingtapan leakingtapan added this to the beta milestone Nov 16, 2018
@leakingtapan
Copy link
Contributor Author

leakingtapan commented Nov 16, 2018

/cc @gyuho @bertinatto

@gyuho
Copy link
Member

gyuho commented Nov 17, 2018

Ack. We should have this ready by next quarter.

@bertinatto
Copy link
Member

👍

@gyuho, @leakingtapan: just to make sure, perhaps are you working on this already?

@leakingtapan
Copy link
Contributor Author

I have some ideas and will implement one test case and send PR to see how it looks like. After that we can break this down into sub tasks one per test case.

/assign

@leakingtapan
Copy link
Contributor Author

To clarify a bit, the scope of this issue is to write e2e test cases so that we can at least run test against our personal cluster endpoint quickly. This will be an big improvement over manual testing.

And the work to set k8s cluster and the EBS CSI driver will be tracked separately by @gyuho and after that is done we will get full e2e test automation and integration with Prow.

@leakingtapan leakingtapan changed the title Add end to end tests Add end to end test cases Nov 23, 2018
@leakingtapan
Copy link
Contributor Author

Added first e2e test case: #139

@leakingtapan
Copy link
Contributor Author

I updated the issue description and break down the test cases

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants