Commit Graph

76 Commits

Author SHA1 Message Date
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
Dan Winship
4cee7197eb Move two SCTP tests
There were two SCTP tests grouped together in
test/e2e/network/service.go, but one of them wasn't a service test...
so move the SCTP service test to be grouped with the other service
tests, and the SCTP hostport tests to be grouped with other
non-service tests.
2022-12-13 16:24:40 -05: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
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
Dan Winship
39bed84947 update "Networking should recreate its iptables rules" test
Don't assume kubelet will create KUBE-MARK-DROP; look for
KUBE-IPTABLES-HINT now instead.
2022-07-27 13:29:39 -04:00
Dave Chen
857458cfa5 update ginkgo from v1 to v2 and gomega to 1.19.0
- update all the import statements
- run hack/pin-dependency.sh to change pinned dependency versions
- run hack/update-vendor.sh to update go.mod files and the vendor directory
- update the method signatures for custom reporters

Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-07-08 10:44:46 +08:00
Sergiusz Urbaniak
373c08e0c7
test/e2e/framework: configure pod security admission level for e2e tests 2022-03-28 15:42:10 +02:00
Antonio Ojea
a4bbf92577 cap nunmber of tries on e2e nodePort stop service test
The tests were asserting that after a NodePort Service was removed,
no new traffic was still reaching the endpoints.
However, the number of tries was so large that another test running
in parallel could create a working Service on that NodePort, making
the test fails.

Use only 10 tries to confirm that the Service stopped working.
2021-12-13 10:33:35 +01:00
Andrew Sy Kim
afea48d23f test/e2e/network: remove dependency to google.com for in-cluster networking tests
Signed-off-by: Andrew Sy Kim <kim.andrewsy@gmail.com>
2021-06-20 19:19:02 -04:00
Antonio Ojea
60c3480740 e2e don't set pod.Spec.NodeName directly
based on this comment in
ea07644522/test/e2e/framework/pod/node_selection.go (L96-L101)

// pod.Spec.NodeName should not be set directly because
// it will bypass the scheduler, potentially causing
// kubelet to Fail the pod immediately if it's out of
// resources. Instead, we want the pod to remain
// pending in the scheduler until the node has resources
// freed up.
2021-04-16 15:58:16 +02:00
Antonio Ojea
7c7d003e5c e2e test with hostNetwork pods can't run in parallel
the tests with pods using hostNetwork need to bind pods for the
test. Since they use hostNetwork the ports are limited, hence, if
more than one run in parallel, one is going to fail because will not
be able to get the port.
2021-04-07 20:07:18 +02:00
Federico Paolinelli
fa963f55ae Un-skip the hostnetwork udp endpoint test.
Since the test is being fixed, we can run the test.

Signed-off-by: Federico Paolinelli <fpaoline@redhat.com>
2021-03-09 11:52:35 +01:00
wojtekt
749922fa46 Cleanup SIGDescribe in test/e2e/network 2021-02-27 20:29:27 +01:00
Federico Paolinelli
ab9e5a59fa Network tests: check for errors when dialing from node to services
The current implementation does not check for errors, so any failure in
DialFromNode won't float.

Signed-off-by: Federico Paolinelli <fpaoline@redhat.com>
2021-02-01 17:12:34 +01:00
jay vyas
4d757f1c52 remove weird pause args from this networking.go, that break the periodic sig-network tests 2021-01-17 13:42:41 -05:00
Antonio Ojea
19cf272b37 add more e2e sctp tests
Add more e2e SCTP tests for Services and intra-pod communication.
2020-11-13 17:07:00 +01:00
Antonio Ojea
3a6b4366a7 remove wrong test for SCTP connectivity
the test tries to test the connectivity between two pods, but it
acually test the connectivity against itself.
2020-11-13 17:03:03 +01:00
Antonio Ojea
b61faa388c add e2e test for services with hostNetwork endpoints
we are missing tests that check the connectivity against services
that have backend pods with hostNetwork: true.

