Commit Graph

1148 Commits

Author SHA1 Message Date
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
Patrick Ohly
c3266cde77 e2e: consolidate pod response checking
This renames PodsResponding to WaitForPodsResponding for the sake of
consistency and adds a timeout parameter. That is necessary because some other
users of NewProxyResponseChecker used a much lower timeout (2min vs. 15min).

Besides simplifying some code, it also makes it easier to rewrite
ProxyResponseChecker because it only gets used in WaitForPodsResponding.
2023-02-06 15:39:13 +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
3b579fca91 e2e: consolidate pod response checking
This renames PodsResponding to WaitForPodsResponding for the sake of
consistency and adds a timeout parameter. That is necessary because some other
users of NewProxyResponseChecker used a much lower timeout (2min vs. 15min).

Besides simplifying some code, it also makes it easier to rewrite
ProxyResponseChecker because it only gets used in WaitForPodsResponding.
2023-01-31 13:01:39 +01:00
Daman
a832d1dbdf e2e/network_policy: using expected==observed as condition for polling in probeConnectivity function 2023-01-24 03:59:01 +05:30
Daman
faee4c33de e2e/network_policy: using PollImmediate for intra pod connectivity probes 2023-01-20 20:05:28 +05:30
Kubernetes Prow Robot
0d6dc14051 Merge pull request #114783 from pohly/e2e-framework-timeouts
e2e framework: consolidate timeouts and intervals
2023-01-12 03:29:08 -08:00
Patrick Ohly
db394db398 e2e: move several timeouts from TestContext into TimeoutContext
This consolidates timeout handling. In the future, configuration of all
timeouts via a configuration file might get added. For now, the same three
legacy command line flags for the timeouts that get moved continue to be
supported.
2023-01-09 17:29:35 +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
Miciah Masters
af258c819d e2e: Remove kubeadm-ism in DNS HostNetwork test
The "[sig-network] DNS HostNetwork should resolve DNS of partial qualified
names for services on hostNetwork pods with dnsPolicy:
ClusterFirstWithHostNet" test assumes that a service named "kube-dns"
exists in the "kube-system" namespace.  This assumption is valid if the
cluster was configured using kubeadm, but the assumption may be invalid
otherwise.

As the test uses dnsPolicy: ClusterFirst (as opposed to dnsPolicy: None),
it does not need to specify the name server in dnsConfig.  Omitting
dnsConfig.nameservers obviates the need to look up the service.

Follow-up to commit add4652352.

* test/e2e/network/dns.go: Don't look up or use the kube-dns cluster IP
address as it might not exist on clusters that were not configured using
kubeadm.
2022-12-22 19:00:29 -05:00
Kubernetes Prow Robot
ff23a12e64 Merge pull request #112019 from antoninbas/use-framework-helpers-to-create-namespaces
e2e: Use framework helpers to create namespaces
2022-12-20 10:17:56 -08:00
Antonio Ojea
f333e5b4c5 e2e NodePorts should be tested within the cluster
The NodePort functionality can be tested within the cluster.

Testing from outside the cluster assumes that there is connectivity
between the e2e.test binary and the cluster under test, that is not
always true, and in some cases is exposed to external factors  or
misconfigurations like wrong routes or firewall rules that impact
on the test.

Change-Id: Ie2fc8929723e80273c0933dbaeb6a42729c819d0
2022-12-20 10:21:59 +00:00
Antonin Bas
0194705db3 Indicate that manual Namespace creation for local ingress scale tests is intentional
Signed-off-by: Antonin Bas <abas@vmware.com>
2022-12-19 12:44:04 -08:00
Antonio Ojea
5d8f745e86 e2e dns don't fail if configmap does not exist
don't fail on cleanup if the configmap for kube-dns does not exist

Change-Id: Ia56d9f590baba374e0b687aeda71d547899b1713
2022-12-18 19:23:36 +00: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
Dan Winship
41e1435d97 Remove [Disruptive] from Feature:SCTPConnectivity tests
The Feature:SCTPConnectivity tests cannot run at the same time as the
"X doesn't cause sctp.ko to be loaded" tests, since they may cause
sctp.ko to be loaded. We had dealt with this in the past by marking
them [Disruptive], but this isn't really fair; the problem is more
with the sctp.ko-checking tests than it is with the SCTPConnectivity
tests. So make them not [Disruptive] and instead make the
sctp.ko-checking tests be [Serial].
2022-12-13 16:24:42 -05:00