Skip to content

Commit 803671e

Browse files
author
Joseph Chen
committed
Refactor IPTable Rules
1 parent b0ad571 commit 803671e

File tree

8 files changed

+307
-221
lines changed

8 files changed

+307
-221
lines changed

pkg/ipamd/ipamd.go

+7-2
Original file line numberDiff line numberDiff line change
@@ -391,10 +391,15 @@ func (c *IPAMContext) nodeInit() error {
391391
}
392392

393393
primaryENIMac := c.awsClient.GetPrimaryENImac()
394-
err = c.networkClient.SetupHostNetwork(vpcV4CIDRs, primaryENIMac, &primaryV4IP, c.enablePodENI, c.enableIPv4, c.enableIPv6)
394+
ipt, err := c.networkClient.SetupHostNetwork(vpcV4CIDRs, primaryENIMac, &primaryV4IP, c.enablePodENI, c.enableIPv4, c.enableIPv6)
395395
if err != nil {
396396
return errors.Wrap(err, "ipamd init: failed to set up host network")
397397
}
398+
err = c.networkClient.CleanUpStaleAWSChains(ipt)
399+
if err != nil {
400+
// We should not error if clean up fails since these chains don't affect the rules
401+
log.Debugf("Failed to clean up stale AWS chains: %v", err)
402+
}
398403

399404
metadataResult, err := c.awsClient.DescribeAllENIs()
400405
if err != nil {
@@ -583,7 +588,7 @@ func (c *IPAMContext) updateCIDRsRulesOnChange(oldVPCCIDRs []string) []string {
583588
new := sets.NewString(newVPCCIDRs...)
584589
if !old.Equal(new) {
585590
primaryIP := c.awsClient.GetLocalIPv4()
586-
err = c.networkClient.UpdateHostIptablesRules(newVPCCIDRs, c.awsClient.GetPrimaryENImac(), &primaryIP, c.enableIPv4,
591+
_, err = c.networkClient.UpdateHostIptablesRules(newVPCCIDRs, c.awsClient.GetPrimaryENImac(), &primaryIP, c.enableIPv4,
587592
c.enableIPv6)
588593
if err != nil {
589594
log.Warnf("unable to update host iptables rules for VPC CIDRs due to error: %v", err)

pkg/ipamd/ipamd_test.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,8 @@ func TestNodeInit(t *testing.T) {
149149
primaryIP := net.ParseIP(ipaddr01)
150150
m.awsutils.EXPECT().GetVPCIPv4CIDRs().AnyTimes().Return(cidrs, nil)
151151
m.awsutils.EXPECT().GetPrimaryENImac().Return("")
152-
m.network.EXPECT().SetupHostNetwork(cidrs, "", &primaryIP, false, true, false).Return(nil)
152+
m.network.EXPECT().SetupHostNetwork(cidrs, "", &primaryIP, false, true, false).Return(nil, nil)
153+
m.network.EXPECT().CleanUpStaleAWSChains(gomock.Any()).Return(nil)
153154
m.awsutils.EXPECT().GetPrimaryENI().AnyTimes().Return(primaryENIid)
154155
m.awsutils.EXPECT().RefreshSGIDs(gomock.Any()).AnyTimes().Return(nil)
155156

@@ -233,7 +234,8 @@ func TestNodeInitwithPDenabledIPv4Mode(t *testing.T) {
233234
primaryIP := net.ParseIP(ipaddr01)
234235
m.awsutils.EXPECT().GetVPCIPv4CIDRs().AnyTimes().Return(cidrs, nil)
235236
m.awsutils.EXPECT().GetPrimaryENImac().Return("")
236-
m.network.EXPECT().SetupHostNetwork(cidrs, "", &primaryIP, false, true, false).Return(nil)
237+
m.network.EXPECT().SetupHostNetwork(cidrs, "", &primaryIP, false, true, false).Return(nil, nil)
238+
m.network.EXPECT().CleanUpStaleAWSChains(gomock.Any()).Return(nil)
237239
m.awsutils.EXPECT().GetPrimaryENI().AnyTimes().Return(primaryENIid)
238240
m.awsutils.EXPECT().RefreshSGIDs(gomock.Any()).AnyTimes().Return(nil)
239241

@@ -307,7 +309,8 @@ func TestNodeInitwithPDenabledIPv6Mode(t *testing.T) {
307309
m.awsutils.EXPECT().IsCNIUnmanagedENI(eni1.ENIID).Return(false).AnyTimes()
308310

309311
primaryIP := net.ParseIP(ipaddr01)
310-
m.network.EXPECT().SetupHostNetwork(cidrs, eni1.MAC, &primaryIP, false, false, true).Return(nil)
312+
m.network.EXPECT().SetupHostNetwork(cidrs, eni1.MAC, &primaryIP, false, false, true).Return(nil, nil)
313+
m.network.EXPECT().CleanUpStaleAWSChains(gomock.Any()).Return(nil)
311314
m.awsutils.EXPECT().GetIPv6PrefixesFromEC2(eni1.ENIID).AnyTimes().Return(eni1.IPv6Prefixes, nil)
312315
m.awsutils.EXPECT().GetPrimaryENI().AnyTimes().Return(primaryENIid)
313316
m.awsutils.EXPECT().GetPrimaryENImac().Return(eni1.MAC)

pkg/networkutils/mocks/network_mocks.go

+23-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)