Commit Graph

3515 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
6eeb48cd7f
Merge pull request #122401 from jongwooo/hotfix/correct-typo-from-gingko-to-ginkgo
Correct typo from 'gingko' to 'ginkgo'
2023-12-21 06:42:10 +01:00
Mohamed Omar Zaian
c8a2d5684d etcd: Update to version 3.5.11 2023-12-20 11:18:35 +01:00
Jongwoo Han
725b107f49
Correct typo from 'gingko' to 'ginkgo'
Signed-off-by: Jongwoo Han <jongwooo.han@gmail.com>
2023-12-20 10:31:53 +09:00
Kubernetes Prow Robot
42ab3b7b40
Merge pull request #121833 from borg-land/fix-lb-logic
Look for the ingress-uid cm after the Loadbalancer is created
2023-12-19 00:26:39 +01:00
Kubernetes Prow Robot
00e4cba038
Merge pull request #122232 from pohly/e2e-test-label-error
e2e framework: provide more guidance to developers
2023-12-14 07:27:21 +01:00
Kubernetes Prow Robot
bd24ec42fd
Merge pull request #121877 from pohly/e2e-pod-context-cleanup
e2e: pass context into pod helper functions
2023-12-13 23:55:37 +01:00
Patrick Ohly
1d11bc4aca e2e framework: provide more guidance to developers
Developers who are unaware of the Ginkgo wrappers in the framework might end up
passing the label decorators directly to Ginkgo. Previously, this led to an
error that was hard to understand without background knowledge:

    Unknown Decorator
    ginkgo.It("must deallocate on non graceful node shutdown", f.WithSerial(), f.WithDisruptive(), f.WithSlow(), func(ctx context.Context) {
    /nvme/gopath/src/k8s.io/kubernetes/test/e2e/dra/dra.go:527
      [It] node was passed an unknown decorator:
      'framework.label{parts:[]string{"Serial"}, extra:""}'

    Learn more at: http://onsi.github.io/ginkgo/#node-decorators-overview

When including a special field that Ginkgo dumps the message gets a bit better:

    Unknown Decorator
    ginkgo.It("must deallocate on non graceful node shutdown", f.WithSerial(), f.WithDisruptive(), f.WithSlow(), func(ctx context.Context) {
    /nvme/gopath/src/k8s.io/kubernetes/test/e2e/dra/dra.go:527
      [It] node was passed an unknown decorator:
      'framework.label{parts:[]string{"Serial"}, extra:"", explanation:"If you see
      this as part of an \"Unknown Decorator\" error from Ginkgo, then you need to
      replace the ginkgo.It/Context/Describe call with the corresponding
      framework.It/Context/Describe or (if available) f.It/Context/Describe."}'

    Learn more at: http://onsi.github.io/ginkgo/#node-decorators-overview
2023-12-08 08:04:18 +01:00
James Sturtevant
c99b5a208d
Check error from gomega
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-11-14 21:29:56 +00:00
James Sturtevant
49e8c196c3
use framework gomega
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-11-14 19:35:04 +00:00
Patrick Ohly
f9ceab37ca e2e: pass context into pod helper functions
This ensures that progress reports and timeouts work.
2023-11-14 15:57:55 +01:00
James Sturtevant
4b1b9a198a
Fix issue with client rate limiter when polling
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-11-13 20:00:33 +00:00
Patrick Ohly
617f2132fe e2e: avoid redundant labels in JUnit file
Because labels are currently typically added also to the spec texts, we don't
need to write them separately.

This redundancy got introduced in f2cfbf44b1 when registering all inline tags
also as labels.
2023-11-13 08:08:09 +01:00
upodroid
4c06bd5bbb fix bad assumptions in gce network tests 2023-11-10 15:33:33 -06:00
Kubernetes Prow Robot
24e6b03780
Merge pull request #121708 from aravindhp/add-azure-framework-ssh-provider
framework: add SSH support for Azure
2023-11-04 17:19:13 +01:00
Kubernetes Prow Robot
953afbb328
Merge pull request #121193 from sohankunkerkar/kubelet-config-dir
Retarget drop-in kubelet configuration dir feature to Alpha
2023-11-03 23:59:29 +01:00
Sohan Kunkerkar
ad7b9b56f5 test/e2e_node: add e2e test for Kubeletconfig drop-in dir
Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>
Co-authored-by: Peter Hunt <pehunt@redhat.com>
2023-11-03 17:49:22 -04:00
Kubernetes Prow Robot
66e20ff891
Merge pull request #121394 from pohly/e2e-framework-test-labels
e2e: test labels
2023-11-03 17:35:03 +01:00
Aravindh Puthiyaparambil
34b2c4e1ed
framework: add SSH support for Azure
Add Azure to the list of providers that support accessing nodes
using SSH.
Note: This will require a follow up PR adding the required
environment variables, AZURE_SSH_KEY, KUBE_SSH_BASTION to the test
configuration.
2023-11-02 15:01:31 -07:00
Mohamed Omar Zaian
3c268b7524 etcd: Update to version 3.5.10 2023-11-02 10:30:41 +01:00
Patrick Ohly
338fe7ad55 e2e framework: validate test definitions
This checks that the With* label functions are used instead of the previous
inline tags. To catch strings passed to Ginkgo directly instead of the
framework wrapper functions, the final test specs are checked.
2023-11-01 15:17:34 +01:00
Michal Wozniak
e50cc47a06 Improve execution time for job e2e tests 2023-10-27 19:50:04 +02:00
Kubernetes Prow Robot
e0eb5edbf9
Merge pull request #121487 from mimowo/fix-flaky-e2e-tests-for-job
Do not preallocate node for Job e2e tests to fix flakes
2023-10-26 01:08:32 +02:00
Kubernetes Prow Robot
8caa6fb2e0
Merge pull request #121368 from mimowo/backoff-limit-per-index-e2e-test
Backoff limit per index e2e test
2023-10-25 13:18:37 +02:00
Kubernetes Prow Robot
4294c35fc9
Merge pull request #121297 from calvinballing/spellcheck-markdown
Fix typos in markdown
2023-10-25 13:18:26 +02:00
Michal Wozniak
69ca55f136 Do not preallocate node for Job e2e tests to fix flakes 2023-10-25 12:11:08 +02:00
Kubernetes Prow Robot
9ae55e9886
Merge pull request #121391 from pohly/e2e-storage-test-labels
e2e storage: test labels
2023-10-24 10:12:40 +02:00
Michal Wozniak
b06675724d Add e2e test for backoffLimitPerIndex 2023-10-24 09:11:35 +02:00
Patrick Ohly
27afb7d75d e2e storage: use framework to tag tests
This makes it possible to select tests through `ginkgo --label-filter`
also for the custom labels.
2023-10-23 17:32:06 +02:00
Kevin Hannon
42945ea6dc update suspend test to match other test cases 2023-10-20 13:34:37 -04:00
Kubernetes Prow Robot
3825e206cb
Merge pull request #121300 from stuton/e2e-tests-for-ready-pods
e2e: add test for checking ready of job status
2023-10-20 19:24:38 +02:00
Kubernetes Prow Robot
349b856505
Merge pull request #121358 from pohly/e2e-framework-ginkgowrapper-labels
e2e framework: allow random ordering of tags and text, fix some functions
2023-10-20 14:42:20 +02:00
Anton Stuchinskii
a913abe191 e2e test for checking ready of job status 2023-10-20 14:42:13 +02:00
Kubernetes Prow Robot
7b9d244efd
Merge pull request #120965 from bart0sh/PR122-DRA-unexpected-node-shutdown
DRA: e2e: test non-graceful node shutdown
2023-10-20 11:58:47 +02:00
Patrick Ohly
81b960efef e2e framework: allow random ordering of tags and text, fix some functions
There are some tests which want to insert a tag before the main Describe text,
for example:
   sigDescribe("[Feature:Windows] Cpu Resources [Serial]",
               skipUnlessWindows(func() { ... })

In order to support this without change existing test names, it must be
possible to do this instead:
   sigDescribe(feature.Windows, "Cpu Resources", framework.WithSerial(),
               skipUnlessWindows(func() { ... })

There are similar examples for the other functions.

While at it, replace one left-over panic with ReportBug and add the missing
`NodeFeature:` prefix.
2023-10-20 11:14:57 +02:00
Ed Bartosh
fb9f2f5bc5 DRA: e2e: test non-graceful node shutdown 2023-10-19 22:09:11 +03:00
bzsuni
8775d805fa use PollUntilContextTimeout to replace PollImmediateWithContext in test
Signed-off-by: bzsuni <bingzhe.sun@daocloud.io>
2023-10-19 22:50:21 +08:00
Kubernetes Prow Robot
39d3580d17
Merge pull request #121139 from bart0sh/PR123-e2e-move-node-rediness-check-to-DeferCleanup
e2e: move AllNodesReady check to DeferCleanup
2023-10-18 21:29:28 +02:00
Kubernetes Prow Robot
e7fd5b85ed
Merge pull request #121068 from carlory/cleanup-e2e-framework-deprecated-funcs
clean up deprecated funcs in e2e framework
2023-10-17 21:28:57 +02:00
Jim Hays
911700e64e Fix typos in markdown 2023-10-17 10:55:40 -04:00
Patrick Ohly
7d077f9271 e2e: move AllNodesReady check to DeferCleanup
Some test cases can make nodes not ready and use DeferCleanup to bring
nodes back online. Checking if all nodes are online would fail
in such cases as AfterEach runs before DeferCleanup.

Scheduling nodes readines check to DeferCleanup should solve this
issue as nodes would be brought back to a `Ready` state before the
check.
2023-10-17 16:45:57 +03:00
Kubernetes Prow Robot
675a64eaa6
Merge pull request #121129 from carlory/cleanup-e2e-framework-equal
remove deprecated framework.ExpectEqual
2023-10-14 23:50:37 +02:00
carlory
2c1836bc24 remove deprecated framework.ExpectEqual 2023-10-11 12:43:10 +08:00
Patrick Ohly
f2d34426f8 e2e: enhance SIGDescribe
framework.SIGDescribe is better because:
- Ginkgo uses the source code location of the test, not of the wrapper,
  when reporting progress.
- Additional annotations can be passed.

To make this a drop-in replacement, framework.SIGDescribe generates a function
that can be used instead of the former SIGDescribe functions.

windows.SIGDescribe contained some additional code to ensure that tests are
skipped when not running with a suitable node OS. This gets moved into a
separate wrapper generator, to allow using framework.SIGDescribe as intended.
To ensure that all callers were modified, the windows.sigDescribe isn't
exported anymore (wasn't necessary in the first place!).
2023-10-10 18:15:49 +02:00
Patrick Ohly
39b6916cbc e2e: add wrapper functions to annotate tests
These wrapper functions set labels in addition to injecting the annotation into
the test text. It then becomes possible to select tests in different ways:

    ginkgo -v --focus="should respect internalTrafficPolicy.*\[FeatureGate:ServiceInternalTrafficPolicy\]"

    ginkgo -v --label-filter="FeatureGate:ServiceInternalTrafficPolicy"

    ginkgo -v --label-filter="Beta"

When a test runs, ginkgo shows it as:

    [It] should respect internalTrafficPolicy=Local Pod to Pod [FeatureGate:ServiceInternalTrafficPolicy] [Beta] [FeatureGate:ServiceInternalTrafficPolicy, Beta]

The test name and the labels at the end are in different colors. Embedding the
annotations inside the text is redundant and only done because users of the e2e
suite might expect it. Also, our tooling that consumes test results currently
doesn't know about ginkgo labels.

Environments, features and node features as described by
https://github.com/kubernetes/enhancements/tree/master/keps/sig-testing/3041-node-conformance-and-features
are also supported.

The framework and thus (at the moment) test/e2e do not have any pre-defined
environments and features. Adding those and modifying tests will follow in
a separate commit.
2023-10-10 18:15:49 +02:00
Patrick Ohly
535ab74346 e2e framework: track and report internal bugs
If something goes wrong during the test registration phase, the only solution
so far was to panic. This is not user-friendly and only allows to report one
problem at a time.

If initialization can continue, then a better solution is to record a bug,
continue, and then report all bugs together.

This also works when just listing tests. The new verify-e2e-suites.sh uses that
to check all test suites (identified as "packages that call
framework.AfterReadingAllFlags", with some exceptions) as part of
pull-kubernetes-verify.

Example output for a fake

    framework.RecordBug(framework.NewBug("fake bug during SIGDescribe", 0))

in test/e2e/storage/volume_metrics.go:
```
$ hack/verify-e2e-suites.sh
go version go1.21.1 linux/amd64
ERROR: E2E test suite invocation failed for test/e2e.
   ERROR: E2E suite initialization was faulty, these errors must be fixed:
   ERROR: test/e2e/storage/volume_metrics.go:49: fake bug during SIGDescribe
E2E suite test/e2e_kubeadm passed.
E2E suite test/e2e_node passed.
```
2023-10-10 18:15:46 +02:00
Patrick Ohly
3afdcc03ea e2e framework: list specs and labels
-list-tests is a more concise alternative for `ginkgo --dry-run` with one line
per test. In contrast to `--dry-run`, it really lists all tests. `--dry-run`
without additional parameters uses the default skip expression from the E2E
context, which filters out flaky and feature-gated tests. The output includes
the source code location where each test is defined. It is sorted by test
name (not source code location) because that order is independent of
reorganizing the source code and ordering by location can be achieved with
"sort".

-list-labels has no corresponding feature in Ginkgo.

One possible usage is to figure out what values might make sense for
-focus/skip/label-filter.

Unit tests will follow in a future commit.
2023-10-10 17:15:59 +02:00
carlory
137ad9bf2b clean up deprecated funcs in e2e framework 2023-10-09 16:51:53 +08:00
carlory
bb02d0feba fix incorrect Consistently due to missing assignment when create a newAsyncAssertion 2023-10-08 13:23:46 +08:00
Kubernetes Prow Robot
9af7096c89
Merge pull request #120968 from borg-land/remove-kubeup-tests-1
Remove an e2e test specific to kubeup clusters - Part One
2023-10-06 19:20:11 +02:00
upodroid
243ba5fb6b remove an e2e test specific to kubeup clusters 2023-10-02 16:21:41 +01:00