@@ -237,17 +237,7 @@ const (
237237 - eth0
238238 - eth1`
239239
240- expectedValidNetworkConfigValidFIBRule = `network:
241- version: 2
242- renderer: networkd
243- ethernets:
244- vrfs:
245- vrf-blue:
246- table: 500
247- routing-policy:
248- - { "from": "10.10.0.0/16", }`
249-
250- expectedValidNetworkNotGateway = `network:
240+ expectedValidNetworkConfigMultipleNicsMultipleVRF = `network:
251241 version: 2
252242 renderer: networkd
253243 ethernets:
@@ -272,10 +262,39 @@ const (
272262 dhcp6: false
273263 addresses:
274264 - 196.168.100.124/24
265+ routes:
266+ - to: 0.0.0.0/0
267+ via: 196.168.100.254
275268 nameservers:
276269 addresses:
277270 - '8.8.8.8'
278- - '8.8.4.4'`
271+ - '8.8.4.4'
272+ vrfs:
273+ vrf-blue:
274+ table: 500
275+ routes:
276+ - { "to": "default", "via": "192.168.178.1", "metric": 100, "table": 100, }
277+ - { "to": "10.10.10.0/24", "via": "192.168.178.254", "metric": 100, }
278+ routing-policy:
279+ - { "to": "0.0.0.0/0", "from": "192.168.178.1/24", "priority": 999, "table": 100, }
280+ interfaces:
281+ - eth0
282+ vrf-red:
283+ table: 501
284+ routing-policy:
285+ - { "to": "0.0.0.0/0", "from": "192.168.100.0/24", "priority": 999, "table": 101, }
286+ interfaces:
287+ - eth1`
288+
289+ expectedValidNetworkConfigValidFIBRule = `network:
290+ version: 2
291+ renderer: networkd
292+ ethernets:
293+ vrfs:
294+ vrf-blue:
295+ table: 500
296+ routing-policy:
297+ - { "from": "10.10.0.0/16", }`
279298)
280299
281300func TestNetworkConfig_Render (t * testing.T ) {
@@ -625,6 +644,67 @@ func TestNetworkConfig_Render(t *testing.T) {
625644 err : nil ,
626645 },
627646 },
647+ "ValidNetworkConfigMultipleNicsMultipleVRF" : {
648+ reason : "valid config multiple nics enslaved to multiple VRFs" ,
649+ args : args {
650+ nics : []NetworkConfigData {
651+ {
652+ Type : "ethernet" ,
653+ Name : "eth0" ,
654+ MacAddress : "92:60:a0:5b:22:c2" ,
655+ IPAddress : "10.10.10.12/24" ,
656+ Gateway : "10.10.10.1" ,
657+ DNSServers : []string {"8.8.8.8" , "8.8.4.4" },
658+ },
659+ {
660+ Type : "ethernet" ,
661+ Name : "eth1" ,
662+ MacAddress : "b4:87:18:bf:a3:60" ,
663+ IPAddress : "196.168.100.124/24" ,
664+ Gateway : "196.168.100.254" ,
665+ DNSServers : []string {"8.8.8.8" , "8.8.4.4" },
666+ },
667+ {
668+ Type : "vrf" ,
669+ Name : "vrf-blue" ,
670+ Table : 500 ,
671+ Interfaces : []string {"eth0" },
672+ Routes : []RoutingData {{
673+ To : "default" ,
674+ Via : "192.168.178.1" ,
675+ Metric : 100 ,
676+ Table : 100 ,
677+ }, {
678+ To : "10.10.10.0/24" ,
679+ Via : "192.168.178.254" ,
680+ Metric : 100 ,
681+ }},
682+ FIBRules : []FIBRuleData {{
683+ To : "0.0.0.0/0" ,
684+ From : "192.168.178.1/24" ,
685+ Priority : 999 ,
686+ Table : 100 ,
687+ }},
688+ },
689+ {
690+ Type : "vrf" ,
691+ Name : "vrf-red" ,
692+ Table : 501 ,
693+ Interfaces : []string {"eth1" },
694+ FIBRules : []FIBRuleData {{
695+ To : "0.0.0.0/0" ,
696+ From : "192.168.100.0/24" ,
697+ Priority : 999 ,
698+ Table : 101 ,
699+ }},
700+ },
701+ },
702+ },
703+ want : want {
704+ network : expectedValidNetworkConfigMultipleNicsMultipleVRF ,
705+ err : nil ,
706+ },
707+ },
628708 "ValidNetworkConfigValidFIBRule" : {
629709 reason : "valid config valid routing policy" ,
630710 args : args {
@@ -664,32 +744,6 @@ func TestNetworkConfig_Render(t *testing.T) {
664744 err : ErrMalformedRoute ,
665745 },
666746 },
667- "AdditionalNicNoGateway" : {
668- reason : "missing route is okay" ,
669- args : args {
670- nics : []NetworkConfigData {
671- {
672- Type : "ethernet" ,
673- Name : "eth0" ,
674- MacAddress : "92:60:a0:5b:22:c2" ,
675- IPAddress : "10.10.10.12/24" ,
676- Gateway : "10.10.10.1" ,
677- DNSServers : []string {"8.8.8.8" , "8.8.4.4" },
678- },
679- {
680- Type : "ethernet" ,
681- Name : "eth1" ,
682- MacAddress : "b4:87:18:bf:a3:60" ,
683- IPAddress : "196.168.100.124/24" ,
684- DNSServers : []string {"8.8.8.8" , "8.8.4.4" },
685- },
686- },
687- },
688- want : want {
689- network : expectedValidNetworkNotGateway ,
690- err : nil ,
691- },
692- },
693747 }
694748
695749 for n , tc := range cases {
0 commit comments