Commit Graph

1054 Commits

Author SHA1 Message Date
Antonin Bas
2e282e8e02 Update Netpol e2e tests to use framework CreateNamespace
The main purpose of this change is to update the e2e Netpol tests to use
the srandard CreateNamespace function from the Framework. Before this
change, a custom Namespace creation function was used, with the
following consequences:

* Pod security admission settings had to be enforced locally (not using
  the centralized mechanism)
* the custom function was brittle, not waiting for default Namespace
  ServiceAccount creation, causing tests to fail in some infrastructures
* tests were not benefiting from standard framework capabilities:
  Namespace name generation, automatic Namespace deletion, etc.

As part of this change, we also do the following:

* clearly decouple responsibilities between the Model, which defines the
  K8s objects to be created, and the KubeManager, which has access to
  runtime information (actual Namespace names after their creation by
  the framework, Service IPs, etc.)
* simplify / clean-up tests and remove as much unneeded logic / funtions
  as possible for easier long-term maintenance
* remove the useFixedNamespaces compile-time constant switch, which
  aimed at re-using existing K8s resources across test cases. The
  reasons: a) it is currently broken as setting it to true causes most
  tests to panic on the master branch, b) it is not a good idea to have
  some switch like this which changes the behavior of the tests and is
  never exercised in CI, c) it cannot possibly work as different test
  cases have different Model requirements (e.g., the protocols list can
  differ) and hence different K8s resource requirements.

For #108298

Signed-off-by: Antonin Bas <abas@vmware.com>
2022-08-10 11:38:26 -07:00
Edwin Xie
f167b9f4ab Fix e2e network dns_configmap test
Updates predicate to check for a length >=2 to avoid
the index out of bounds panic.

