Commit Graph

3209 Commits

Author SHA1 Message Date
Patrick Ohly
84990d53cf e2e: improve description of framework callbacks
When Ginkgo shows a BeforeEach/AfterEach/DeferCleanup, then it can only show
the source code where the callback was registered because there is no
description parameter. This can be improved by passing a custom CodeLocation.

Because a description like "set up framework" might not be enough, the source
code is still shown, too.
2022-09-13 14:27:32 +02:00
Kubernetes Prow Robot
d7d82ad972 Merge pull request #112252 from piotrnosek/hpa-average-metrics
Add e2e HPA Tests: CPU and Memory Average with different aggregation methods: Average Value and Utilization
2022-09-12 09:41:24 -07:00
Kubernetes Prow Robot
3e9e41f82c Merge pull request #112389 from pohly/test-cleanup-flake
e2e: avoid random control plane output through GinkoWriter
2022-09-12 05:27:37 -07:00
Patrick Ohly
2e61dfbf1d e2e: avoid random control plane output through GinkoWriter
If the control plane emits anything at the time when the test runs, for example
"unable to sync kubernetes service", the test breaks because that additional
output is unexpected.
2022-09-12 12:02:37 +02:00
Patrick Ohly
d33e66b81b e2e: reduce built time for framework
Pulling the CreateKubeConfig function from the expensive to build
test/utils/apiserver package had a considerable impact on the overall build
time because that package depends on a lot of other packages.

Because only that one function is needed by the framework, that extra build
time can be avoided by moving it into its own package.
2022-09-10 17:56:23 +02:00
Piotr Nosek
3d7855392f HPA E2E Test: CPU / Memory: Average Value / Utilization 2022-09-09 16:06:55 +00:00
Patrick Ohly
7eb472246f e2e framework: use new apiserver helper package 2022-09-09 13:51:07 +02:00
Patrick Ohly
fc092eb145 e2e: remove cleanup actions
The framework.AddCleanupAction API was a workaround for Ginkgo v1 not invoking
AfterEach callbacks after a test failure. Ginkgo v2 not only fixed that, but
also added a DeferCleanup API which can be used to run some code if (and only
if!) the corresponding setup code ran. In several cases that makes the test
cleanup simpler.
2022-09-09 13:51:07 +02:00
Patrick Ohly
b7529097ca e2e framework: add unit test for test execution
This covers multiple facets of the current framework and of Ginkgo:

- Ginkgo output is verbose and includes detailed progress
  messages (BeforeEach/AfterEach tracing).
- Namespace creation.
- Order of callback invocation.
2022-09-09 13:51:07 +02:00
Patrick Ohly
f7864977b6 e2e internal: support Ginkgo v2 log time stamps
When using By or some other Ginkgo output functions, Ginkgo v2 now adds a time
stamp at the end of the line that we need to ignore. Will become relevant when
testing more complete output.
2022-09-08 22:50:01 +02:00
Patrick Ohly
53e1c7b4c3 e2e framework: remove AddAfterEach
For cleanup purposes the ginkgo.DeferCleanup is a better replacement for
f.AddAfterEach:
- the cleanup only gets executed when the corresponding setup code ran
  and can use the same local variables
- the callback runs after the test and before the framework
  deletes namespaces (as before)
- if one callback fails, the others still get executed

