Commit Graph

14478 Commits

Author SHA1 Message Date
Patrick Ohly
5088b2ee2f e2e storage: read/write + read-only ephemeral inline volume test, data sharing
The assumption so far was that all drivers support read/write
volumes. That might not necessarily be true, so we have to let the
test driver specify it and then test accordingly.

Another aspect that is worth testing is whether the driver correctly
creates a new volume for each pod even if the volume attributes are
the same. However, drivers are not required to do that, so again we
have to let the test driver specify that.
2019-08-28 12:20:54 +02:00
Patrick Ohly
cead39cc97 e2e storage: wait for pod deletion
After deleting a pod, we need to be sure that it really is gone,
otherwise there is a race condition: if we remove the CSI driver that
is responsible for the volume used by the pod before the pod is
actually deleted, deleting the pod will fail.
2019-08-28 12:20:54 +02:00
Patrick Ohly
7d2ad805a9 e2e storage: multi-volume and multi-pod tests for inline ephemeral volumes
Multiple pods using the same data and multiple inline ephemeral
volumes per pod are additional cases that are worth checking.
2019-08-28 12:20:54 +02:00
Patrick Ohly
55334fb9e9 e2e storage: check NodeUnpublishVolume in csi-mock tests
Once we have deleted the pod and the volume, we want to be sure that
NodeUnpublishVolume was called for it. The main motivation was to
check this for inline ephemeral volumes, but the same additional check
also makes sense for other volumes.
2019-08-28 12:20:54 +02:00
Patrick Ohly
cf125a2db3 e2e storage: enable testing of ephemeral inline volumes with hostpath CSI driver
We need the 1.2.0 driver for that because that has support for
detecting the volume mode dynamically, and we need to deploy a
CSIDriver object which enables pod info (for the dynamic detection)
and both modes (to satisfy the new mode sanity check).
2019-08-28 12:20:54 +02:00
Patrick Ohly
6c6930a088 e2e storage: synchronize .yaml files with latest upstream releases
This ensures that the files are in sync with:
   hostpath: v1.2.0-rc3
   external-attacher: v2.0.1
   external-provisioner: v1.3.0
   external-resizer: v0.2.0
   external-snapshotter: v1.2.0

driver-registrar/rbac.yaml is obsolete because only
node-driver-registrar is in use now and does not need RBAC rules.

mock/e2e-test-rbac.yaml was not used anywhere.

The README.md files were updated to indicate that these really are
files copied from elsewhere. To avoid the need to constantly edit
these files on each update, <version> is used as placeholder in the URL.
2019-08-28 12:18:36 +02:00
Kubernetes Prow Robot
61e2f52e38 Merge pull request #81754 from apelisse/version-fields
Add FieldsType field to ManagedFields to track content format
2019-08-28 01:37:50 -07:00
Kubernetes Prow Robot
dccd28269a Merge pull request #81467 from bertinatto/e2e_volume_expand
Graduate Volume Expansion to Beta + e2e tests
2019-08-28 01:37:25 -07:00
Kubernetes Prow Robot
0a784c5dc9 Merge pull request #78738 from jennybuckley/apply-only
Don't start tracking field management until object has been applied
2019-08-27 22:41:18 -07:00
Kubernetes Prow Robot
07e0cce409 Merge pull request #81750 from aojea/fixdnsIPv6
Fix e2e DNS IPv6 CI
2019-08-27 19:38:06 -07:00
Kubernetes Prow Robot
ab13cf1055 Merge pull request #81691 from MrHohn/svc-finalizer-beta
Promote service load balancer finalizer to Beta
2019-08-27 19:37:48 -07:00
Kubernetes Prow Robot
870bed8522 Merge pull request #80998 from alejandrox1/e2e-frmaework-pv-util
Refactoring pod related functions from pv_util to pod pkg
2019-08-27 19:37:21 -07:00
Jennifer Buckley
f99252f2c6 Add issue to TODO 2019-08-27 15:00:15 -07:00
Antoine Pelisse
ff4e1f3592 Add new FieldsType to clarify the format of Fields 2019-08-27 14:52:36 -07:00
alejandrox1
7c161d6a5f Refactoring pod related functions from pv_util to pod pkg
Moving pod related functions from e2e/framework/pv_util.go to
e2e/framework/pod in order to allow refactoring of pv_util.go into its
own package.

