<fix>[lb]: reject tcp ipvs on old zvr - #4710
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 HAProxy-only connectionIdleTimeout, nbprocess, and enabled proxy protocol settings for TCP IPVS listeners. Do not generate HAProxy defaults for new TCP IPVS listeners, and validate generic system tag create or update operations so they cannot bypass the listener API checks. Keep HAProxy listener behavior intact. Test: loadBalancer compile and Groovy test-compile Resolves: ZSTAC-86990 Change-Id: Ife46ca83696fdbfdb5988e45c91f4c485a7f1523
Allow TCP IPVS listener creation when the target appliance has not reported a valid ZVR version. Reject only known versions below the minimum, and trim stored version text before comparison. Cover unknown, whitespace-padded old, and supported versions. Test: virtualRouterProvider package and Groovy test-compile Resolves: ZSTAC-86989 Change-Id: I8f1ae9f04be9669e17efbd15ec634bb86a37e912
|
Warning Review limit reachedNext included review available in 55 minutes. View limit detailsLimit details: You’ve used the included review currently available. Your 61 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. Review configuration: ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (9)
Warning
|
Summary
Cloud rejects unsupported TCP IPVS listener requests before persistence, including old ZVR appliances and HAProxy-only Proxy Protocol settings.
Behavior Changes
5.5.38.0; no listener record is persisted on failure.tcpProxyProtocol=v1/v2for TCP IPVS listeners;disableremains accepted.Structural Changes
LoadBalancerBackend.validateBeforeCreateListener(...)performs provider-specific validation beforeLoadBalancerBasepersists the listener.virtualRouterProviderresolves the target appliance and checksVirtualRouterMetadataVO.zvrVersion.Test Coverage
TcpIpvsZvrVersionValidationCasecovers old-ZVR rejection, supported-ZVR creation, rollback and fixture cleanup.TcpIpvsLoadBalancerListenerApiCasecovers TCP IPVS Proxy Protocol rejection and the accepteddisablevalue.172.25.116.3confirmed version/proxy-protocol failures leave no listener residue.Resolves: ZSTAC-86989, ZSTAC-86990
sync from gitlab !10764