For the original purpose (https://github.com/kubernetes/kubernetes/pull/86177 "This is
very useful for custom gathering scripts.") it is now possible to use
ginkgo.AfterEach because it will always get executed. Just beware that its
callbacks run in first-in-first-out order.
2022-09-08 22:50:01 +02:00
Patrick Ohly
cbf94307ef e2e framework: clean up instance after all other code ran
In contrast to ginkgo.AfterEach, ginkgo.DeferCleanup runs the callback in
first-in-last-out order. Using it makes the following test code work as
expected:

    f := framework.NewDefaultFramework("some test")

    ginkgo.AfterEach(func() {
        // do something with f.ClientSet
    })

Previously, f.ClientSet was already set to nil by the framework's cleanup code.
2022-09-08 22:50:01 +02:00
Kubernetes Prow Robot
c870f1ddc7 Merge pull request #111865 from piotrnosek/hpa-tests-batch
Add e2e HPA tests: Scale to zero, scale a CRD targetRef
2022-09-01 05:43:05 -07:00
Piotr Nosek
e252fcc429 HPA E2E Test: Scale to zero, scale custom CRD 2022-08-31 18:34:52 +00:00
Kubernetes Prow Robot
d436f5d0b7 Merge pull request #111954 from hj-johannes-lee/fix-typo-1
Fix typo of e2e utils under network framework
2022-08-23 20:09:16 -07:00
Kubernetes Prow Robot
95dab53bc2 Merge pull request #111907 from mythi/e2e-pod-wait-timeout
e2e: use user provided timeout in WaitForPodsWithLabelRunningReady
2022-08-23 20:08:52 -07:00
Davanum Srinivas
9bbf01bae9 Remove references to openstack and cinder
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2022-08-22 16:43:14 -04:00
Hyeongju Johannes Lee
0bd220ca39 Fix typo of e2e utils under network framework
Fix typo "contaienr" to "container"
2022-08-22 14:15:09 +03:00
Mikko Ylinen
3128b1a773 e2e: use user provided timeout in WaitForPodsWithLabelRunningReady
The WaitFor* refactoring in 07c34eb400 had an oversight what timeout parameter
is used for calling WaitForAllPodsCondition() in WaitForPodsWithLabelRunningReady()
so the calls to WaitForPodsWithLabelRunningReady() ended up ignoring the user
provided timeout. Fix that.

Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
2022-08-18 12:05:06 +03:00
Kubernetes Prow Robot
f0bd02ca5e Merge pull request #111346 from piotrnosek/hpa-tests-2
Add e2e HPA Behavior tests: scale up/down limited by number of Pods / min, scale up/down limited by percentage / min
2022-08-09 03:14:50 -07:00
Kubernetes Prow Robot
15d290f280 Merge pull request #111521 from wongma7/ephemeralcopy
Clear ephemeral container resources field when creating one in volume test
2022-08-04 07:51:50 -07:00
Piotr Nosek
aa9ed5209b Add e2e HPA Behavior tests: scale up&down limited by number of Pods per minute, scale up&down limited by percentage of Pods per minute 2022-08-04 09:33:52 +00:00
Kubernetes Prow Robot
feec95583a Merge pull request #111669 from pohly/trim_report_framework
e2e: trim junit report for Spyglass
2022-08-03 20:49:58 -07:00
Kubernetes Prow Robot
4b6134b6dc Merge pull request #111090 from kinvolk/rata/userns-support-2022
Add support for user namespaces phase 1 (KEP 127)
2022-08-03 13:05:47 -07:00
Dave Chen
c299a12cf2 e2e: trim junit report for Spyglass, avoid "open stdout"
Including the full information for successful tests makes the resulting XML
file too large for the 200GB limit in Spyglass when running large jobs (like
scale testing).

The original solution from https://github.com/kubernetes/kubernetes/pull/111627
broke JUnit reporting in other test suites, in particular
test/e2e_node. Keeping the code inside the framework ensures that all test
suites continue to have the JUnit reporting.

AfterReadingAllFlags is a good place to set this up because all test suites
using the test context are expected to call it before running tests and after
parsing flags.

Removing the ReportEntries added by ginkgo.By from all test reports usually
avoids the `system-err` part in the JUnit file, which in Spyglass avoids
the extra "open stdout" button.

Co-authored-by: Patrick Ohly <patrick.ohly@intel.com>
Co-authored-by: Dave Chen <dave.chen@arm.com>
2022-08-03 17:56:36 +02:00
Danielle
5b312246c8 Revert "e2e: Trim junit reporter to adapt with testgrid" 2022-08-03 15:45:09 +02:00
Kubernetes Prow Robot
cf777ab782 Merge pull request #111627 from chendave/trim_report
e2e: Trim junit reporter to adapt with testgrid
2022-08-03 04:51:52 -07:00
Giuseppe Scrivano
9e9b23fd3c pkg/apis, staging: add HostUsers to pod spec
It is used to request that a pod runs in a unique user namespace.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Signed-off-by: Rodrigo Campos <rodrigoca@microsoft.com>
Co-authored-by: Rodrigo Campos <rodrigoca@microsoft.com>
2022-08-02 23:47:58 +02:00
Roman Bednar
42b24b7baf move storage class helpers to utils 2022-08-02 20:52:04 +02:00
Kubernetes Prow Robot
9ef16e7908 Merge pull request #108554 from pacoxu/bad-input-1
add deprecated warning for node beta labels in pv/sc/rc/csi storage capacity
2022-08-02 10:23:44 -07:00
Dave Chen
5fcb8e5153 e2e: trim junit report for Spyglass
Including the full information for successful tests makes the resulting XML
file too large for the 200GB limit in Spyglass when running large jobs (like
scale testing).

Co-authored-by: Patrick Ohly <patrick.ohly@intel.com>
Co-authored-by: Dave Chen <dave.chen@arm.com>
2022-08-03 00:32:24 +08:00
Kubernetes Prow Robot
719f3cf8da Merge pull request #111555 from tallclair/pod-e2e-retry
Minor fixes to e2epod wait logic
2022-08-02 02:09:45 -07:00
Kubernetes Prow Robot
cf2800b812 Merge pull request #111402 from verb/111030-ec-ga
Promote EphemeralContainers feature to GA
2022-07-29 19:29:20 -07:00
Tim Allclair
b289c23394 [e2epod] wait: Don't override non-timeout errors 2022-07-29 17:11:50 -07:00
Tim Allclair
55ec0f2d9d [e2epod] wait: Don't retry on 50X errors 2022-07-29 14:56:33 -07:00
Matthew Cary
738b458f8e enable gce pd driver via a flag rather than an env var
Change-Id: Ib7c99083ad334e5f6dd152e376a303de794e0bf1
2022-07-28 17:23:28 -07:00
Matthew Wong
6390281a1c Clear ephemeral container resources field when creating one in volume test 2022-07-28 15:47:14 -07:00
Davanum Srinivas
a9593d634c Generate and format files
- Run hack/update-codegen.sh
- Run hack/update-generated-device-plugin.sh
- Run hack/update-generated-protobuf.sh
- Run hack/update-generated-runtime.sh
- Run hack/update-generated-swagger-docs.sh
- Run hack/update-openapi-spec.sh
- Run hack/update-gofmt.sh

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2022-07-26 13:14:05 -04:00
Lee Verberne
d238e67ba6 Remove EphemeralContainers feature-gate checks 2022-07-26 02:55:30 +02:00
Kubernetes Prow Robot
f93a37e314 Merge pull request #111253 from piotrnosek/hpa-tests-1
Add e2e HPA Behavior tests: scale down stabilisation, scale up disabled, scale down disabled
2022-07-21 12:59:42 -07:00
Piotr Nosek
1c455c10de Add e2e HPA Behavior tests: scale down stabilisation, scale up disabled, scale down disabled. 2022-07-20 09:03:31 +00:00
Antonio Ojea
fc6acb2350 Revert "Revert the workaround needed to cleanup for Ginkgo V1"
This reverts commit 6a82ba82b1.
2022-07-20 10:48:35 +02:00
Dave Chen
6a82ba82b1 Revert the workaround needed to cleanup for Ginkgo V1
Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-07-11 14:49:40 +08:00
alingse
3bf9a559b6 fix pass []any as any in variadic function 2022-07-09 18:53:54 +08:00
Dave Chen
3833695e75 Redirect klog out to GinkgoWriter
Co-authored-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-07-08 10:46:11 +08:00
Dave Chen
82ac6be0e9 Custom reporter of Junit report is no longer needed
Ginkgo is now writing the JUnit file itself. The -report-dir parameter is used
as fallback for enabling JUnit output in case that users haven't migrated to
the new -junit-report parameter.

Co-authored-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-07-08 10:46:11 +08:00
Dave Chen
5ac8105b86 Set Ginkgo config by the method of GinkgoConfiguration()
Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-07-08 10:46:11 +08:00
Dave Chen
fd4b5b629b Stop using the deprecated method CurrentGinkgoTestDescription
Besides, the using of method might lead to a `concurrent map writes`
issue per the discussion here: https://github.com/onsi/ginkgo/issues/970

Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-07-08 10:46:11 +08:00
Dave Chen
20498fd65d Generate conformance test spec with offset decorator
`FullStackTrace` is not available in v2 if no exception found
with test execution.

The change is needed for conformance test's spec validation.

pls see: https://github.com/onsi/ginkgo/issues/960 for details.

Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-07-08 10:46:11 +08:00
Dave Chen
f792256954 e2e: adapt output tests to Ginkgo v2 and Gomega 1.19
Full stack traces are on by default. The approach for collecting results is
different. Tests run in their own goroutine, therefore runTests is no longer
part of their callstack. To cover stack traces with more than one entry, a new
test case gets added with a separate helper function.

Gomega object formatting now includes the type.

This removes the last remaining reference to Ginkgo v1.

Co-authored-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-07-08 10:46:11 +08:00