From 5068e9f8db88d1a755800319b20b91b359acb4b8 Mon Sep 17 00:00:00 2001 From: Pedro Coutinho Date: Wed, 3 Aug 2022 10:58:00 -0700 Subject: [PATCH] Fix EncapsulationCalculator behavior when encapsulation is empty string --- felix/calc/encapsulation_resolver.go | 2 +- felix/calc/encapsulation_resolver_test.go | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/felix/calc/encapsulation_resolver.go b/felix/calc/encapsulation_resolver.go index ab9d9888979..29de5b8168c 100644 --- a/felix/calc/encapsulation_resolver.go +++ b/felix/calc/encapsulation_resolver.go @@ -198,7 +198,7 @@ func (c *EncapsulationCalculator) handleAPIPool(p model.KVPair) error { } poolKey := pool.Spec.CIDR - c.updatePool(poolKey, pool.Spec.IPIPMode != apiv3.IPIPModeNever, pool.Spec.VXLANMode != apiv3.VXLANModeNever) + c.updatePool(poolKey, pool.Spec.IPIPMode != "" && pool.Spec.IPIPMode != apiv3.IPIPModeNever, pool.Spec.VXLANMode != "" && pool.Spec.VXLANMode != apiv3.VXLANModeNever) return nil } diff --git a/felix/calc/encapsulation_resolver_test.go b/felix/calc/encapsulation_resolver_test.go index 01fe7d00cc1..408dec6c3a3 100644 --- a/felix/calc/encapsulation_resolver_test.go +++ b/felix/calc/encapsulation_resolver_test.go @@ -179,6 +179,19 @@ var _ = Describe("EncapsulationCalculator", func() { []model.KVPair{*getAPIPool("fe80::0/122", apiv3.IPIPModeNever, apiv3.VXLANModeCrossSubnet)}, nil, nil, nil, nil, false, false, true), + Entry("Initialize with initPools with empty string for encaps", + nil, nil, nil, nil, + &model.KVPairList{ + KVPairs: []*model.KVPair{ + getAPIPool("192.168.1.0/24", "", ""), + getAPIPool("192.168.2.0/24", "", ""), + }, + }, + false, false, false), + Entry("API pool with empty string for encaps", + []model.KVPair{*getAPIPool("192.168.1.0/24", "", "")}, + nil, nil, nil, nil, + false, false, false), ) }) Context("FelixConfig set", func() {