-
Notifications
You must be signed in to change notification settings - Fork 593
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TCPIngress Tests #1179
Comments
This requires validation - the existing integration test may cover some of the scope. |
kubernetes-ingress-controller/internal/parser/translate_test.go Lines 713 to 847 in d4a6ecb
kubernetes-ingress-controller/test/integration/tcpingress_test.go Lines 118 to 137 in d4a6ecb
ingressWait 5-minute time limit for most tests.
The remainder is almost entirely Kong proxy behavior (beyond that we make changes to proxy config when asked). Manual testing against Kong shows that:
Nothing here currently, and we don't have any other services readily available as addons. Our current strategy relies on upstream output since there's not a whole lot else go on (no
None currently. This should follow the observed Kong behavior (ignore the changes and keep the connection open and proxied until something else interrupts it) between deck's logic to find and edit existing routes and whatever happens internally in DB-less mode to update existing routes.
None currently and not sure I understand the test here. If it's just open connection handling, same as the above: once routed, a connection will proxy to its original upstream forever.
This should just follow the regular observed FIN-on-close behavior.
Handled by kubernetes-ingress-controller/test/integration/tcpingress_test.go Lines 139 to 148 in d4a6ecb
Nothing across changes, but kubernetes-ingress-controller/test/integration/tcpingress_test.go Lines 101 to 116 in d4a6ecb
No TLS tests, which would also require differentiable services, and further a stream listen with Didn't look at performance stuff at all. |
TCPIngress Tests
The purpose of this issue is to ensure that we provide robust unit and integration test coverage of our
TCPIngress
API and relevant controller(s).Acceptance Criteria
Integration and unit tests must cover the below checklists for this issue to be considered resolved, each checklist item should be a test case in Go.
Rule Of Thumb: default to unit tests where feasible, and fallback to integration tests when the functionality being tested makes more contextual sense to test in a fully functional Kubernetes cluster.
Validation Tests
TCPIngress
API spec are coveredTCPIngress
API spec are coveredGeneral Functionality Tests
TCPIngress
resources can be created and route properly to the relevantService
, the route becomes available in under 1 minuteTCPIngress
resources can be updated for a new backendService
, the routes change properly in under 1 minuteTCPIngress
spec changes, the behavior of persistent connections is tested (backend specific)TCPIngress
spec changes, repeated parallel transient connections to the backend show no failures.TCPIngress
resources can be deleted and the backend route is disconnected in under 1 minuteStatus Tests
TCPIngress
status is checked for consistentLoadBalancer
state between creation and multiple updates to the specSpecific Functionality Tests
TCPIngress
ingress TLS configurationTCPIngress
ingress TLS configuration for multiple hostsPerformance Tests
TCPIngress
resources can be rapidly created, each backend resolving in under 1 minuteTCPIngress
succeed, no failures at KIC/Kong levelTCPIngress
resources can be rapidly deleted, each backend route becomes disconnected in under 1 minuteThe text was updated successfully, but these errors were encountered: