Commit Graph

196 Commits

Author SHA1 Message Date
Christian Huffman
3db91b2bdc Enabled reading config files for vsphere e2e tests 2020-01-08 09:00:40 -05:00
Marek Siarkowicz
31fb04fa98 Remove cluster-monitoring
Heapster is deprecated and no longer supported
2019-12-09 11:25:20 +01:00
Kenichi Omichi
aef8355358 Move RegisterNodeFlags() to e2e_node test
RegisterNodeFlags() is called in e2e_node test package only, so this
moves the function for making e2e core framework small and simple.
2019-11-14 18:11:21 +00:00
John Schnake
ed1d5270b3 Print progress updates to stdout and publish to URL
One common frustration of end users running the e2e suite is that
they take a significant amount of time and it is difficult to
gauge progress.

Even if tailing the logs it can be difficult to see where one
test starts and another ends or understand the if there have been
failures in the past 1h of logs.

This change adds a new custom reporter which prints summary information
as tests complete. This includes the number of tests to run and how
many have been passed/failed/skipped along with which tests have failed.

A new flag can be set which pushes these values to an endpoint. This is
intended for integration with Sonobuoy but any endpoint could consume and
surface this data to the user so they can better understand the state
of the current test run.
2019-11-09 15:35:08 -06:00
Kubernetes Prow Robot
a8e819746d
Merge pull request #83442 from serathius/remove-prometheus-addon
Remove prometheus addon
2019-10-29 01:34:43 -07:00
Kubernetes Prow Robot
0f7873ad5c
Merge pull request #82308 from zhlhahaha/kubectl_flag
Add kubectlPath flag to e2e_node.test
2019-10-18 23:47:37 -07:00
Howard Zhang
1c9da19bf5 Add kubectlPath flag to e2e_node.test
e2e_node.test does not set default kubectlPath, which lead to test
errors as following:
[Fail] [sig-storage] EmptyDir volumes [It] pod should support
shared volumes between containers [Conformance]

When the test trying to read file in shared volume, it uses
"kubeclt exec namespace -c container_name -- cat file_name".
However, as variable framework.TestContext.KubectlPath not set,
kubectl binary can not be found in the test and the tast fails.

This patch move kubectlPath flag from RegisterClusterFlags to
RegisterCommonFlags, thus default value for
framework.TestContext.KubectlPath will be set,and
user can also use --kubectl-path flag to set kubectl path.

Signed-off-by: Howard Zhang <howard.zhang@arm.com>
2019-10-17 11:29:44 +08:00
Marek Siarkowicz
887e84e330 Remove Prometheus addon and it's tests
Prometheus addon was developed for exterimental and test purpose only.
As readme states it should not be used by anyone.
2019-10-03 14:15:58 +02:00
Kenichi Omichi
6499f93266 Use log functions of core framework on [r-u]
This makes sub packages of e2e test framework to use log functions
of core framework instead for avoiding circular dependencies.
2019-09-26 18:17:10 +00:00
Kubernetes Prow Robot
4ab4e201aa
Merge pull request #82060 from aojea/isipv6method
Add a method to TestContext to check if is IPv6
2019-09-11 10:38:48 -07:00
John Schnake
3c53481d5c Move from regexp to csv string 2019-09-05 14:37:16 -05:00
John Schnake
8772187680 Add new flag for whitelisting node taints
Adds a new flag which allows users to specify a regexp
which will effectively whitelist certain taints and
allow the test framework to startup tests despite having
tainted nodes.

Fixes an issue where e2e tests were unable to be run
in tainted environments due to the framework waiting for
all the nodes to be schedulable without any tolerations.
2019-08-30 11:15:42 -05:00
Antonio Ojea
45d6f08868
Add a method to TestContext to check if is IPv6 2019-08-27 15:41:10 +02:00
Kenichi Omichi
c76291b8d3 Move HandleFlags to e2e package
HandleFlags() was used at e2e package and it depends on sub e2e
framework "config" in core e2e framework. That was invalid dependency.
So this moves HandleFlags() to e2e package for simple dependency.
2019-08-16 16:43:50 +00:00
Kubernetes Prow Robot
1e962072f1
Merge pull request #79909 from vinicyusmacedo/simplify-e2e
Moving e2e boilerplate to separate functions
2019-08-07 04:46:50 -07:00
moriadry
4b8080dda8 Fix error collides with imported package name
Fix error collides with imported package name

fix

