Commit Graph

1568 Commits

Author SHA1 Message Date
Patrick Ohly
bf08f5c63c e2e: allow unknown providers with a warning
The E2E refactoring tightened the sanity checking of the --provider
parameter such that it only allowed known providers. That seemed to
make sense because it catches typos, but it turned out that various
callers depended on the "accept arbitrary provider value" behavior,
therefore it gets restored.
2018-10-24 21:57:02 +02:00
k8s-ci-robot
daf17e2aee Merge pull request #69571 from bclau/tests-linux-commands-fix
tests: Makes tests' commands platform agnostic
2018-10-23 09:33:30 -07:00
k8s-ci-robot
2472d67357 Merge pull request #68218 from jcsirot/fix-SkipIfMultizone-message
Fix the skip message since it was the exact opposite of the tested co…
2018-10-22 22:46:32 -07:00
Benjamin Elder
3787a4b5be register skeleton provider 2018-10-19 17:05:06 -07:00
k8s-ci-robot
8b36038b41 Merge pull request #68483 from pohly/e2e-refactor-pr
e2e refactor
2018-10-19 12:32:01 -07:00
k8s-ci-robot
c30f5269a3 Merge pull request #69810 from chrisohaver/checkmem
Add DNS container memory check to scalability tests
2018-10-18 14:44:09 -07:00
Chris O'Haver
402266afde add dns pod memory constraint 2018-10-18 10:35:30 -04:00
k8s-ci-robot
08be38186d Merge pull request #69755 from mrunalp/use_fsync
Use fsync instead of sync for test
2018-10-16 13:01:52 -07:00
Mrunal Patel
6327c7403b Use fsync instead of sync for test
sync sometimes hangs with misbehaving NFS during the tests

Signed-off-by: Mrunal Patel <mpatel@redhat.com>
2018-10-15 14:27:26 -07:00
Dan Mace
0bef5e4325 Make CreatePrivilegedPSPBinding reentrant
Make CreatePrivilegedPSPBinding reentrant so tests using it (e.g. DNS) can be
executed more than once against a cluster. Without this change, such tests will
fail because the PSP already exists, short circuiting test setup.
2018-10-15 15:31:25 -04:00
k8s-ci-robot
d20912c83f Merge pull request #69728 from SataQiu/fix-2018101201
fix some typos
2018-10-13 21:47:08 -07:00
k8s-ci-robot
9c5cf3ccf7 Merge pull request #69549 from tallclair/podevent-test
Fix WaitTimeoutForPodEvent logic
2018-10-12 19:13:52 -07:00
k8s-ci-robot
a8c76d4d57 Merge pull request #69674 from mooncak/fix_e2e_issue
Fix typos in the test comments
2018-10-12 14:48:46 -07:00
Tim Allclair
5214be3f16 Fix WaitTimeoutForPodEvent logic 2018-10-12 11:59:45 -07:00
SataQiu
e1d5b97f3f fix some typos 2018-10-12 22:29:18 +08:00
k8s-ci-robot
e1a1aa2112 Merge pull request #69695 from justinsb/service_utils_typos
e2e: fix some small typos
2018-10-11 20:46:30 -07:00
Justin Santa Barbara
ee1b0c81a7 e2e: fix some small typos 2018-10-11 13:06:42 -07:00
k8s-ci-robot
632df63061 Merge pull request #68822 from pohly/csi-pod-creation
CSI E2E: retry csi-pod creation
2018-10-11 12:32:28 -07:00
mooncake
91419e6782 Fix typos in the test comments
Signed-off-by: mooncake <xcoder@tenxcloud.com>
2018-10-11 19:25:55 +08:00
Patrick Ohly
97101a6a86 e2e: update bazel BUILD files
Generated via hack/update-bazel.sh.
2018-10-11 11:36:25 +02:00
Patrick Ohly
8b17db7e0c e2e: modular framework
Not all users of the E2E framework want to run cloud-provider specific
tests. By splitting out the code it becomes possible to decide in
a E2E test suite which providers are supported.

This is achieved in two ways:
- the framework calls certain functions through a provider
  interface instead of calling specific cloud provider functions
  directly
- tests that are cloud-provider specific directly import the
  new provider packages

The ingress test utilities are only needed by a few tests. Splitting
them out into a separate package makes the framework simpler for test
suites not using those tests.

Fixes: #66649
2018-10-11 11:16:11 +02:00
k8s-ci-robot
9c94363ef9 Merge pull request #69105 from pohly/e2e-settings
E2E settings
2018-10-10 12:01:07 -07:00
Claudiu Belu
7cd4ebf3c3 tests: Makes tests' commands platform agnostic
Some commands used in tests are Linux specific and do not exist
or do not behave the same on Windows nodes. This can cause those
tests to fail on Windows nodes.

