<fix>[lb]: reject tcp ipvs on old zvr - #4695
Conversation
Fail tcp ipvs listener creation before the listener row is persisted when the target appliance zvr version is older than 5.5.38. This keeps unsupported routers from receiving an unusable listener payload and returns a clear API error. Test: mvn -pl :loadBalancer -am -DskipTests -DskipJacoco=true package Test: mvn -pl :virtualRouterProvider -am -DskipTests -DskipJacoco=true package Test: mvn -f test/pom.xml -DskipTests -DskipJacoco=true test-compile Test: live create tcp ipvs listener on 172.24.194.62 Resolves: ZSTAC-86989 Change-Id: I6e84e4339efa26258a9ce2572d33ab1004795492
Reject tcpProxyProtocol v1 and v2 for TCP IPVS listeners at API validation time while keeping disable as a no-op. This keeps HAProxy-only proxy protocol tags out of the IPVS listener path for both create and change requests. Test: git diff --check; loadBalancer compile; test-compile Resolves: ZSTAC-86990 Change-Id: Ife46ca83696fdbfdb5988e45c91f4c485a7f1523
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 7 minutes Limit details: You’ve used the included review currently available. Your 97 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (8)
Warning
|
ae4a65c to
b2d877c
Compare
Summary
Cloud rejects unsupported TCP IPVS listener requests before persistence and accepts
maxConnectionduring listener creation through the existing system-tag storage model.Behavior Changes
5.5.38.0; no listener record is persisted on failure.tcpProxyProtocol=v1/v2for TCP IPVS listeners;disableremains accepted.maxConnectionduring listener creation, normalize it tomaxConnection::<value>, retain the default when omitted, and reject conflicting field/tag values.Structural Changes
LoadBalancerBackend.validateBeforeCreateListener(...)performs provider-specific validation beforeLoadBalancerBasepersists the listener.maxConnection; the interceptor normalizes it into the existing system tag without adding a database column or changing the downstream payload format.Test Coverage
TcpIpvsZvrVersionValidationCasecovers old-ZVR rejection, supported-ZVR creation, rollback and fixture cleanup.TcpIpvsLoadBalancerListenerApiCasecovers create/changemaxConnection, refresh payload propagation and field/tag conflict rejection.mvn -pl plugin/loadBalancer -am -DskipTests -DskipJacoco=true compilepassed after the history rewrite.172.25.116.3covered version/proxy-protocol rejection, input normalization and listener cleanup.Resolves: ZSTAC-86989, ZSTAC-86990, ZSTAC-87017
sync from gitlab !10655