fix
2019-08-06 12:20:29 +08:00
Vinicyus Macedo
0f21b692e4 Moved e2e boilerplate to framework 2019-08-05 16:23:56 -03:00
Antonio Ojea
bd15f3f9f7
Clarify IP family meaning 2019-07-25 16:14:57 +02:00
Antonio Ojea
daff471766
e2e: Autodetect the IP family of the cluster 2019-07-23 20:09:19 +02: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
Haosdent Huang
7ce6e71891 Fix typos. 2019-06-11 01:52:14 +08:00
SataQiu
d3a902ff5b e2e refactor: cleanup Logf form framework/util 2019-05-24 16:39:46 +08:00
SataQiu
a232c3266d fix golint failures of e2e/framework/test_context.go 2019-03-29 14:41:24 +08:00
Rohit Ramkumar
31d5e3c1a6 Remove Ingress-GCE upgrade tests from k/k 2019-03-18 10:18:08 -07:00
Kubernetes Prow Robot
9c75270b2b
Merge pull request #74905 from stevesloka/numNodesLookup
If num-nodes is not set, then look up via API how many are scheduleable
2019-03-06 00:44:49 -08:00
Steve Sloka
3dfaed9f7e If num-nodes is set to '-1', then look up via API how many nodes are scheduleable
Signed-off-by: Steve Sloka <slokas@vmware.com>
2019-03-05 10:46:05 -05:00
Steve Sloka
6dc5494ec9 Refactor to allow for a way to get list of e2e images
Signed-off-by: Steve Sloka <slokas@vmware.com>
2019-03-01 17:15:19 -05:00
Zhen Wang
6df207bdaa allows configuring NPD image version in node e2e test and fix the test 2019-02-26 21:29:50 -08:00
Marek Counts
7744f90830 Moved flag and globalflag
Moved all flag code from `staging/src/k8s.io/apiserver/pkg/util/[flag|globalflag]` to `component-base/cli/[flag|globalflag]` except for the term function because of unwanted dependencies.
2019-02-15 10:28:13 -05:00
Kubernetes Prow Robot
732cb10019
Merge pull request #73402 from pohly/e2e-vendor-parameter
e2e: reject unknown providers
2019-02-04 12:59:06 -08:00
Matt Matejczyk
35543f8989 Allow dumping full systemd journal in log-dump.sh.
The feature is gated behind a newly introduced 'dump-systemd-journal' flag.
We want to dump the full systemd journal in our scalability performance tests.
2019-02-03 21:28:37 +01:00
Patrick Ohly
7b5e65977c e2e: "skeleton" as fallback, empty string as default
Not accepting --provider= (i.e. setting an empty provider name) broke
some test jobs. As suggested in
https://github.com/kubernetes/kubernetes/pull/73402#issuecomment-459368230,
now --provider= and not passing --provider at all both trigger a
message and then continue as if --provider=skeleton had been used.
2019-01-31 15:54:48 +01:00
Patrick Ohly
dde3445a45 e2e: change default for --provider
The empty string was the default and then triggered a special
warning. There's no good reason for that behavior, so now the special
handling for "unset provider" is gone and "skeleton" is the non-empty
default for the value.
2019-01-29 19:50:40 +01:00
Patrick Ohly
f3d79e152e e2e: reject unknown providers
This finishes the work started for 1.13: instead of merely warning
about an unknown value given to --profile, the test/e2e/e2e.test
binary will now print an error and refuse to run.

Fixes: #70200
2019-01-28 19:55:45 +01:00
Jordan Liggitt
40e6f52299 plumb bearer token and token file for e2e 2018-12-07 17:01:47 -05:00
k8s-ci-robot
16c0f3ce4a
Merge pull request #71493 from smarterclayton/limit_max
e2e: Allow max-node-to-gather to be changed when running against larger clusters
2018-11-30 01:20:17 -08:00
Maciej Borsz
9e493e169d Implement NodeKiller -- a util to simulate node failures. 2018-11-29 12:56:50 +01:00
Clayton Coleman
653ed22fc9
e2e: Allow max-node-to-gather to be changed when running against larger clusters
While debugging issues I found myself having to change the constant in the code
for a cluster > 20 nodes, and then on a very small cluster I found myself passing
0 to avoid the mostly useless output (it's useful in specific scenarios but generates
a *lot* of output that doesn't help debugging the rest of the time).
2018-11-27 23:26:54 -05:00
Davanum Srinivas
954996e231
Move from glog to klog
- Move from the old github.com/golang/glog to k8s.io/klog
- klog as explicit InitFlags() so we add them as necessary
- we update the other repositories that we vendor that made a similar
change from glog to klog
  * github.com/kubernetes/repo-infra
  * k8s.io/gengo/
  * k8s.io/kube-openapi/
  * github.com/google/cadvisor
- Entirely remove all references to glog
- Fix some tests by explicit InitFlags in their init() methods

Change-Id: I92db545ff36fcec83afe98f550c9e630098b3135
2018-11-10 07:50:31 -05:00
k8s-ci-robot
5581f52c0f
Merge pull request #69111 from rajansandeep/clustername
Adapt e2e tests for cluster-domain other than cluster.local
2018-11-01 23:45:22 -07:00
Sandeep Rajan
4c8a65ac01 configure cluster domain via flags 2018-11-01 12:27:54 -04: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
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
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
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