diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go index 972ed686d11..0c8258ce300 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go @@ -1643,7 +1643,9 @@ func (az *Cloud) reconcileLoadBalancerRule( if probeProtocol == "" { probeProtocol = string(network.ProbeProtocolHTTP) } - if requestPath == "" { + + needRequestPath := strings.EqualFold(probeProtocol, string(network.ProbeProtocolHTTP)) || strings.EqualFold(probeProtocol, string(network.ProbeProtocolHTTPS)) + if requestPath == "" && needRequestPath { requestPath = podPresencePath } diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go index a1fbc33efcf..37ac7341688 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go @@ -1726,6 +1726,15 @@ func TestReconcileLoadBalancerRule(t *testing.T) { expectedProbes: getDefaultTestProbes("Tcp", ""), expectedRules: getHATestRules(true), }, + { + desc: "reconcileLoadBalancerRule shall leave probe path empty when using TCP probe", + service: getTestService("test1", v1.ProtocolTCP, nil, false, 80), + loadBalancerSku: "standard", + wantLb: true, + probeProtocol: "Tcp", + expectedProbes: getDefaultTestProbes("Tcp", ""), + expectedRules: getDefaultTestRules(true), + }, } for i, test := range testCases { az := GetTestCloud(ctrl)