Because the tests run in parallel, it is possible that the pods used as
backends try to bind to the same port, and since all of them use the
host network, the scheduler will fail to create them due to port conflicts,
so we run them serially.

We have to skip networking tests with udp and endpoints using
hostNetwork, because they have a known issue.
2020-10-26 23:08:24 +01:00
Antonio Ojea
734d5bbed0 e2e use functional options to configure NetworkingTest
NetworkingTest is used to test different network scenarios.
Since new capabilites and scenarios are added, like SCTP or HostNetwork
for pods, we need a way to configure it with minimum disruption and code
changes.

Go idiomatic way to achieve this is using functional options.
2020-10-26 22:18:05 +01:00
Kubernetes Prow Robot
7b40b3410b
Merge pull request #94595 from claudiubelu/tests/agnhost-usage-refactor-5
tests: Refactor agnhost image pod usage - network
2020-10-16 09:01:40 -07:00
Kubernetes Prow Robot
9891ac4d4d
Merge pull request #95333 from jayunit100/node_port_udp_fast_test
Node port udp fast test
2020-10-13 18:19:54 -07:00
jay vyas
e7a9a94da8 simpler addition of nodeport basic validation 2020-10-11 11:36:02 -04:00
Dan Winship
3f4c2d6fe0 Improve logging of iptables canary test
Since it's [Disruptive] it only runs in periodic jobs so it's better
to have too much debugging info than too little.
2020-10-09 11:59:21 -04:00
jay vyas
56def96d9d Update DialFromNode to return values as is done w/ other tests. Update
comments to clarify missing probability check function (since they need
to be updated anyways b/c of the return value introduced)
2020-10-04 15:59:20 -04:00
Claudiu Belu
d37cbeb388 tests: Refactors agnhost image pod usage - network
A previous commit created a few agnhost related functions that creates agnhost
pods / containers for general purposes.

Refactors tests to use those functions.
2020-09-26 05:56:31 -07:00
Kubernetes Prow Robot
9646d5998c
Merge pull request #94822 from JornShen/replace_e2essh_e2e_service_tests
Replace e2essh on e2e service tests
2020-09-24 13:57:11 -07:00
jay vyas
60c8a36a7b Add failure logic to tests that rely on side-effect-free dial functions. 2020-09-23 09:36:23 -05:00
jornshen
40474d7e2a Replace e2essh on e2e service tests
test can execute whever hosts have ssh or not

relevant case:

"should be able to up and down services"
"should implement service.kubernetes.io/service-proxy-name"
"should implement service.kubernetes.io/headless"
2020-09-23 19:21:57 +08:00
Kubernetes Prow Robot
3b568bbe5d
Merge pull request #94232 from swetharepakula/multiple-services
Add e2e multiple endpoint services test
2020-09-22 12:23:00 -07:00
Daniel Smith
75f835aa08 move port definitions to a common location 2020-09-02 10:48:25 -07:00
Swetha Repakula
e6428ae214 Add e2e multiple endpoint services test
- ensures that when multiple services with the same selector will
 function even if one of the services is deleted
2020-09-01 16:36:33 -07:00
Federico Paolinelli
254905caa7 Mark SCTPConnectivity tests as disruptive.
Since the SCTP module verification tests were added, their result may be affected by
running the SCTPConnectivity tests. For this reason, they are now marked as disruptive.

Signed-off-by: Federico Paolinelli <fpaoline@redhat.com>
2020-08-31 10:39:32 +02:00
Kubernetes Prow Robot
2fd8debe9b
Merge pull request #87926 from fedepaol/agnostsctp
Preliminary SCTP connectivity tests
2020-04-02 02:12:24 -07:00
Kenichi Omichi
5c77461733 Move NewAgnhostPod() to e2e/network
because the function is called in e2e/network tests only.
2020-03-24 05:46:49 +00:00
Federico Paolinelli
c42b1ca783 Add SCTP e2e connectivity tests.
Pod2pod connectivity, and pod 2 service.