Replaces the mentioned commands with ones that behave the same on
both Linux and Windows.
2018-10-08 17:19:18 -07:00
k8s-ci-robot
0f17e9ade6 Merge pull request #69386 from cblecker/go-1.11
Update to go1.11.1
2018-10-05 17:35:51 -07:00
k8s-ci-robot
13705ac81e Merge pull request #68310 from cheftako/cpiMove
Moving the cloudprovider interface to staging.
2018-10-05 13:29:01 -07:00
Christoph Blecker
97b2992dc1 Update gofmt for go1.11 2018-10-05 12:59:38 -07:00
Patrick Ohly
4423735dc3 e2e: update bazel BUILD files
Generated via hack/update-bazel.sh.
2018-10-05 14:28:03 +02:00
Patrick Ohly
7305a3e395 e2e/lifecycle: decentralized settings
Tests settings should be defined in the test source code itself
because conceptually the framework is a separate entity that not all
test authors can modify.

For the sake of backwards compatibility the name of the command line
flags are not changed.
2018-10-05 14:24:35 +02:00
Patrick Ohly
752203d3fa e2e/instrumentation: decentralized settings
Tests settings should be defined in the test source code itself
because conceptually the framework is a separate entity that not all
test authors can modify.

Using the new framework/config code also has several advantages:
- defaults can be set with less code
- no confusion around what's a duration
- the options can also be set via command line flags

While at it, a minor bug gets fixed:
- readConfig() returns only defaults when called while
  registering Ginkgo tests because Viperize() gets called later,
  so the scale in the logging soak test couldn't really be configured;
  now the value is read when the test runs and thus can be changed

The options get moved into the "instrumentation.logging"
resp. "instrumentation.monitoring" group to make it more obvious where
they are used. This is a breaking change, but that was already
necessary to improve the duration setting from plain integer to a
proper time duration.
2018-10-05 14:24:35 +02:00
Patrick Ohly
8cde9c08f0 e2e/storage: decentralized settings
Tests shouldn't have to use the central context for their settings,
because conceptually tests and framework get developed independently.

This does not yet use the new framework/config utility code because
that code still needs to be reviewed.

Besides moving the flags, they also get renamed from the top-level
"--csiImage{Version|Registry}" to
"--storage.csi.image.{version|registry}". These flags were introduced
fairly recently and shouldn't be in use much, so now is a good time to
introduce a hierarchical naming for storage flags, in particular
because more flags will be added soon.
2018-10-05 14:24:35 +02:00
Patrick Ohly
cf0dcc6ab2 e2e: clarify and enhance configuration support
Storing settings in the framework's TestContext is not something that
out-of-tree test authors can do because for them the framework is a
read-only upstream component. Conceptually the same is true for
in-tree tests, so the recommended approach is to define configuration
settings in the code that uses them.

