Commit Graph

62 Commits

Author SHA1 Message Date
Masaki Kimura
ea4f4c8432 Move volume_expand tests to storage e2e testsuites 2019-07-11 18:49:49 +00:00
Kubernetes Prow Robot
a61006bbc4
Merge pull request #75593 from pohly/e2e-no-global-flags
e2e: avoid mandatory command line flags
2019-07-09 03:10:03 -07:00
Patrick Ohly
b86a007057 e2e: avoid mandatory command line flags
Tests should never directly add to the global command line, because
some users of the tests might not want them there. For example,
options might only get set directly from a config file.

To achieve that, e2e/framework/config, e2e/framework/viperconfig, and
e2e/framework/test_context.go avoid using the global flag set and
instead expect to be told by the caller which flag set to use. Tests
that called flag directly either get updated or obsolete flags get
removed.

The exception is framework.HandleFlags, which as before directly
implements global command line handling.

This is a breaking change for test suites which do not use that
function (and only those): they now need to ensure that they copy
individual flags from tests. Because the RegisterCommonFlags prototype
has changed, test suite authors will notice due to the resulting
compilation errors.
2019-07-04 17:15:14 +02:00
draveness
4c2e77a53e feat: use framework.ExpectEqual in storage e2e test 2019-07-04 22:24:29 +08:00
Jan Safranek
2a08bd64af Add public functions to define CSI external tests
3rd party test suites that want to include external CSI tests may not use
"flags" for cmdline parsing.
2019-07-02 12:01:55 +02:00
Patrick Ohly
093027c891 e2e/storage: ensure that also external storage classes are unique
One previously undocumented expectation is that
GetDynamicProvisionStorageClass can be called more than once per test
and then each time returns a new, unique storage class. The in-memory
implementation in driveroperations.go:GetStorageClass ensured that,
but loading from a .yaml file didn't. This caused the multivolume tests
to fail when applied to an already installed GCE driver with the
-storage.testdriver parameter.
2019-05-09 08:53:25 +02:00
Michelle Au
bb8c1b144c add multivolume suite to external storage test suite
Change-Id: I59e529956e8cd40a948b2d21395b4b3c33b212bf
2019-05-01 11:35:46 -07:00
Masaki Kimura
b474b28f7b Use framework.ExpectNoError() for rest of under test/e2e/storage 2019-04-04 18:51:51 +00:00
Andrew Sy Kim
4ac9feb7f9 test/e2e: replace legacy scheme with client-go scheme
Signed-off-by: Andrew Sy Kim <kiman@vmware.com>
2019-04-02 10:08:55 -04:00
Patrick Ohly
e84271ed8a e2e/storage: allow empty volume type
This can happen when the test pattern is about snapshotting.
2019-03-07 16:57:16 +01:00
Patrick Ohly
915d6365f1 e2e/storage: fix snapshot support in external driver testing
When using an already installed driver, the snapshot name is the
original driver name. Renaming was incorrectly copied from the in-tree
CSI hostpath driver.
2019-03-07 15:45:40 +01:00
Patrick Ohly
6644db9914 e2e/storage: testing of external storage drivers
It is useful to apply the storage testsuite also to "external" (=
out-of-tree) storage drivers. One way of doing that is setting up a
custom E2E test suite, but that's still quite a bit of work.

An easier alternative is to parameterize the Kubernetes e2e.test
binary at runtime so that it instantiates the testsuite for one or
more drivers. Some parameters have to be provided before starting the
test because they define configuration and capabilities of the driver
and its storage backend that cannot be discovered at runtime. This is
done by populating the DriverDefinition with the content of the file
that the new -storage.testdriver parameters points to.

The universal .yaml and .json decoder from Kubernetes is used. It's
flexible, but has some downsides:
- currently ignores unknown fields (see https://github.com/kubernetes/kubernetes/pull/71589)
- poor error messages when fields have the wrong type

Storage drivers have to be installed in the test cluster before
starting e2e.test. Only tests involving dynamically provisioned
volumes are currently supported.
2019-03-06 22:06:31 +01:00