@@ -1265,6 +1265,63 @@ func TestGetWarmIPTargetStateWithPDenabled(t *testing.T) {
12651265 assert .Equal (t , 0 , over )
12661266}
12671267
1268+ func TestGetMaxIPs (t * testing.T ) {
1269+ m := setup (t )
1270+ defer m .ctrl .Finish ()
1271+
1272+ for _ , testCase := range []struct {
1273+ enablePrefixDelegation bool
1274+ useCustomNetworking bool
1275+ eniLimit int
1276+ eniIpv4Limit int
1277+ expectedMaxIps int
1278+ }{
1279+ {
1280+ // modeled for a t3.medium
1281+ eniLimit : 3 ,
1282+ eniIpv4Limit : 5 ,
1283+ expectedMaxIps : 15 ,
1284+ },
1285+ {
1286+ // modeled for a t3.medium
1287+ eniLimit : 3 ,
1288+ eniIpv4Limit : 5 ,
1289+ enablePrefixDelegation : true ,
1290+ expectedMaxIps : 240 ,
1291+ },
1292+ {
1293+ // modeled for a t3.medium
1294+ eniLimit : 3 ,
1295+ eniIpv4Limit : 5 ,
1296+ useCustomNetworking : true ,
1297+ expectedMaxIps : 10 ,
1298+ },
1299+ {
1300+ // modeled for a t3.medium
1301+ eniLimit : 3 ,
1302+ eniIpv4Limit : 5 ,
1303+ useCustomNetworking : true ,
1304+ expectedMaxIps : 10 ,
1305+ },
1306+ } {
1307+ mockContext := & IPAMContext {
1308+ awsClient : m .awsutils ,
1309+ networkClient : m .network ,
1310+ primaryIP : make (map [string ]string ),
1311+ terminating : int32 (0 ),
1312+ enablePrefixDelegation : testCase .enablePrefixDelegation ,
1313+ useCustomNetworking : testCase .useCustomNetworking ,
1314+ }
1315+ m .awsutils .EXPECT ().GetENILimit ().Return (testCase .eniLimit )
1316+ m .awsutils .EXPECT ().GetENIIPv4Limit ().Return (testCase .eniIpv4Limit )
1317+
1318+ maxIps , err := mockContext .getMaxIPs ()
1319+
1320+ assert .NoError (t , err )
1321+ assert .Equal (t , testCase .expectedMaxIps , maxIps )
1322+ }
1323+ }
1324+
12681325func TestIPAMContext_nodeIPPoolTooLow (t * testing.T ) {
12691326 m := setup (t )
12701327 defer m .ctrl .Finish ()
0 commit comments