Commit Graph

758 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
7e62b1cab8 Merge pull request #96122 from cmluciano/cml/dualstackudpnode
dualstack: use correct IPFamily list for conntrack checks in e2e
2020-11-10 17:51:40 -08:00
Kubernetes Prow Robot
a5bce462d0 Merge pull request #94812 from aojea/e2ehostnet2
e2e test for services using pods with hostNetwork as backend
2020-11-10 14:35:38 -08:00
Christopher M. Luciano
fa7a802d55 dualstack: use correct IPFamily list for conntrack checks in e2e
We hardcode the index number in the KubeProxy/Conntrack e2es and
CollectAddresses returns 4 mixed IP Family addresses in a dualstack
cluster. This change ensures that the serverNodeInfo.nodeIP has only
valid addresses for the expected IPFamily per test case.

Signed-off-by: Christopher M. Luciano <cmluciano@us.ibm.com>
2020-11-10 15:02:29 -05:00
Kubernetes Prow Robot
151c2799d1 Merge pull request #96279 from cmluciano/cml/netutilsipv4
dualstack: cleanup IsIPv4 duplicates in favor of k8s/utils functions
2020-11-06 18:09:50 -08:00
Tim Hockin
819ff9b087 Use topology labels instead of old beta names (#96033)
* Rename const for topology.../zone

* Rename const for topology.../region

* Rename const for failure-domain.../zone

* Rename const for failure-domain.../region

* Restore old names for compat
2020-11-05 20:26:50 -08:00
Christopher M. Luciano
dfbda1dc40 dualstack: cleanup IsIPv4 duplicates in favor of utils
Signed-off-by: Christopher M. Luciano <cmluciano@us.ibm.com>
2020-11-05 14:29:23 -05:00
Antonio Ojea
76a9c8695a Revert "add e2e test for Service ExternalIPs"
This reverts commit 0ed8fd6dc9.

It turns out that ExternalIPs are not allowed to be reachable from
pods until the IP is present in the node.
However, due to a kube-proxy limitation it was working in environment
that used CNIs without bridges for the pods.
2020-11-05 10:35:24 +01:00
Kubernetes Prow Robot
e54448a307 Merge pull request #96116 from DP19/add-e2e-test-for-external-ips
add e2e test for Service ExternalIPs
2020-11-03 17:04:17 -08:00
Kubernetes Prow Robot
e25f3d75b8 Merge pull request #95065 from JornShen/replace_restarting_kas_kp_e2e_network_provider
refector service some e2e cases to make it runing in multi providers
2020-11-03 17:04:03 -08:00
Kubernetes Prow Robot
1c403c311e Merge pull request #95453 from danwinship/egress-networkpolicy-tests
Don't depend on DNS in NetworkPolicy tests
2020-11-03 11:44:04 -08:00
DP19
0ed8fd6dc9 add e2e test for Service ExternalIPs 2020-11-02 13:57:23 -05:00
Kubernetes Prow Robot
d1c296431e Merge pull request #96059 from knight42/refactor/migrate-health-check
refactor: migrate health checks of control-plane off insecure port in tests
2020-11-02 08:21:08 -08:00
knight42
3c4d6859c8 refactor: migrate health checks of control-plane off insecure port in tests
Signed-off-by: knight42 <anonymousknight96@gmail.com>
2020-10-31 11:39:25 +08:00
Kubernetes Prow Robot
68c41e261e Merge pull request #95977 from robscott/esm-test-fix
Updating EndpointSliceMirroring e2e test to accept multiple slices
2020-10-30 15:46:51 -07:00
jornshen
1d83b28dfe refector service some e2e cases to make it runing in multi providers
the cases are as fellow:
- "should work after restarting kube-proxy"
- "should work after restarting apiserver"
2020-10-30 19:39:02 +08:00
Kubernetes Prow Robot
f99ad43dbb Merge pull request #95575 from oomichi/remove-non-ascii-20201014
Replace non-ascii string under test/
2020-10-29 18:36:18 -07:00
Rob Scott
2c7d186669 Updating EndpointSliceMirroring e2e test to accept multiple slices
Due to informer caching, this caused some flaky test failures.
2020-10-28 22:49:17 -07:00
Tim Hockin
4f8fb1d3ca Wipe some fields on service "type" updates
Service has had a problem since forever:

- User creates a service type=LoadBalancer
- We silently allocate them a NodePort
- User changes type to ClusterIP
- We fail the operation because they did not clear NodePort

They never asked for or used the NodePort!

Dual-stack introduced some dependent fields that get auto-wiped on
updates.  This carries it further.

If you squint, you can see Service as a big, messy discriminated union,
with type as the discriminator. Ignoring fields for non-selected
union-modes seems right.

This introduces the potential for an apply loop. Specifically, we will
accept YAML that we did not previously accept. Apply could see the
field in local YAML and not in the server and repeatedly try to patch it
in. But since that YAML is currently an error, it seems like a very low
risk. Almost nobody actually specifies their own NodePort values.

To mitigate this somewhat, we only auto-wipe on updates. The same YAML
would fail to create. This is a little inconsistent. We could
auto-wipe on create, too, at the risk of more potential impact.

To do this properly, we need to know the old and new values, which means
we can not do it in defaulting or conversion. So we do it in strategy.

This change also adds unit tests and updates e2e tests to rely on and
verify this behavior.
2020-10-28 10:41:26 -07:00
Kubernetes Prow Robot
34ae23110a Merge pull request #95337 from cmluciano/cml/kproxylabeltest
proxy: label kube_proxy test with more unique label
2020-10-27 20:44:10 -07:00
Kubernetes Prow Robot
f00ec1b449 Merge pull request #95679 from EdDev/test-e2e-remove-w8-4-pod-running-after-createsync
test, e2e: Remove duplication when using PodClient.CreateSync
2020-10-27 15:32:11 -07: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
Khaled Henidak (Kal)
6675eba3ef dual stack services (#91824)
* api: structure change

* api: defaulting, conversion, and validation

* [FIX] validation: auto remove second ip/family when service changes to SingleStack

* [FIX] api: defaulting, conversion, and validation

* api-server: clusterIPs alloc, printers, storage and strategy

* [FIX] clusterIPs default on read

* alloc: auto remove second ip/family when service changes to SingleStack

* api-server: repair loop handling for clusterIPs

* api-server: force kubernetes default service into single stack

* api-server: tie dualstack feature flag with endpoint feature flag

* controller-manager: feature flag, endpoint, and endpointSlice controllers handling multi family service

* [FIX] controller-manager: feature flag, endpoint, and endpointSlicecontrollers handling multi family service

* kube-proxy: feature-flag, utils, proxier, and meta proxier

* [FIX] kubeproxy: call both proxier at the same time

* kubenet: remove forced pod IP sorting

* kubectl: modify describe to include ClusterIPs, IPFamilies, and IPFamilyPolicy

* e2e: fix tests that depends on IPFamily field AND add dual stack tests

* e2e: fix expected error message for ClusterIP immutability

* add integration tests for dualstack

the third phase of dual stack is a very complex change in the API,
basically it introduces Dual Stack services. Main changes are:

- It pluralizes the Service IPFamily field to IPFamilies,
and removes the singular field.
- It introduces a new field IPFamilyPolicyType that can take
3 values to express the "dual-stack(mad)ness" of the cluster:
SingleStack, PreferDualStack and RequireDualStack
- It pluralizes ClusterIP to ClusterIPs.

The goal is to add coverage to the services API operations,
taking into account the 6 different modes a cluster can have:

- single stack: IP4 or IPv6 (as of today)
- dual stack: IPv4 only, IPv6 only, IPv4 - IPv6, IPv6 - IPv4

* [FIX] add integration tests for dualstack

* generated data

* generated files

Co-authored-by: Antonio Ojea <aojea@redhat.com>
2020-10-26 13:15:59 -07:00
Kubernetes Prow Robot
84096f02e9 Merge pull request #94968 from Lion-Wei/fix-session-affinity-case
fix session affinity related flaky cases in ipvs proxy mode
2020-10-23 15:19:00 -07:00
Christopher M. Luciano
22b8cd5e51 proxy: label kube_proxy test with more unique label
The kube_proxy SIGDescribe previously only had Network in the title
and made it more difficult to select just the test cases in the
kube_proxy file and would end up running anything with Network in the
text area of SIGDescribe e2e tests.

Signed-off-by: Christopher M. Luciano <cmluciano@us.ibm.com>
2020-10-23 13:47:23 -04:00
Lion-Wei
624f5f9fdc extend request interval to make session affinity cases stable 2020-10-23 13:48:49 +08:00
Kubernetes Prow Robot
ffb233ff2d Merge pull request #95155 from cmluciano/cml/netpolapie2e
netpol: Add CRUD tests for NetworkPolicy API
2020-10-21 13:08:50 -07:00
Christopher M. Luciano
62ac60c4b5 netpol: Add CRUD tests for NetworkPolicy API
CRUD operations are the extent of conformance testing that we can add
for NetworkPolicy tests since we require a 3rd party plugin like CNI
for enforcement.

Signed-off-by: Christopher M. Luciano <cmluciano@us.ibm.com>
2020-10-19 13:22:42 -04:00
Edward Haas
c104671401 test, e2e: Remove duplication when using PodClient.CreateSync
The CreateSync method includes the waiting for the pod to become running
and returns a fresh new pod instance.
In addition, errors are asserted in the method.

Therefore, there is no need for the callers to repeat these operations.
Some, like the error assertions, will never be reached in case they
occur as they will explode from within the method itself.

Signed-off-by: Edward Haas <edwardh@redhat.com>
2020-10-18 15:42:06 +03:00
Antonio Ojea
97a13a0f87 e2e don't use hardcoded name for containers name 2020-10-17 11:44:45 +02:00
Kubernetes Prow Robot
8058942aa2 Merge pull request #95574 from swetharepakula/disable-test
Disable ExternalTrafficPolicy Test for large clusters
2020-10-16 18:42:12 -07:00
Swetha Repakula
b38ff20f71 Disable test for large clusters
- Due to performance issues, service controller updates are slow
 in large clusters, causing failing tests. Tag can be removed once
 performance issues are resolved
2020-10-16 14:27:15 -07: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
Kenichi Omichi
788e7d9360 Replace non-ascii string under test/ 2020-10-15 03:35:08 +00: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
3b9f358eb9 Don't depend on DNS in NetworkPolicy tests
The NetworkPolicy tests work by trying to connect to a service by its
name, which means that for the tests that involved creating egress
policies, it had to always create an extra rule allowing egress for
DNS, but this assumed that DNS was running on UDP port 53. If it was
running somewhere else (eg if you changed the CoreDNS pods to use port
5353 to avoid needing to give them the NET_BIND_SERVICE capability)
then the NetworkPolicy tests would fail.

Fix this by making the tests connect to their services by IP rather
than by name, and removing all the DNS special-case rules. There are
other tests that ensure that Service DNS works.
2020-10-09 16:16:43 -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
Kubernetes Prow Robot
128b697d55 Merge pull request #95276 from jayunit100/95216_ginkgo
Have udp tests return idiomatic ginkgo errors, update reporting of mutating parts
2020-10-07 10:44:15 -07:00
Antonio Ojea
33602279a2 e2e hostexec commands does not need sudo 2020-10-06 09:36:49 +02: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
Kubernetes Prow Robot
05b3e8911a Merge pull request #95166 from vishsangale/master-to-control-plane-test-e2e-GetMasterHost
Updated symbol 'framework.GetMasterHost' to not use word 'master'
2020-10-01 11:49:19 -07:00
Kubernetes Prow Robot
cc68a78ef5 Merge pull request #95160 from jayunit100/patch-12
Delete federation tests from sig-network  because they are disruptive and no longer relevant
2020-10-01 10:47:19 -07:00
Kubernetes Prow Robot
89fdf5e7d3 Merge pull request #95167 from vishsangale/master-to-control-plane-GetAllMasterAddresses
Updated symbol 'framework.GetAllMasterAddresses' to not use word 'mas…
2020-09-30 18:00:53 -07:00
Kubernetes Prow Robot
e67fa02095 Merge pull request #94433 from aojea/iperf
remove iperf e2e test ip family tags
2020-09-30 12:54:54 -07:00
Kubernetes Prow Robot
4373d9aadd Merge pull request #95132 from jluhrsen/nw-policy-debug
Network policy test debug and cleanup
2020-09-30 11:24:54 -07:00
jay vyas
1c5ad9b7e7 remove dns_common.go delete configmap stuff 2020-09-30 11:12:56 -04:00
jay vyas
77b78a2c1f Remove federation tests entirely because they break clusters and aren't relevant anymore 2020-09-30 08:26:28 -04:00
Vishwanath Sangale
b8e733fb94 Updated symbol 'framework.GetAllMasterAddresses' to not use word 'master' 2020-09-29 21:43:10 -07:00
Vishwanath Sangale
395a6d89f6 Updated symbol 'framework.GetMasterHost' to not use word 'master' 2020-09-29 21:05:39 -07:00