feat(benchmarks): proxy external URL routing, HAProxy port alignment, and fleet filtering - #216
Conversation
Review —
|
a534e20 to
b095349
Compare
21c954f to
1f55238
Compare
Review Findings Resolution & Re-Review RequestAll review items have been resolved and pushed:
All unit tests passing locally. Re-review requested. |
Re-Review Request: Token Identity Gate & Test Matrix VerifiedAll review action items from the
Branch is fully ready for re-review and merge. |
…d proxies and align HAProxy 10080 port mapping - Resolve nodeport service external IP and internal IP for deployed proxies - Set HAProxy service and container port to 10080 in helm chart values - Prioritize deploy.external_url for benchmark dispatch - Add Layer 3 Kubernetes pod fallback check during target validation
…ng to benchmarks UI - Expose cluster_name on BenchmarkTarget, BenchmarkRun, and BenchmarkRunGroup - Add cluster_id query filter and eager loading to benchmark listing APIs - Integrate ClusterPicker fleet selector on Benchmarks page header - Display cluster column and badges in target lists and benchmark wizards
…and update test fixtures
…ate stale OpenAPI/TypeScript definitions
The L3 fallback runs for every internal-URL target on each validate; a miss is expected when the target has no backing Service, so it should not warn. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
5ba7881 to
6ed8718
Compare
Summary
This PR resolves external routability and port mapping issues when benchmarking non-BNK proxies (HAProxy and NGINX) from external benchmark agents, and introduces multi-cluster fleet filtering and cluster badging across the Benchmarks UI.
Key Changes
_resolve_service_external_urlinProxyDeployServiceto inspect Kubernetes NodePort allocations and worker node routable VPC IPs (InternalIP/ExternalIP/Hostname), storing the reachable URL inProxyDeployment.external_url.trigger_benchmark_runand scenario dispatches to prioritizedeploy.external_urlover internal cluster DNS.BenchmarkTargetService.validate_targetto verify backing services and running pods for internal cluster URLs._values_haproxyinProxyDeployServiceto setservice.ports.httpandcontainerPorts.httpto 10080 (matchinghaproxy.cfgbind port), eliminating connection refused errors on NodePort forwards.cluster_nameproperty toBenchmarkTarget,BenchmarkRun, andBenchmarkRunGroupmodels and response schemas.cluster_idquery filtering and eager loading to benchmark listing APIs.ClusterPickerintoBenchmarks.tsxheader for fleet-level aggregate or cluster-scoped views.Verification
test_proxy_deploy_resolve_url.py,test_validate_target.py,test_benchmark_cluster_info.py,test_proxy_deploy_new_proxies.py).BenchmarkTargetsTab.test.tsx).bnk-singapore: executed Run E2E: Dev/QA — performance & validation (benchmark run & compare) #60 against HAProxy with 250/250 successful requests (100% success rate).Also in this PR