Commit Graph

1732 Commits

Author SHA1 Message Date
k8s-ci-robot
7e102de723 Merge pull request #70475 from pohly/csi-driver-deployment-logging
e2e: less verbose item creation
2018-11-01 13:44:27 -07:00
k8s-ci-robot
4351cea80c Merge pull request #70046 from cheftako/lintCleanGce
Fixed lint errors for pkg/cloudprovider/providers/gce.
2018-11-01 13:44:06 -07:00
Sandeep Rajan
4c8a65ac01 configure cluster domain via flags 2018-11-01 12:27:54 -04:00
Patrick Ohly
84db64fbcc e2e: less verbose item creation
The detailed dumps of original and patched item content was useful
while developing the feature, but is less relevant now and too
verbose. It might be relevant again, so it's left in the code as
comments.

What gets logged now is just a single-line "creating" resp. "deleting"
message with the type of the item and its unique name.

This also enhances up some other aspects of the original logging:
- the namespace is included for item types that are namespaced
- the "deleting" message no longer gets replicated in each factory
  method

Fixes: #70448
2018-10-31 10:23:12 +01:00
Wei Huang
ca10e616bf add e2e tests for TaintBasedEvictions 2018-10-30 10:40:05 -07:00
Patrick Ohly
1449353067 e2e: live streaming of pod events and stdout for CSI volume tests
Debugging the CSI driver tests depends a lot on the output of the CSI
sidecar containers and the CSI driver, but that information was not
captured automatically and thus unavailable after a test run. This is
particularly bad when running in a remote CI system, but also manually
watching the cluster during a test was cumbersome.

Now pod events and log messages get copied to the test's output at the
time that they happen (when running without report directory) or get
written to individual log files (when running with report directory in
the CI).
2018-10-30 09:18:48 +01:00
k8s-ci-robot
2ecc71da47 Merge pull request #69868 from pohly/e2e-manifests
e2e manifests
2018-10-29 17:11:08 -07:00
walter
735ad9ed63 Fixed lint errors for pkg/cloudprovider/providers/gce.
Fixed minor issues.
Cleaned up from merge errors.
2018-10-29 11:52:24 -07:00
k8s-ci-robot
fb6716e83c Merge pull request #67495 from islinwb/policy_psp
use PodSecurityPolicySpec of policy/v1beta1 instead of extensions/v1beta1
2018-10-29 08:31:15 -07:00
Patrick Ohly
248df4ac58 e2e: update bazel BUILD files
Generated via hack/update-bazel.sh.
2018-10-27 00:39:44 +02:00
Patrick Ohly
38efff564c e2e: deploy from manifest files + enhance CSI volume output
Ensuring that CSI drivers get deployed for testing exactly as intended
was problematic because the original .yaml files had to be converted
into code. e2e/manifest helped a bit, but not enough:
- could not load all entities
- didn't handle loading .yaml files with multiple entities
- actually creating and deleting entities still had to be done in tests

The new framework utility code handles all of that, including the
tricky cleanup operation that tests got wrong (AfterEach does not get
called after test failures!).

In addition, it is ensuring that each test gets its own instance of the
entities.

The PSP role binding for hostpath is now necessary because we switch
from creating a pod directly to creation via the StatefulSet
controller, which runs with less privileges.

Without this, the hostpath test runs into these errors in the
kubernetes-e2e-gce job:

Oct 19 16:30:09.225: INFO: At 2018-10-19 16:25:07 +0000 UTC - event for csi-hostpath-attacher: {statefulset-controller } FailedCreate: create Pod csi-hostpath-attacher-0 in StatefulSet csi-hostpath-attacher failed error: pods "csi-hostpath-attacher-0" is forbidden: unable to validate against any pod security policy: []
Oct 19 16:30:09.225: INFO: At 2018-10-19 16:25:07 +0000 UTC - event for csi-hostpath-provisioner: {statefulset-controller } FailedCreate: create Pod csi-hostpath-provisioner-0 in StatefulSet csi-hostpath-provisioner failed error: pods "csi-hostpath-provisioner-0" is forbidden: unable to validate against any pod security policy: []
Oct 19 16:30:09.225: INFO: At 2018-10-19 16:25:07 +0000 UTC - event for csi-hostpathplugin: {daemonset-controller } FailedCreate: Error creating: pods "csi-hostpathplugin-" is forbidden: unable to validate against any pod security policy: []

The extra role binding is silently ignored on clusters which don't
have this particular role.
2018-10-26 22:07:34 +02:00
Justin SB
ff8a0e08cb Disambiguate "unsupported provider" messages
When we get an unsupported provider message, it often isn't clear what
method actually failed - add more information to the error message.

Issue #70280
2018-10-26 07:13:20 -04:00
Patrick Ohly
1effe0ca0f e2e framework: UniqueName
This is needed for tests which have to create entities that aren't
namespaced, like ServiceAccounts.
2018-10-26 10:32:46 +02:00
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
Weibin Lin
d02e3bd780 use PodSecurityPolicySpec of policy/v1beta1 instead of extensions/v1beta1 2018-10-18 10:18:13 +08: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