Signed-off-by: alejandrox1 <alarcj137@gmail.com>
2019-08-27 12:27:45 -04:00
Kubernetes Prow Robot
001bb43ad8 Merge pull request #74925 from lee0c/windows-dns-config-tests
Windows dns config test
2019-08-27 09:24:42 -07:00
Fabio Bertinatto
81572e5254 Enable CSI e2e tests for volume expansion 2019-08-27 17:33:41 +02:00
Fabio Bertinatto
73f31afd5d Graduate volume expansion to beta 2019-08-27 17:33:41 +02:00
Antonio Ojea
930a1321da DNS e2e tests differentiate between IP family
The e2e DNS tests differentiate between IP family to
avoid false positives with dual stack clusters.
2019-08-27 12:57:40 +02:00
Antonio Ojea
766d79bbf5 Make TestContext.IPFamily global for parallel testing
it turns out that the framework.TestContext.IPFamily variable is
not available for the DNS tests if they don't run in the initial
Ginkgo node when running in parallel.

We add a function to the framework to allow us to run command
only once per each Ginkgo node parallel execution.

It also adds a method to detect if the cluster is IPv6.

The use of the framework.TestContext.IPFamily variable guarantees
consistency all over the testing because this variable is only
assigned at the beginning of the testing.
2019-08-27 12:54:52 +02:00
Kubernetes Prow Robot
bccf68b4ee Merge pull request #81662 from bclau/test-images/documentation-update
test images: Adds README containing image building process
2019-08-27 00:53:08 -07:00
Kubernetes Prow Robot
927f45191e Merge pull request #81527 from yastij/move-controller-util
move WaitForCacheSync to the sharedInformer package
2019-08-27 00:52:54 -07:00
Kubernetes Prow Robot
ee73d27d51 Merge pull request #81727 from odinuge/flaky-hugepage-test
Fix flaky hugepages tests by decreasing page count
2019-08-26 20:54:52 -07:00
Patrick Lang
0fd18fc06f Updating log after framework code refactor 2019-08-26 21:52:57 +00:00
Lee Cattarin
9e0a1d20c4 Remove ndots check as it doesn't apply to windows 2019-08-26 21:52:57 +00:00
Lee Cattarin
c0e079bb15 Run hack/update-bazel 2019-08-26 21:52:57 +00:00
Lee Cattarin
d63c90e25f Change custom DNS test to use ipconfig instead of resolv.conf 2019-08-26 21:52:57 +00:00
Michelle Cone
8858425a89 Add e2e DNS tests to windows tests 2019-08-26 21:52:57 +00:00
Kubernetes Prow Robot
39724859b5 Merge pull request #81849 from oomichi/move-PrintPerfData
Move PrintPerfData to the test
2019-08-26 11:54:38 -07:00
Kubernetes Prow Robot
2bd3226564 Merge pull request #81814 from oomichi/replace-e2elog-framework-job-node
Use log functions of core framework on sub [j-l]
2019-08-26 11:54:22 -07:00
Kubernetes Prow Robot
f81ab5a9fc Merge pull request #81342 from knight42/fix/kubectl-patch-scale
Refactor `kubectl scale` to patch scale subresource
2019-08-26 11:53:54 -07:00
Kubernetes Prow Robot
087aafc18d Merge pull request #80568 from pohly/ephemeral-mode-check
ephemeral mode check
2019-08-26 11:53:40 -07:00
Kubernetes Prow Robot
1810bc8d82 Merge pull request #81925 from SataQiu/fix-test-kubeadm
e2e_kubeadm: use log functions of core framework
2019-08-26 10:20:50 -07:00
Kubernetes Prow Robot
52f708dc28 Merge pull request #81855 from oomichi/replace-e2elog-framework-perf-replicaset
Use log functions of core framework on sub p*
2019-08-26 10:20:24 -07:00
Patrick Ohly
cdaba2bea3 e2e logger test: handle paths in Kubernetes CI
Source code paths during //test/e2e/framework/log:go_default_test in
the Kubernetes CI start with relative paths. To avoid too broad
matching of the regex, those paths that occur in practice are named
explicitly as alternatives to the leading slash.
2019-08-26 12:39:08 +02:00
Patrick Ohly
f021d6590e bazel update 2019-08-26 12:39:00 +02:00
Patrick Ohly
259bb3bef5 e2e: consistent failure logging
All failures are worth logging immediately, not just unexpected
errors. That helps understand tests that have long-running cleanup
operations with their own logging, because the failure will be visible
inside the test output.