Signed-off-by: Edwin Xie <exie@vmware.com>
Co-authored-by: Tyler Schultz <tschultz@vmware.com>
2022-08-04 21:04:02 +00: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
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
Lars Ekman
e93f1161ea Replace fallocate with dd in e2e tests 2022-07-23 17:22:49 +02:00
Kubernetes Prow Robot
57e4c38ed6 Merge pull request #111060 from aojea/distroless_proxy
use new distroless kube-proxy image
2022-07-21 15:45:26 -07:00
Kubernetes Prow Robot
bce7f34e96 Merge pull request #110967 from iXinqi/lxinqi/port-mutation-test
Add service port mutation test
2022-07-21 12:59:16 -07:00
Antonio Ojea
1ee13900a5 use new distroless kube-proxy image 2022-07-21 09:48:52 +02:00
kidddddddddddddddddddddd
a76c0f9898 select the lower name ingressClass in e2e 2022-07-15 18:17:57 +08:00
Xinqi Li
d6f729995a add service port mutation test 2022-07-11 11:44:49 -07: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
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
Tim Hockin
55232e2ef7 Rename IPFamilyPolicyType => IPFamilyPolicy 2022-07-06 15:42:26 -07:00
Kubernetes Prow Robot
bd2776e0c9 Merge pull request #110868 from rikatz/endport-to-ga
Promote endPort in Network Policy to GA
2022-07-05 19:48:49 -07:00
Ricardo Katz
3e7bdbbf30 Promote endPort to GA 2022-06-30 00:33:43 +00:00
Antonio Ojea
3204572f01 replace echoserver image with agnhost
agnhost contains the same features than echoserver.
2022-06-29 09:49:19 +02:00
Anton Protopopov
4026d355bc test/e2e/network: add a check to the hostport e2e test
As described in 8c76845b03 ("test/e2e/network: fix a bug in the hostport e2e
test") if we have two pods with the same hostPort, hostIP, but different
protocols, a CNI may be buggy and decide to forward all traffic only to one of
these pods. Add a check that we receiving requests from different pods.

Co-authored-by: Antonio Ojea <antonio.ojea.garcia@gmail.com>
2022-06-17 21:08:35 +00:00
Anton Protopopov
8c76845b03 test/e2e/network: fix a bug in the hostport e2e test
The hostport e2e test (sonobuoy run --e2e-focus 'validates that there is no
conflict between pods with same hostPort but different hostIP and protocol')
checks, in particular, that two pods with the same hostPort, the same hostIP,
but different L4 protocols can coexist on one node.

In order to do this, the test creates two pods with the same hostIP:hostPort,
one TCP-based, another UDP-based. However, both pods listen on both protocols:

    netexec --http-port=8080 --udp-port=8080

This can happen that a CNI which doesn't distinguish between TCP and UDP
hostPorts forwards all traffic, TCP or UDP, to the same pod. As this pod
listens on both protocols it will reply to both requests, and the test
will think that everything works properly while the second pod is indeed
disconnected. Fix this by executing different commands in different pods:

    TCP: netexec --http-port=8080 --udp-port=-1
    UDP: netexec --http-port=8008 --udp-port=8080

The TCP pod now doesn't listen on UDP, and the UDP pod doesn't listen on TCP on
the target hostPort. The UDP pod still needs to listen on TCP on another port
so that a pod readiness check can be made.
2022-06-17 13:06:41 +00:00
Kubernetes Prow Robot
198dd7668a Merge pull request #110395 from tnqn/fix-sctp-test
Fix SCTP default-deny test
2022-06-07 08:45:07 -07:00
Ryan Phillips
97db4ac963 add service e2e tests 2022-06-06 17:00:59 -05:00
Quan Tian
5dd9184945 Fix SCTP default-deny test
The test is about SCTP and the accessed service only forwarded SCTP
traffic to the server Pod but the client Pod used TCP protocol, so the
test traffic never reached the server Pod and the test NetworkPolicy
was never enforced, which lead to test success even if the default-deny
policy was implemented wrongly. In some cases it may got failure result
if there was an external server having same IP as the cluster IP and
listening to TCP 80 port.

Signed-off-by: Quan Tian <qtian@vmware.com>
2022-06-06 13:14:07 +08:00
Kubernetes Prow Robot
8b6dd065d7 Merge pull request #110255 from robscott/fix-pod-eviction-ip
Endpoints and EndpointSlices should not publish IPs for terminal pods
2022-05-27 16:24:42 -07:00
Rob Scott
aa02b7a434 Updating e2e test to check EndpointSlices and Endpoints as well 2022-05-27 21:10:59 +00:00
Kubernetes Prow Robot
f161dde085 Merge pull request #109977 from JohnTitor/remove-poddelete-use
Remove the use of derecated `PodDeleteTimeout` const
2022-05-27 06:21:08 -07:00
Antonio Ojea
3a8edca2d8 e2e: services with evicted pods doesn't have endpoints 2022-05-27 06:43:03 +02:00
Kubernetes Prow Robot
076168b84d Merge pull request #109990 from tnqn/fix-netpol-error
Correct errors in the netpol test suite
2022-05-12 03:43:26 -07:00
Quan Tian
b792f7392f Correct errors in the netpol test suite
It was confusing to see message saying "unable to update pod" when it
was actually trying to create a Pod.

Signed-off-by: Quan Tian <qtian@vmware.com>
2022-05-12 10:48:51 +08:00
Yuki Okushi
6bc6a671ae Remove the use of derecated PodDeleteTimeout const 2022-05-12 01:58:23 +09:00
Zhecheng Li
b4a3750912 [e2e][azure] Make internalStaticIP flexible
Now, internalStaticIP is hard-coded to "10.240.11.11". Such IP works
for aks-engine cluster but not for CAPZ ones (node-subnet 10.1.0.0/16)

Signed-off-by: Zhecheng Li <zhechengli@microsoft.com>
2022-04-15 10:08:36 +08:00
Kubernetes Prow Robot
8cd689e40d Merge pull request #109283 from s-urbaniak/ratchet-e2e
test/e2e/framework: use restricted policy by default, default existing tests to privileged
2022-04-05 14:37:25 -07:00
Sergiusz Urbaniak
1495c9f2cd test/e2e/*: default existing tests to privileged pod security policy
This is to ensure that all existing tests don't break when defaulting
the pod security policy to restricted in the e2e test framework.
2022-04-05 08:41:12 +02:00
Kubernetes Prow Robot
a315ec3388 Merge pull request #108590 from claudiubelu/tests/enable-windows-tests
tests: Enables a few Conformance tests for Windows (part 1)
2022-04-04 08:56:11 -07:00
Kubernetes Prow Robot
57a739bdf2 Merge pull request #108691 from andrewsykim/proxy-terminating-endpoints
Apply ProxyTerminatingEndpoints to all traffic policies
2022-03-29 17:34:57 -07:00
Andrew Sy Kim
01c178c9de test/e2e/network: add e2e tests for ProxyTerminatingEndpoints
Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
2022-03-29 11:37:43 -04:00
Ricardo Katz
42a1201082 Implementation on Network Policy Status (#107963)
* Implement status subresource in NetworkPolicy

* add NetworkPolicyStatus generated files

* Fix comments in netpol status review
2022-03-29 01:52:48 -07:00
Sergiusz Urbaniak
373c08e0c7 test/e2e/framework: configure pod security admission level for e2e tests 2022-03-28 15:42:10 +02:00
Masaki Kimura
52afdc6259 Use WaitForPodRunningInNamespace for proxy e2e tests 2022-03-25 21:24:59 +00:00
Dave Chen
85dfca3e16 Remove the legacy Nginx testcases
Those testcases does't work anymore after nginx-ingress controller
has been upgraded to v1.

Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-03-09 10:38:07 +08:00
Claudiu Belu
87123c49a0 tests: Enables a few Conformance tests for Windows
Some of these tests could not be run previously, especially on Windows
Docker containers. But now, by using Windows Containerd, we can finally
run them:

- HostNetwork=true tests: This can now be enabled on Windows Privileged Containers.
- /etc/hosts related tests: These were not supported because it required single
  file mappings, which is possible in Containerd.
- termination message as non-root user: Requires RunAsUsername, and single file
  mappings.
2022-03-06 09:36:39 -08:00
Dave Chen
cee132b197 Remove couple of variables to simplify the code
Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-02-23 17:17:27 +08:00
Dave Chen
d5775aef5e e2e: Embed dns related maninfests into codebase
Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-02-23 17:16:50 +08:00
Kubernetes Prow Robot
2047936f3f Merge pull request #107552 from aojea/e2e_parse_misalignment
e2e test for CVE-2021-29923
2022-02-08 19:10:18 -08:00
hxie
83974e4940 Remove option 'T' from wget on Windows
Command 'wget' in Windows image agnhost does not support option timeout,
this test fails:
  - should be able to up and down services
2022-02-07 00:38:07 -08:00
ahrtr
fe95aa614c io/ioutil has already been deprecated in golang 1.16, so replace all ioutil with io and os 2022-02-03 05:32:12 +08:00
justinsb
a905d7bfaf e2e: Feature tags must be in square brackets
Otherwise the feature regexes that we use don't detect them.

This was relatively hidden because we don't have many e2e tests that
test multizone.
2022-01-30 13:10:04 -05:00
Kubernetes Prow Robot
1c216c6ec8 Merge pull request #107777 from hxietkg/hxietkg/windows-numberofworkers-3
Increase number of workers to 3 for Windows
2022-01-27 20:50:30 -08:00
Martin André
363ad4c3b3 Ensure the execHostnameTest() compares hostnames
We do not have guarantee that the agnhost's `/hostname` endpoint returns
a hostname and not an FQDN. We also do not have guarantee a hostname
gets passed to the execHostnameTest() function for comparison.

So make sure we're comparing hostnames in execHostnameTest().
2022-01-26 11:16:18 +01:00
Martin André
5f809703a6 Revert "Fix comparison between FQDN and hostname"
This reverts commit 752a532c3d.
2022-01-26 11:09:27 +01:00
Kubernetes Prow Robot
25697c4812 Merge pull request #107753 from srikiz/fix-ingress-path-tests
fix ingress path for tests when ingress controller is already running
2022-01-26 01:30:25 -08:00
hxie
56382ddf16 Increase number of workers to 3 for Windows
Number of workers was set to be 1 because prallel probing on Windows is
flakier, network policy tests may get stuck, this symptom disappears on
the newest kubernetes, network poicy tests run very well with 3 workers.
2022-01-25 21:32:21 -08:00