Signed-off-by: Federico Paolinelli <fpaoline@redhat.com>
2020-03-04 23:34:22 +01:00
Mike Danese
25651408ae generated: run refactor 2020-02-08 12:30:21 -05:00
Mike Danese
3aa59f7f30 generated: run refactor 2020-02-07 18:16:47 -08:00
Mike Danese
d55d6175f8 refactor 2020-01-29 08:50:45 -08:00
tanjunchen
586e1f2325 e2e/network/: Use e2eskipper package 2020-01-11 12:05:10 +08:00
clarklee92
c4ad07b0b1 e2e: move funs of framework/service to e2e/network
Signed-off-by: clarklee92 <clarklee1992@hotmail.com>
2019-12-11 20:13:34 +08:00
Claudiu Belu
e465e1089d Sets HostNetwork to False for tests which do not require it
Some tests are setting HostNetwork=true, even if it is not required
for them to pass.

This patch will set the HostNetwork to false for those tests, allowing
them to be run on Windows nodes as well.
2019-11-20 17:36:54 -08:00
Claudiu Belu
56fe87d349 tests: Adds large requests tests
Ensures that requests that require large packets work properly, and that
they are not dropped.

Adds AgnhostPrivate to test/utils/image/manifest. Some tests are trying to pull
the agnhost image from the private registry, meaning that we would need to
always build and push the agnhost image to both e2e and private registry
whenever we bump its version. Decoupling them would mean that we only need
to push the image to the e2e registry.
2019-11-13 16:15:27 -08:00
Kenichi Omichi
eb9d1cb5cc Move functions from e2e/framework/util.go Part-2
This PR moves functions from test/e2e/framework.util.go for making e2e
core framework small and simple:

- RestartKubeProxy: Moved to e2e network package
- CheckConnectivityToHost: Moved to e2e network package
- RemoveAvoidPodsOffNode: Move to e2e scheduling package
- AddOrUpdateAvoidPodOnNode: Move to e2e scheduling package
- UpdateDaemonSetWithRetries: Move to e2e apps package
- CheckForControllerManagerHealthy: Moved to e2e storage package
- ParseKVLines: Removed because of e9345ae5f0
- AddOrUpdateLabelOnNodeAndReturnOldValue: Removed because of ff7b07c43c
2019-11-06 03:59:28 +00:00
Kenichi Omichi
5d6faaddf6 Separate e2enetwork from e2e core framework
networking_utils.go is only for network tests and it is nice to
separate it from the core framework for easy maintenance.
2019-10-25 17:58:20 +00:00
Kubernetes Prow Robot
354a812086
Merge pull request #82171 from mgdevstack/linuxOnly-sessionAffinity
Add LinuxOnly tag to e2e testing session affinity
2019-09-26 16:55:50 -07:00
Dan Winship
967fd5aaf0 e2e: test that both kube-proxy and kubelet recover after iptables flush 2019-09-15 15:34:24 -04:00
hwdef
af16366001 use log func in test/e2e/network 2019-09-13 17:54:51 +08:00
Mayank Gaikwad
f5c6eba92d Add LinuxOnly tag to e2e testing session affinity 2019-08-30 17:37:03 +05:30
Claudiu Belu
8812720148 tests: Skips Windows-unrelated tests on Windows
Skips IPv6 tests on Windows.
Skips sysctl tests on Windows.
Skips network policy tests on Windows.
Skips RunAsUser / FSGroup / file permissions related tests, as those are
not supported on Windows.
Skips the test "should preserve source pod IP for traffic thru service cluster IP"
on Windows, as it creates a Pod with HostNetwork=true, which is unsupported.

What works and what doesn't work on Windows has been documented here:
https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md#windows--linux-considerations
2019-08-20 14:19:14 -07:00