mirror of
https://github.com/k8snetworkplumbingwg/multus-cni.git
synced 2025-06-28 08:36:52 +00:00
Merge pull request #906 from TimFroidcoeur/fix_multiple_default_gw
fix multiple default gw
This commit is contained in:
commit
371123659b
@ -628,16 +628,14 @@ func CheckGatewayConfig(delegates []*DelegateNetConf) error {
|
|||||||
|
|
||||||
// set filter flag for each delegate
|
// set filter flag for each delegate
|
||||||
for i, delegate := range delegates {
|
for i, delegate := range delegates {
|
||||||
// no GatewayRequest
|
delegates[i].IsFilterV4Gateway = true
|
||||||
if delegate.GatewayRequest == nil {
|
delegates[i].IsFilterV6Gateway = true
|
||||||
delegates[i].IsFilterV4Gateway = true
|
if delegate.GatewayRequest != nil {
|
||||||
delegates[i].IsFilterV6Gateway = true
|
|
||||||
} else {
|
|
||||||
for _, gw := range *delegate.GatewayRequest {
|
for _, gw := range *delegate.GatewayRequest {
|
||||||
if gw.To4() != nil {
|
if gw.To4() != nil {
|
||||||
delegates[i].IsFilterV6Gateway = true
|
delegates[i].IsFilterV4Gateway = false
|
||||||
} else {
|
} else {
|
||||||
delegates[i].IsFilterV4Gateway = true
|
delegates[i].IsFilterV6Gateway = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -928,7 +928,12 @@ var _ = Describe("config operations", func() {
|
|||||||
|
|
||||||
netconf, err := LoadDelegateNetConf([]byte(conf), ns, "", "")
|
netconf, err := LoadDelegateNetConf([]byte(conf), ns, "", "")
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
|
Expect(CheckGatewayConfig([]*DelegateNetConf{netconf})).To(Succeed())
|
||||||
|
|
||||||
Expect(netconf.GatewayRequest).To(BeNil())
|
Expect(netconf.GatewayRequest).To(BeNil())
|
||||||
|
Expect(netconf.IsFilterV4Gateway).To(BeTrue())
|
||||||
|
Expect(netconf.IsFilterV6Gateway).To(BeTrue())
|
||||||
})
|
})
|
||||||
|
|
||||||
It("test LoadDelegateNetConf keeps empty GatewayRequest", func() {
|
It("test LoadDelegateNetConf keeps empty GatewayRequest", func() {
|
||||||
@ -950,8 +955,13 @@ var _ = Describe("config operations", func() {
|
|||||||
|
|
||||||
netconf, err := LoadDelegateNetConf([]byte(conf), ns, "", "")
|
netconf, err := LoadDelegateNetConf([]byte(conf), ns, "", "")
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
|
Expect(CheckGatewayConfig([]*DelegateNetConf{netconf})).To(Succeed())
|
||||||
|
|
||||||
Expect(netconf.GatewayRequest).NotTo(BeNil())
|
Expect(netconf.GatewayRequest).NotTo(BeNil())
|
||||||
Expect(len(*netconf.GatewayRequest)).To(BeEquivalentTo(0))
|
Expect(len(*netconf.GatewayRequest)).To(Equal(0))
|
||||||
|
Expect(netconf.IsFilterV4Gateway).To(BeTrue())
|
||||||
|
Expect(netconf.IsFilterV6Gateway).To(BeTrue())
|
||||||
})
|
})
|
||||||
|
|
||||||
It("test LoadDelegateNetConf keeps GatewayRequest", func() {
|
It("test LoadDelegateNetConf keeps GatewayRequest", func() {
|
||||||
@ -973,8 +983,41 @@ var _ = Describe("config operations", func() {
|
|||||||
|
|
||||||
netconf, err := LoadDelegateNetConf([]byte(conf), ns, "", "")
|
netconf, err := LoadDelegateNetConf([]byte(conf), ns, "", "")
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
|
Expect(CheckGatewayConfig([]*DelegateNetConf{netconf})).To(Succeed())
|
||||||
|
|
||||||
Expect(netconf.GatewayRequest).NotTo(BeNil())
|
Expect(netconf.GatewayRequest).NotTo(BeNil())
|
||||||
Expect(len(*netconf.GatewayRequest)).To(BeEquivalentTo(1))
|
Expect(len(*netconf.GatewayRequest)).To(Equal(1))
|
||||||
|
Expect(netconf.IsFilterV4Gateway).To(BeFalse())
|
||||||
|
Expect(netconf.IsFilterV6Gateway).To(BeTrue())
|
||||||
|
})
|
||||||
|
|
||||||
|
It("test LoadDelegateNetConf keeps dual GatewayRequest", func() {
|
||||||
|
conf := `{
|
||||||
|
"name": "node-cni-network",
|
||||||
|
"type": "multus",
|
||||||
|
"kubeconfig": "/etc/kubernetes/node-kubeconfig.yaml",
|
||||||
|
"delegates": [{
|
||||||
|
"name": "weave-list",
|
||||||
|
"plugins": [ {"type" :"weave"} ]
|
||||||
|
}]
|
||||||
|
}`
|
||||||
|
|
||||||
|
nsJSON := `{ "name": "foobar", "default-route": [ "10.1.1.1", "fc00::1" ] }`
|
||||||
|
ns := &NetworkSelectionElement{}
|
||||||
|
|
||||||
|
err := json.Unmarshal([]byte(nsJSON), ns)
|
||||||
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
|
netconf, err := LoadDelegateNetConf([]byte(conf), ns, "", "")
|
||||||
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
|
Expect(CheckGatewayConfig([]*DelegateNetConf{netconf})).To(Succeed())
|
||||||
|
|
||||||
|
Expect(netconf.GatewayRequest).NotTo(BeNil())
|
||||||
|
Expect(len(*netconf.GatewayRequest)).To(Equal(2))
|
||||||
|
Expect(netconf.IsFilterV4Gateway).To(BeFalse())
|
||||||
|
Expect(netconf.IsFilterV6Gateway).To(BeFalse())
|
||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user