Commit Graph

180 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
d4d9f7deee Merge pull request #119489 from carlory/cleanup-e2e-common-framework-equal
e2e_common: stop using deprecated framework.ExpectEqual
2023-08-17 03:25:22 -07:00
git-jxj
a5b3a4b738 cleanup: Update deprecated FromInt to FromInt32 (#119858)
* redo commit

* apply suggestions from liggitt

* update Parse function based on suggestions
2023-08-16 09:33:01 -07:00
Kubernetes Prow Robot
67c33faddd Merge pull request #117631 from skitt/intstr-fromint32-testing
Test: use new intstr functions
2023-08-15 15:16:27 -07:00
carlory
3e908c5bde e2e_common: stop using deprecated framework.ExpectEqual 2023-08-07 01:15:33 +08:00
Kubernetes Prow Robot
d17f3ba2cf Merge pull request #119168 from gjkim42/sidecar-allow-probes-and-lifecycle-hooks
Allow all probes and lifecycle for restartable init containers
2023-07-17 18:11:07 -07:00
Gunju Kim
d029f0ef06 Add restartable init container lifecycle hook e2e tests 2023-07-18 08:12:25 +09:00
Gunju Kim
f17e911777 Add restartable init container probe e2e tests 2023-07-18 08:12:25 +09:00
Gunju Kim
48eee4eed8 Fix e2e tests for overriding timoutGracePeriodSeconds of probes
Passing "/bin/sh" arguments to agnhost container has caused failure by
itself.

This fixes the container image, allowing it to properly test the restart
triggered by probe failure.
2023-07-18 02:31:36 +09:00
Kubernetes Prow Robot
c2b7d25ff8 Merge pull request #118691 from giuseppe/drop-check-for-volumes
apis: drop check for volumes with user namespaces
2023-06-29 16:23:56 -07:00
Kubernetes Prow Robot
2190775b69 Merge pull request #118280 from stlaz/e2e_psa_labels
Set all PSa labels in tests
2023-06-28 11:14:43 -07:00
Patrick Ohly
8b33e8bdd1 e2e: fix gomega.Expect calls without assertions
"gomega.Expect" is not the same as "assert" in C: it always has to be combined
with a statement of what is expected.

Found with the new ginkgolinter, for example:

    test/e2e/node/pod_resize.go:242:3: ginkgo-linter: "Expect": missing assertion method. Expected "Should()", "To()", "ShouldNot()", "ToNot()" or "NotTo()" (ginkgolinter)
              gomega.Expect(found == true)
2023-06-27 14:20:20 +02:00
Giuseppe Scrivano
531d38e323 features: rename UserNamespacesStatelessPodsSupport
now it is called UserNamespacesSupport since all kind of volumes are
supported.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-06-22 15:19:50 +02:00
Stanislav Laznicka
7f532891c9 e2e tests: set all PSa labels instead of just enforcing 2023-06-21 15:05:13 +02:00
Kubernetes Prow Robot
6fbf4824fd Merge pull request #116091 from pacoxu/cleanup-terminationGracePeriodSeconds
cleanup: remove ProbeTerminationGracePeriod feature tag on test
2023-06-14 09:26:18 -07:00
Dixita Narang
369e3faa4f Moving Kubelet Credential Provider test to common so that it can be run both as Node and Cluster test
Signed-off-by: Dixita Narang <ndixita@google.com>
2023-05-30 20:15:40 +00:00
Stephen Heywood
11a40406a1 Promote Ephemeral containers e2e test to Conformance 2023-05-29 11:46:10 +12:00
Paco Xu
7470a94f5a add some log for debuging 2023-05-24 09:34:03 +08:00
Kubernetes Prow Robot
e3db9232d9 Merge pull request #117895 from ii/create-ephemeralcontainer-test
Write e2e test for PodEphemeralcontainers endpoints + 2 Endpoints
2023-05-17 23:10:33 -07:00
Stephen Heywood
45603efecb Create e2e test for PodEphemeralcontainers endpoints
e2e test validates the following 2 endpoints
- readCoreV1NamespacedPodEphemeralcontainers
- replaceCoreV1NamespacedPodEphemeralcontainers
2023-05-17 06:30:43 +12:00
Clayton Coleman
6ac1bae281 test: Improve debug output of init container tests
When certain status conditions are not expected, we need to see
the nested objects, but %#v doesn't handle pointers well. Output
as simple encoded JSON.
2023-05-12 12:57:28 -04:00
Stephen Kitt
3418ceaca6 test: replace intstr.FromInt with intstr.FromInt32
This touches cases where FromInt() is used on numeric constants, or
values which are already int32s, or int variables which are defined
close by and can be changed to int32s with little impact.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2023-05-10 09:34:16 +02:00
Ed Bartosh
40521fe360 e2e framework: remove last dependency to k/k/pkg/kubelet
Copied and modified pod format function from
k/k/pkg/kubelet/util/format/pod.go to e2e/framework/pod/pod_client.go

This is the last dependency from e2e framework to k/k/pkg/kubelet
2023-04-14 22:32:06 +03:00
Tim Hockin
bc302fa414 Replace uses of ObjectReflectDiff with cmp.Diff
ObjectReflectDiff is already a shim over cmp.Diff, so no actual output
or behavior changes
2023-04-12 08:48:03 -07:00
Kubernetes Prow Robot
da87af638f Merge pull request #115856 from lanycrost/e2e-115780-grpc-probe-tests
Promote gRPC probe e2e test to Conformance
2023-03-09 01:06:03 -08:00
Paco Xu
e2b1050516 add some buff for pod initial restart count that is not zero 2023-03-02 17:01:38 +08:00
Paco Xu
efee9b4866 cleanup: promote ProbeTerminationGracePeriod to conformance tests 2023-03-02 17:00:16 +08:00
Khachatur Ashotyan
1033cf80df e2e: promote gRPC probe tests to conformance 2023-02-25 08:54:51 +04:00
Patrick Ohly
41f23f52d0 test: fix ginkgolinter issues
All of these issues were reported by https://github.com/nunnatsa/ginkgolinter.
Fixing these issues is useful (several expressions get simpler, using
framework.ExpectNoError is better because it has additional support for
failures) and a necessary step for enabling that linter in our golangci-lint
invocation.
2023-02-22 19:36:05 +01:00
Shogo Hida
7cbf007e47 Fix port number
Signed-off-by: Shogo Hida <shogo.hida@gmail.com>
2023-02-18 20:44:10 +09:00
Shogo Hida
26f95f475a Fix arguments
Signed-off-by: Shogo Hida <shogo.hida@gmail.com>
2023-02-18 09:51:17 +09:00
Shogo Hida
58ae449604 Change etcd to agnhost
Signed-off-by: Shogo Hida <shogo.hida@gmail.com>
2023-02-16 00:49:28 +09:00
Patrick Ohly
136f89dfc5 e2e: use error wrapping with %w
The recently introduced failure handling in ExpectNoError depends on error
wrapping: if an error prefix gets added with `fmt.Errorf("foo: %v", err)`, then
ExpectNoError cannot detect that the root cause is an assertion failure and
then will add another useless "unexpected error" prefix and will not dump the
additional failure information (currently the backtrace inside the E2E
framework).

Instead of manually deciding on a case-by-case basis where %w is needed, all
error wrapping was updated automatically with

    sed -i "s/fmt.Errorf\(.*\): '*\(%s\|%v\)'*\",\(.* err)\)/fmt.Errorf\1: %w\",\3/" $(git grep -l 'fmt.Errorf' test/e2e*)

This may be unnecessary in some cases, but it's not wrong.
2023-02-06 15:39:13 +01:00
Patrick Ohly
4d63e7d4d6 e2e: remove unused label filter from WaitForPodsRunningReady
None of the users of the functions passed anything other than nil or an empty
map and the implementation ignore the parameter - it seems like a candidate for
simplification.
2023-02-06 15:39:12 +01:00
Antonio Ojea
7f5ae1c0c1 Revert "e2e: wait for pods with gomega" 2023-02-06 12:08:22 +01:00
Patrick Ohly
222f655062 e2e: use error wrapping with %w
The recently introduced failure handling in ExpectNoError depends on error
wrapping: if an error prefix gets added with `fmt.Errorf("foo: %v", err)`, then
ExpectNoError cannot detect that the root cause is an assertion failure and
then will add another useless "unexpected error" prefix and will not dump the
additional failure information (currently the backtrace inside the E2E
framework).

Instead of manually deciding on a case-by-case basis where %w is needed, all
error wrapping was updated automatically with

    sed -i "s/fmt.Errorf\(.*\): '*\(%s\|%v\)'*\",\(.* err)\)/fmt.Errorf\1: %w\",\3/" $(git grep -l 'fmt.Errorf' test/e2e*)

This may be unnecessary in some cases, but it's not wrong.
2023-01-31 13:01:39 +01:00
Patrick Ohly
3ebab68c8a e2e: remove unused label filter from WaitForPodsRunningReady
None of the users of the functions passed anything other than nil or an empty
map and the implementation ignore the parameter - it seems like a candidate for
simplification.
2023-01-31 07:52:26 +01:00
David Porter
b96290c08f e2e node: Update runtime class handler skip logic
There are two runtime class tests which required the container runtime
config to include explicit configuration for `test-handler`. The current
logic skips these tests in non GCE environments. This skip is too strict
since the test is skipped in node e2e environments and in other
environments such as kind, which support running the test and also
configure `test-handler`.

Instead of skipping based on provider, add a new function
`NodeSupportsPreconfiguredRuntimeClassHandler` which examines the
underlying container runtime config and checks if the config includes
`test-handler`. The check is a bit brittle since it assumes container
runtime config paths, but it is a net improvement over skipping the test
entirely on non GCE environments.

This results in the test working in the common test environments, namely
GCE kube-up, node e2e, and kind.

Signed-off-by: David Porter <david@porter.me>
2023-01-24 14:43:24 -08:00
Patrick Ohly
6af5bf0585 e2e: enhance tests that check for pod staying pending
Using WaitTimeoutForPodRunningInNamespace followed by ExpectError was not very
precise (any error passed the check, not just the expected timeout) and
hard to read. Now the test's expectation is spelled out explicitly: the pod
must stay in pending.
2023-01-16 09:12:30 +01:00
TommyStarK
a46cfe5d1e test/e2e: Replace deprecated pointer function
Signed-off-by: TommyStarK <thomasmilox@gmail.com>
2023-01-05 18:43:58 +01:00
Patrick Ohly
2f6c4f5eab e2e: use Ginkgo context
All code must use the context from Ginkgo when doing API calls or polling for a
change, otherwise the code would not return immediately when the test gets
aborted.
2022-12-16 20:14:04 +01:00
Patrick Ohly
d4729008ef e2e: simplify test cleanup
ginkgo.DeferCleanup has multiple advantages:
- The cleanup operation can get registered if and only if needed.
- No need to return a cleanup function that the caller must invoke.
- Automatically determines whether a context is needed, which will
  simplify the introduction of context parameters.
- Ginkgo's timeline shows when it executes the cleanup operation.
2022-12-13 08:09:01 +01:00
Patrick Ohly
0d73c0d0e5 e2e: fix linter errors
Adding "ctx" as parameter in the previous commit led to some linter errors
about code that overwrites "ctx" without using it.

This gets fixed by replacing context.Background or context.TODO in those code
lines with the new ctx parameter.

Two context.WithCancel calls can get removed completely because the context
automatically gets cancelled by Ginkgo when the test returns.
2022-12-10 20:35:46 +01:00
Patrick Ohly
df5d84ae81 e2e: accept context from Ginkgo
Every ginkgo callback should return immediately when a timeout occurs or the
test run manually gets aborted with CTRL-C. To do that, they must take a ctx
parameter and pass it through to all code which might block.

This is a first automated step towards that: the additional parameter got added
with

    sed -i 's/\(framework.ConformanceIt\|ginkgo.It\)\(.*\)func() {$/\1\2func(ctx context.Context) {/' \
        $(git grep -l -e framework.ConformanceIt -e ginkgo.It )
    $GOPATH/bin/goimports -w $(git status | grep modified: | sed -e 's/.* //')

log_test.go was left unchanged.
2022-12-10 19:50:18 +01:00
Ionut Balutoiu
f092343300 tests: Spawn poststart / prestop pods on the same node as the https pod
In the PR https://github.com/kubernetes/kubernetes/pull/86139, two more lifecycle hook tests (poststart / prestop)
were added using HTTPS. They are similar with the existing HTTP tests.

However, this causes failures on Windows due to how networking
works there. We previously fixed this in the HTTP tests via f9e4a015e2.

This commit applies the same fix on the lifecycle hook HTTPS tests.

Signed-off-by: Ionut Balutoiu <ibalutoiu@cloudbasesolutions.com>
2022-11-03 19:25:15 +02:00
Jason Simmons
5a6acf85fa Align lifecycle handlers and probes
Align the behavior of HTTP-based lifecycle handlers and HTTP-based
probers, converging on the probers implementation. This fixes multiple
deficiencies in the current implementation of lifecycle handlers
surrounding what functionality is available.

The functionality is gated by the features.ConsistentHTTPGetHandlers feature gate.
2022-10-19 09:51:52 -07:00
Patrick Ohly
5614a9d064 e2e framework: eliminate interim sub packages
The "todo" packages were necessary while moving code around to avoid hitting
cyclic dependencies. Now that any sub package can depend on the framework, they
are no longer needed and the code can be moved into the normal sub packages.
2022-10-06 08:16:47 +02:00
Patrick Ohly
a46fea53e6 e2e framework: move pod exec and create into sub package 2022-10-06 08:16:47 +02:00
Patrick Ohly
2c8ef492ae e2e framework: move kubectl and pod helper code 2022-10-06 08:16:47 +02:00
ZhangKe10140699
4f19b10567 fix:e2e test flake: Probing container should mark readiness on pods to false 2022-09-26 09:55:19 +08:00
Humble Chirammal
9e9fc2be88 various corrections in test/e2e package
Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2022-09-16 18:59:30 +05:30