Commit Graph

1164 Commits

Author SHA1 Message Date
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
Kubernetes Prow Robot
e1788034c6 Merge pull request #120046 from chansuke/feature/update-the-function-to-get-nodes
Optimize test for scalability by using `GetBoundedReadySchedulableNodes()`
2023-10-09 21:44:21 +02: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
chansuke
74180aaf66 Fix scalability concerns in test runs 2023-09-30 00:17:51 +09:00
Patrick Ohly
0e8a1f1816 e2e: remove redundant spaces in test names
The spaces are redundant because Ginkgo will add them itself when concatenating
the different test name components. Upcoming change in the framework will
enforce that there are no such redundant spaces.
2023-09-29 08:30:57 +02:00
Kubernetes Prow Robot
bb024e1f91 Merge pull request #120347 from shijinye/e2eclean
e2e_network:stop using deprecated framework.ExpectError
2023-09-26 12:04:59 -07:00
Antonio Ojea
bbb905c794 remove gce healthcheck interval e2e lb test
Change-Id: Idcd8c4c6b39cbd419ca58b7354508ebe81501e91
2023-09-17 19:47:32 +00:00
Kubernetes Prow Robot
8eaaf2f9b9 Merge pull request #120403 from wlq1212/cheanup/notwork/expectnotequal
e2e_network:stop using deprecated framework.ExpectNotEqual
2023-09-14 01:00:16 -07:00
wlq1212
239ce7c52b e2e_network:stop using deprecated framework.ExpectNotEqual 2023-09-13 18:46:49 +08:00
Kubernetes Prow Robot
cc0a24d2e8 Merge pull request #120406 from wlq1212/cheanup/framework/timeout
e2e_framework:stop using deprecated wait.ErrwaitTimeout
2023-09-10 21:10:10 -07:00
Kubernetes Prow Robot
25c7a1439a Merge pull request #120069 from aojea/service_conformance
promote to conformance Service multiprotocol tests
2023-09-10 07:26:09 -07:00
wlq1212
ef235c4eac e2e_framework:stop using deprecated wait.ErrwaitTimeout 2023-09-05 14:19:42 +08:00
jinye
95118ec30c e2e_network:stop using deprecated framework.ExpectError 2023-09-04 11:04:29 +08:00
Antonio Ojea
826f3a130a promote to conformance Service multiprotocol tests
Services can expose network applications that are running on
one or more Pods. User need to specify the Port and Protocol of the
network application, and network implementations must forward only
the traffic indicated in the Service, as it may present a security
problem if you allow to forward traffic to a backend if the user
didn't specify it.

Change-Id: I77fbb23c6415ed09dd81c4f2deb6df7a17de46f0
2023-08-22 08:36:17 +00:00
Antonio Ojea
039859b9b7 e2e network test for udp services with hostNetwork clients
There are some implementations of service that use socket loadbalancing
instead of NAT. These implementations don't need to deal with the
conntrack cleanup, however, they need to cleanup the sockets that are
no longer needed, so the application does not get stuck forever.

This can  happen in both TCP or UDP, but since UDP is stateless, the
situation is much complicated because does not have mechanisms like TCP
to detect that socket is no longer needed.

