Skip to content

Commit 6714e71

Browse files
authored
reverse_tunnels: integration tests (#43840)
**Commit Message:** This PR adds basic integration tests for the reverse tunnels functionality. **Additional Description:** This PR adds integration tests for the reverse tunnel functionality, including: 1. **EndToEndReverseTunnelTest** - Tests basic reverse tunnel setup with a single node establishing a connection to a cloud listener, followed by sending HTTP requests through the egress listener that route through the reverse tunnel to a backend service. Validates the complete request/response flow and verifies tunnel statistics. 2. **EndToEndReverseTunnelTestWithMutualTLS** - Similar to the basic end-to-end test but with mutual TLS (mTLS) between the initiator and responder. 3. **ReverseTunnelResiliencyTest** - Tests reverse tunnel resilience in a multi-node, multi-cloud scenario. Sets up 2 edge nodes (node-1, node-2) with connections to 2 cloud instances (cloud_1, cloud_2) using LDS. Simulates node-1 failure by removing its initiator listeners via LDS, verifies that node-2 continues to function while node-1 requests fail, then re-adds node-1's listeners and confirms that tunnels are re-established and both nodes become operational again. 4. **MultiWorkerEndToEndReverseTunnelTest** - Test that runs the complete e2e test but with multiple workers. **Risk Level:** Low - Tests only **Testing:** New integration tests added **Docs Changes:** N/A **Release Notes:** N/A **Platform Specific Features:** N/A --------- Signed-off-by: Basundhara Chakrabarty <basundhara.c@nutanix.com> Signed-off-by: Basundhara Chakrabarty <basundhara17061996@gmail.com>
1 parent 28cb0f7 commit 6714e71

2 files changed

Lines changed: 1308 additions & 0 deletions

File tree

test/extensions/clusters/reverse_connection/BUILD

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ load(
33
"envoy_cc_test",
44
"envoy_package",
55
)
6+
load(
7+
"//test/extensions:extensions_build_system.bzl",
8+
"envoy_extension_cc_test",
9+
)
610

711
licenses(["notice"]) # Apache 2
812

@@ -36,3 +40,44 @@ envoy_cc_test(
3640
"@envoy_api//envoy/extensions/clusters/reverse_connection/v3:pkg_cc_proto",
3741
],
3842
)
43+
44+
envoy_extension_cc_test(
45+
name = "reverse_connection_cluster_integration_test",
46+
size = "large",
47+
srcs = ["reverse_connection_cluster_integration_test.cc"],
48+
extension_names = [
49+
"envoy.clusters.reverse_connection",
50+
"envoy.filters.network.reverse_tunnel",
51+
"envoy.filters.http.lua",
52+
"envoy.bootstrap.reverse_tunnel.upstream_socket_interface",
53+
"envoy.bootstrap.reverse_tunnel.downstream_socket_interface",
54+
"envoy.resolvers.reverse_connection",
55+
"envoy.transport_sockets.tls",
56+
],
57+
rbe_pool = "6gig",
58+
deps = [
59+
"//source/common/protobuf:utility_lib",
60+
"//source/extensions/bootstrap/reverse_tunnel/downstream_socket_interface:reverse_connection_resolver_lib",
61+
"//source/extensions/bootstrap/reverse_tunnel/downstream_socket_interface:reverse_tunnel_initiator_lib",
62+
"//source/extensions/bootstrap/reverse_tunnel/upstream_socket_interface:reverse_tunnel_acceptor_lib",
63+
"//source/extensions/clusters/reverse_connection:reverse_connection_lib",
64+
"//source/extensions/filters/http/lua:config",
65+
"//source/extensions/filters/http/router:config",
66+
"//source/extensions/filters/network/http_connection_manager:config",
67+
"//source/extensions/filters/network/reverse_tunnel:config",
68+
"//source/extensions/transport_sockets/tls:config",
69+
"//test/integration:http_integration_lib",
70+
"//test/integration:integration_lib",
71+
"//test/test_common:environment_lib",
72+
"//test/test_common:logging_lib",
73+
"//test/test_common:utility_lib",
74+
"@envoy_api//envoy/config/bootstrap/v3:pkg_cc_proto",
75+
"@envoy_api//envoy/extensions/clusters/reverse_connection/v3:pkg_cc_proto",
76+
"@envoy_api//envoy/extensions/filters/http/lua/v3:pkg_cc_proto",
77+
"@envoy_api//envoy/extensions/filters/network/reverse_tunnel/v3:pkg_cc_proto",
78+
"@envoy_api//envoy/extensions/transport_sockets/internal_upstream/v3:pkg_cc_proto",
79+
"@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg_cc_proto",
80+
"@envoy_api//envoy/extensions/upstreams/http/v3:pkg_cc_proto",
81+
"@envoy_api//envoy/service/discovery/v3:pkg_cc_proto",
82+
],
83+
)

0 commit comments

Comments
 (0)