How to do that is a bit uncertain. Viper has several
drawbacks (maintenance status uncertain, cannot list supported
options, cannot validate the configuration file). How to handle
configuration files is currently getting discussed for kubeadm, with
similar concerns about
Viper (https://github.com/kubernetes/kubeadm/issues/1040).

Instead of making a choice now for E2E, the recommendation is that
test authors continue to define command line flags as before, except
that they should do it in their own code and with better flag names.

But the ability to read options also from a file is useful, so
several enhancements get added:
- all settings defined via flags can also be read from a
  configuration file, without extra work for test authors
- framework/config makes it possible to populate a struct directly
  and define flags with a single function call
- a path and file suffix can be given to --viper-config (as in
  "--viper-config /tmp/e2e.json") instead of expecting the file in
  the current directory; as before, just plain "--viper-config e2e"
  still works
- if "--viper-config" is set, the file must exist; otherwise the
  "e2e" config is optional (as before)
- errors from Viper are no longer silently ignored, so syntax errors
  are detected early
- Viper support is optional: test suite authors who don't want
  it are not forced to use it by the e2e/framework
2018-10-05 14:22:18 +02:00
Walter Fender
f3f46d5f5a Moving the cloudprovider interface to staging.
Individual implementations are not yet being moved.
Fixed all dependencies which call the interface.
Fixed golint exceptions to reflect the move.
Added project info as per @dims and
https://github.com/kubernetes/kubernetes-template-project.
Added dims to the security contacts.
Fixed minor issues.
Added missing template files.
Copied ControllerClientBuilder interface to cp.
This allows us to break the only dependency on K8s/K8s.
Added TODO to ControllerClientBuilder.
Fixed GoDeps.
Factored in feedback from JustinSB.
2018-10-04 14:41:20 -07:00
k8s-ci-robot
166490a473 Merge pull request #69103 from pohly/testfiles
E2E: handling extra files
2018-10-04 13:39:49 -07:00
Kenichi Omichi
b259e91420 Update options of master/node-os-distro
Some e2e tests are skipped by depending on Linux distribution of
master and node, and the options can be one of "debian", "ubuntu",
"gci" or "custom". This updates the help message of the options.
2018-10-03 17:44:28 +00:00
k8s-ci-robot
59957af125 Merge pull request #69283 from chrisohaver/trackdns2
Add option to track dns pods
2018-10-02 05:35:33 -07:00
k8s-ci-robot
a27adf1612 Merge pull request #69300 from mrunalp/subpath_test_wait_for_event
test: Wait for pod event to show up
2018-10-02 01:12:00 -07:00
Patrick Ohly
20c9549c10 e2e: update bazel BUILD files
Generated via hack/update-bazel.sh.
2018-10-02 08:31:03 +02:00
Patrick Ohly
212af1ac29 e2e: abstract access to additional files
The new test/e2e/framework/testfiles package makes it possible to
write tests that do not depend on a specific way of providing
additional test files at runtime. Such tests and the framework are
then more easily reused in other test suites.

In the test/e2e suite file access is enabled based on the existing
"repo-root" command line parameter and the built-in bindata. Tests
using the new API will first check for files under "repo-root" and
then fall back to the builtin data. This way, users of a test binary
can modify those files without having to rebuild the binary.

"repo-root" is still needed because at least some tests check for
additional files (secret.yaml, via ingress_utils.go) that are not part
of the upstream source code and thus may or may not be built into a
test binary.

Tests using bindata or repo-root directly get modified to use the new
API, or removed when they are obsolete: test/e2e/examples.go depended
on files that were removed in
https://github.com/kubernetes/kubernetes/pull/61246 and thus can no
longer be run in Kubernetes. Moving the tests to kubernetes/examples
is tracked in https://github.com/kubernetes/examples/issues/214.

The file removal did not break the automated E2E testing probably
because the tests are under the Feature:Example tag and thus not
enabled during normal CI runs.

Removing also the obsolete tests makes it simpler to rework the
"repo-root" setting because less code uses it.

Related-to: #66649 and #23987
2018-10-02 08:31:03 +02:00
k8s-ci-robot
d25e6a6f62 Merge pull request #69291 from mrunalp/bump_up_pod_start_short_timeout
Increase the pod start short timeout
2018-10-01 22:21:08 -07:00
Mrunal Patel
c771de1e6b test: Wait for pod event to show up
We are seeing flakes where pod event isn't yet visible when
we check for it leading to test failure.

Signed-off-by: Mrunal Patel <mpatel@redhat.com>
2018-10-01 12:28:40 -07:00
Mrunal Patel
c58fc8ce4b Increase the pod start short timeout
We have seen flakes related to this timeout.

Signed-off-by: Mrunal Patel <mpatel@redhat.com>
2018-10-01 09:27:22 -07:00
Chris O'Haver
9060fc6e6d add opt to track dns pods 2018-10-01 10:00:16 -04:00
Davanum Srinivas
57f1f6e5b7 Use token file for in cluster config during e2e tests
Change-Id: I08e792d7c4db2d81861eec6f91028ebf26dea8db
2018-10-01 05:55:37 -04:00
k8s-ci-robot
3fe21e5433 Merge pull request #68922 from BenTheElder/version-staging
move pkg/util/version to staging
2018-09-26 22:59:42 -07:00
k8s-ci-robot
4b859010e9 Merge pull request #68757 from neolit123/e2e-fix-k-a-path
e2e/framework: update kubernetes-anywhere path
2018-09-26 14:43:03 -07:00
Benjamin Elder
8b56eb8588 hack/update-gofmt.sh 2018-09-24 12:21:29 -07:00
Benjamin Elder
f828c6f662 hack/update-bazel.sh 2018-09-24 12:03:24 -07:00
Benjamin Elder
088cf3c37b find & replace version import 2018-09-24 12:03:24 -07:00
Patrick Ohly
6dbb07c4b6 CSI E2E: retry csi-pod creation
Normally the pod would get created via a DaemonSet controller, but
during testing it is easier to create it directly. We just need to
ignore errors (like 'No API token found for service account
"csi-service-account"') and retry for a while. If the error persists,
the error will still abort and report it eventually.

This problem also occurs elsewhere, so an utility function in the
framework for it seems justified.

Fixes: #68776
2018-09-21 11:45:52 +02:00
Jeff Grafton
3388e0ce5f Update to use etcd:3.2.24-1 image 2018-09-20 12:40:26 -07:00