Change-Id: Ic2cfbdf6c8b1f1335e8b5964825dd1fa716fef53
2023-08-21 13:39:39 +00:00
Kubernetes Prow Robot
c2bddad813 Merge pull request #119454 from pacoxu/fix-ip-mode
use LoadBalancer type service for e2e service test to patch ingress status
2023-08-18 20:27:19 -07:00
Paco Xu
30ff937aaf add a fake load balancer class to fix e2e test failure 2023-08-19 08:50:13 +08:00
Kubernetes Prow Robot
5929d49f87 Merge pull request #119494 from carlory/cleanup-e2e-network-framework-equal
e2e_network: stop using deprecated framework.ExpectEqual
2023-08-18 03:06:28 -07:00
carlory
e290b4cb3b e2e_network: stop using deprecated framework.ExpectEqual 2023-08-18 14:54:15 +08: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
Paco Xu
f0b38766a0 use LoadBalancer type service for e2e service test to patch ingress status 2023-07-31 17:13:12 +08:00
Andrew Stoycos
84b3d9b7b7 remove legacy NetworkPolicy tests
This commit removes the legacy networkpolicy tests since they now have
complete appropriate coverage in the new netpol suite.

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
2023-06-29 14:44:21 -04:00
Stanislav Laznicka
7f532891c9 e2e tests: set all PSa labels instead of just enforcing 2023-06-21 15:05:13 +02:00
jay vyas
6195f96e56 minor fix comments in netpol so its easy to understand the tests for newcomers, remove one misleading comment (#118264)
* Fix comments in the netpol tests for new contributors to understand them better

* typo
2023-06-05 05:31:25 -07:00
Davanum Srinivas
ec8d94f205 Grab logs from all the containers when DNS related tests fail
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2023-05-19 17:23:13 -04:00
Daman Arora
569695b022 e2e/network: setting --max-time for curl
Signed-off-by: Daman Arora <aroradaman@gmail.com>
2023-05-10 22:28:23 +05:30
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
Antonio Ojea
ddb8c8a38b remove ServiceInternalTrafficPolicy e2e feature tag
Change-Id: I5b0fccb6323b5b28183e3ea3e20aeb1375e6e783
2023-05-08 12:48:50 +00:00
Antonio Ojea
4e24237f3b e2e services: retry if healthcheck nodeport is not avaioable
There are some e2e tets on networking services that depend on the
healthcheck nodeport to be available. However, the healtcheck nodeport
will be available asynchronously, so we should wait until it is
available on the tests and not fail hard if it is not.

Change-Id: I595402c070c263f0e7855ee8d5662ae975dbd1d3
2023-05-06 10:45:27 +00:00
Kubernetes Prow Robot
7dec98cdcc Merge pull request #117718 from aojea/ProxyTerminatingEndpoints
promote ProxyTerminatingEndpoints to GA
2023-05-04 13:23:13 -07:00
Danilo Gemoli
ec2cc36404 e2e: disable jig.ExternalIPs 2023-05-04 15:52:34 +02:00
Antonio Ojea
b849ff57b8 e2e reasonable grace termination period timeout
The existing termination period of 600 seconds for pods on the
e2e test causes that those pods are kept running after the
test has finished. 100 seconds is a good compromise to avoid
leaving pods lingering and more than enought for the test to finish.

Change-Id: I993162a77125345df1829044dc2514e03b13a407
2023-05-04 13:04:52 +00:00
Antonio Ojea
791573ddb6 promote ProxyTerminatingEndpoints to GA
Change-Id: Ife524c831d905acbc606aa7631e1194f91199938
2023-05-04 12:58:33 +00:00
Ricardo Katz
bff8a6cd9f Remove withdrawn feature NetworkPolicyStatus 2023-05-01 15:19:25 -03:00
Rob Scott
e23af041f5 Introducing Topology Mode Annotation, Deprecating Topology Hints
Annotation

As part of this change, kube-proxy accepts any value for either
annotation that is not "disabled".

Change-Id: Idfc26eb4cc97ff062649dc52ed29823a64fc59a4
2023-03-14 02:23:11 +00:00
Kubernetes Prow Robot
0a5310fe9a Merge pull request #116232 from aojea/e2e_terminating_connectivity
test connectivity for terminating pods
2023-03-08 15:42:21 -08:00
Kubernetes Prow Robot
7598ff36cf Merge pull request #116333 from aojea/multiport_service
e2e network test for multiple protocol services on same port
2023-03-08 11:27:12 -08:00
Antonio Ojea
7cb135a888 e2e network test for multiple protocol services on same port
The test creates a Service exposing two protocols on the same port
and a backend that replies on both protocols.

1. Test that Service with works for both protocol
2. Update Service to expose only the TCP port
3. Verify that TCP works and UDP does not work
4. Update Service to expose only the UDP port
5. Verify that TCP does not work and UDP does work

Change-Id: Ic4f3a6509e332aa5694d20dfc3b223d7063a7871
2023-03-07 21:30:39 +00:00
Antonio Ojea
bcc61bbb8b test connectivity for terminating pods
Test 2 scenarios:

- pod can connect to a terminating pods
- terminating pod can connect to other pods

Change-Id: Ia5dc4e7370cc055df452bf7cbaddd9901b4d229d
2023-03-07 17:48:07 +00:00
Antonio Ojea
4482d1c2f4 e2e support Services with multiple EndpointSlices
A Service can use multiple EndpointSlices for its backend, when
using custom Endpoint Slices, the data plane should forward traffic
to any of the endpoints in the Endpointslices that belong to the
Service.

Change-Id: I80b42522bf6ab443050697a29b94d8245943526f
2023-03-07 13:00:46 +00:00
Kubernetes Prow Robot
12ceec47aa Merge pull request #115977 from elmiko/fix-lb-test
remove aws from e2e loadbalancer udp conntrack tests
2023-02-27 10:26:50 -08:00
michael mccune
3a76c95f8e remove aws from e2e loadbalancer udp conntrack tests
These tests are not working as expected on AWS due to the requirement
for the user to add an annotation to the UDP Service created.
2023-02-22 17:08:57 -05: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
Kubernetes Prow Robot
487c443239 Merge pull request #115710 from pohly/e2e-import-restrictions
e2e framework: revise import restrictions
2023-02-20 17:17:48 -08:00
Dan Winship
9283429f22 Remove checks for userspace proxy mode in e2e tests
It's gone
2023-02-15 16:30:58 -05:00
Patrick Ohly
3e760310b2 e2e: revise import restrictions
- test/e2e/framework/*.go should have very minimal dependencies.
  We can enforce that via import-boss.

- What each test/e2e/framework/* sub-package uses is less relevant,
  although ideally it also should be as minimal as possible in each case.

Enforcing this via import-boss ensures that new dependencies get flagged as
problem and thus will get additional scrutiny. It might be okay to add them,
but it needs to be considered.
2023-02-12 14:56:45 +01:00
Antonio Ojea
244d7449ce don't run loadbalancer tests on large environments
Change-Id: Id987e9469e563c0837c6437a44a65889cec2e202
2023-02-11 10:28:25 +00: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