diff --git a/pkg/loadbalancers/forwarding_rules.go b/pkg/loadbalancers/forwarding_rules.go index eb1d869377..901a0e406d 100644 --- a/pkg/loadbalancers/forwarding_rules.go +++ b/pkg/loadbalancers/forwarding_rules.go @@ -423,6 +423,7 @@ func Equal(fr1, fr2 *composite.ForwardingRule) (bool, error) { fr1.IPProtocol == fr2.IPProtocol && fr1.LoadBalancingScheme == fr2.LoadBalancingScheme && utils.EqualStringSets(fr1.Ports, fr2.Ports) && + fr1.PortRange == fr2.PortRange && id1.Equal(id2) && fr1.AllowGlobalAccess == fr2.AllowGlobalAccess && fr1.AllPorts == fr2.AllPorts && diff --git a/pkg/loadbalancers/forwarding_rules_test.go b/pkg/loadbalancers/forwarding_rules_test.go index f27aa8daec..90c03c6b2e 100644 --- a/pkg/loadbalancers/forwarding_rules_test.go +++ b/pkg/loadbalancers/forwarding_rules_test.go @@ -179,6 +179,23 @@ func TestForwardingRulesEqual(t *testing.T) { }, } + frPortRange1 := &composite.ForwardingRule{ + Name: "tcp-fwd-rule", + IPAddress: "10.0.0.0", + PortRange: "2-3", + IPProtocol: "TCP", + LoadBalancingScheme: string(cloud.SchemeInternal), + BackendService: "http://www.googleapis.com/projects/test/regions/us-central1/backendServices/bs1", + } + frPortRange2 := &composite.ForwardingRule{ + Name: "tcp-fwd-rule", + IPAddress: "10.0.0.0", + PortRange: "1-2", + IPProtocol: "TCP", + LoadBalancingScheme: string(cloud.SchemeInternal), + BackendService: "http://www.googleapis.com/projects/test/regions/us-central1/backendServices/bs1", + } + for _, tc := range []struct { desc string oldFwdRule *composite.ForwardingRule @@ -227,6 +244,12 @@ func TestForwardingRulesEqual(t *testing.T) { newFwdRule: fwdRules[7], expect: false, }, + { + desc: "same forwarding rule, different port ranges", + oldFwdRule: frPortRange1, + newFwdRule: frPortRange2, + expect: false, + }, } { t.Run(tc.desc, func(t *testing.T) { got, err := Equal(tc.oldFwdRule, tc.newFwdRule)