The logging in framework.ExpectNoError also was rather poor, because
it only showed the error, but not the additional information about it.

Tests suites now should use log.Fail as Gomega failure handler instead
of ginkgowrapper.Fail. log.Fail will handle the logging for all
failures before proceeding to record the failure in Ginkgo.

Because logging is always done also after a test failure, additional
failures during cleanup are now visible. Ginkgo itself just ignores
them.
2019-08-26 12:38:35 +02:00
Patrick Ohly
311b66ada1 e2e: unit test for logger.go and ginkgowrapper.go
This test runs a fake Ginkgo suite with various errors and checks how
logger.go respectively ginkgowrapper.go handle this. Right now, the
outcome is sub-optimal:

- some test failures (those that use framework.Failf or
  framework.ExpectNoError) are logged immediately, Gomega failures
  are not
- framework.ExpectNoError logs just the error, which is often useless
  without the additional explanation
- failures that occur after some others are not reported at all;
  this can happen in cleanup code and while that code should better
  be written so that it contines instead of failing on an assertion,
  in practice quite a lot of code fails and when it does, the output
  would be useful to have
- the full stack trace is odd and doesn't start with the expected
  function name

Example output:

• Failure [0.002 seconds]
log
/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:35
  fails [It]
  /nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:39

  Jul 17 12:00:52.545: I'm failing.

  /nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:41

  Full Stack Trace
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger.go:51 +0x143
  k8s.io/kubernetes/test/e2e/framework/log.Failf(...)
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger.go:43
  k8s.io/kubernetes/test/e2e/framework/log_test.glob..func1.2.1(...)
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:41
  k8s.io/kubernetes/test/e2e/framework/log_test.glob..func1.2()
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:42 +0x52
  k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync(0xc00029b020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:65 +0x1c8
  testing.tRunner(0xc000358600, 0x19818c0)
  	/nvme/gopath/go/src/testing/testing.go:865 +0xc0
  created by testing.(*T).Run
  	/nvme/gopath/go/src/testing/testing.go:916 +0x35a

------------------------------
Jul 17 12:00:52.545: INFO: before
Jul 17 12:00:52.545: INFO: I'm failing.
Jul 17 12:00:52.547: INFO: after
• Failure [0.002 seconds]
log
/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:35
  asserts [It]
  /nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:44

  false is never true
  Expected
      <bool>: false
  to equal
      <bool>: true

  /nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:45

  Full Stack Trace
  	/nvme/gopath/src/k8s.io/kubernetes/vendor/github.com/onsi/gomega/internal/assertion/assertion.go:75 +0x1f1
  k8s.io/kubernetes/vendor/github.com/onsi/gomega/internal/assertion.(*Assertion).To(0xc00035f6c0, 0x1b42140, 0xc000350dd0, 0xc000350de0, 0x1, 0x1, 0x42e35f)
  	/nvme/gopath/src/k8s.io/kubernetes/vendor/github.com/onsi/gomega/internal/assertion/assertion.go:38 +0xc7
  k8s.io/kubernetes/test/e2e/framework/log_test.glob..func1.3()
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:45 +0x17e
  k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync(0xc00029b0e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:65 +0x1c8
  testing.tRunner(0xc000358600, 0x19818c0)
  	/nvme/gopath/go/src/testing/testing.go:865 +0xc0
  created by testing.(*T).Run
  	/nvme/gopath/go/src/testing/testing.go:916 +0x35a

------------------------------
Jul 17 12:00:52.548: INFO: before
Jul 17 12:00:52.549: INFO: after
• Failure [0.002 seconds]
log
/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:35
  error [It]
  /nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:47

  hard-coded error
  Unexpected error:
      <*errors.errorString | 0xc000351930>: {
          s: "I'm an error, nice to meet to.",
      }
      I'm an error, nice to meet to.
  occurred

  /nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:49

  Full Stack Trace
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/util.go:1376 +0x191
  k8s.io/kubernetes/test/e2e/framework.ExpectNoError(...)
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/util.go:1367
  k8s.io/kubernetes/test/e2e/framework/log_test.glob..func1.4()
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:49 +0xc9
  k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync(0xc00029b200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
  	/nvme/gopath/src/k8s.io/kubernetes/test/e2e/framework/log/logger_test.go:65 +0x1c8
  testing.tRunner(0xc000358600, 0x19818c0)
  	/nvme/gopath/go/src/testing/testing.go:865 +0xc0
  created by testing.(*T).Run
  	/nvme/gopath/go/src/testing/testing.go:916 +0x35a

------------------------------
Jul 17 12:00:52.550: INFO: before
Jul 17 12:00:52.550: INFO: Unexpected error occurred: I'm an error, nice to meet to.
Jul 17 12:00:52.551: INFO: after
2019-08-26 11:32:25 +02:00
SataQiu
d9bfff9976 e2e_kubeadm: use log functions of core framework 2019-08-26 13:56:14 +08:00
Kubernetes Prow Robot
36b2914207 Merge pull request #81809 from oomichi/replace-e2elog-framework-p
Use log functions of core framework on p*
2019-08-25 21:40:21 -07:00
Kubernetes Prow Robot
8e05e8346a Merge pull request #81693 from oomichi/replace-e2elog-framework-c-n
Use log functions of core framework on [c-n]
2019-08-24 04:48:24 -07:00
Kubernetes Prow Robot
e2f57be0c0 Merge pull request #77824 from roycaihw/webhook-trace
mutating webhook: audit log mutation existence and patch
2019-08-23 22:26:24 -07:00
Kubernetes Prow Robot
8dc4b1b585 Merge pull request #80213 from bclau/tests/skips-windows-unrelated-tests
tests: Skips Windows-unrelated tests on Windows
2019-08-23 20:56:25 -07:00
Kubernetes Prow Robot
220498b83a Merge pull request #81107 from wongma7/expand-cleanup
Don't overwrite PVC with nil/empty object returned by failed Update
2019-08-23 13:31:31 -07:00
jennybuckley
2e669a7f22 Fix failing test 2019-08-23 13:11:09 -07:00
Kenichi Omichi
9e9c1709db Use log functions of core framework on sub p*
This makes sub packages of e2e test framework to use log functions
of core framework instead for avoiding circular dependencies.

NOTE: subpackage pod would make circular dependency if changing here.
      So we need to take care of it with another PR.
2019-08-23 19:50:47 +00:00
jennybuckley
3279c73945 Add tests 2019-08-23 12:45:36 -07:00
jennybuckley
9a12e37a6d Only update managedFields on update if it already exists 2019-08-23 12:38:08 -07:00
Kenichi Omichi
c8e0c94a8a Move PrintPerfData to the test
PrintPerfData is called at e2e node tests and it depends on e2elog
and e2emetrics. This moves the function to the place which calls
the function for removing unnecessary dependencies from e2e node
subpackage.
2019-08-23 19:33:24 +00:00
Haowei Cai
98ad20cc8f generated 2019-08-23 11:08:54 -07:00