@@ -58,6 +58,7 @@ import (
5858 ipamclaimsv1alpha1 "github.com/k8snetworkplumbingwg/ipamclaims/pkg/crd/ipamclaims/v1alpha1"
5959 nadapi "github.com/k8snetworkplumbingwg/network-attachment-definition-client/pkg/apis/k8s.cni.cncf.io/v1"
6060 nadv1 "github.com/k8snetworkplumbingwg/network-attachment-definition-client/pkg/apis/k8s.cni.cncf.io/v1"
61+ nadclient "github.com/k8snetworkplumbingwg/network-attachment-definition-client/pkg/client/clientset/versioned/typed/k8s.cni.cncf.io/v1"
6162
6263 iputils "github.com/containernetworking/plugins/pkg/ip"
6364
@@ -111,6 +112,7 @@ var _ = Describe("Kubevirt Virtual Machines", feature.VirtualMachineSupport, fun
111112 httpServerTestPods = []* corev1.Pod {}
112113 iperfServerTestPods = []* corev1.Pod {}
113114 clientSet kubernetes.Interface
115+ nadClient nadclient.K8sCniCncfIoV1Interface
114116 providerCtx infraapi.Context
115117 // Systemd resolvd prevent resolving kube api service by fqdn, so
116118 // we replace it here with NetworkManager
@@ -1329,6 +1331,15 @@ fi
13291331 return ra .Status .Status
13301332 }, 30 * time .Second , time .Second ).Should (Equal ("Accepted" ))
13311333 }
1334+
1335+ getJoinIPs = func (cudn * udnv1.ClusterUserDefinedNetwork ) []string {
1336+ nad , err := nadClient .NetworkAttachmentDefinitions (namespace ).Get (context .TODO (), cudn .Name , metav1.GetOptions {})
1337+ Expect (err ).NotTo (HaveOccurred ())
1338+ var result map [string ]interface {}
1339+ err = json .Unmarshal ([]byte (nad .Spec .Config ), & result )
1340+ Expect (err ).NotTo (HaveOccurred ())
1341+ return strings .Split (result ["joinSubnet" ].(string ), "," )
1342+ }
13321343 )
13331344 BeforeEach (func () {
13341345 // So we can use it at AfterEach, since fr.ClientSet is nil there
13411352
13421353 virtClient , err = kubevirt .NewClient ("/tmp" )
13431354 Expect (err ).NotTo (HaveOccurred ())
1355+
1356+ nadClient , err = nadclient .NewForConfig (fr .ClientConfig ())
1357+ Expect (err ).NotTo (HaveOccurred ())
13441358 })
13451359
13461360 Context ("with default pod network" , Ordered , func () {
@@ -1882,7 +1896,7 @@ ip route add %[3]s via %[4]s
18821896 nodeRunningVMI , err := fr .ClientSet .CoreV1 ().Nodes ().Get (context .Background (), vmi .Status .NodeName , metav1.GetOptions {})
18831897 Expect (err ).NotTo (HaveOccurred (), step )
18841898
1885- expectedIPv6GatewayPath , err := kubevirt .GenerateGatewayIPv6RouterLLA (nodeRunningVMI , networkName )
1899+ expectedIPv6GatewayPath , err := kubevirt .GenerateGatewayIPv6RouterLLA (nodeRunningVMI , getJoinIPs ( cudn ) )
18861900 Expect (err ).NotTo (HaveOccurred ())
18871901 Eventually (kubevirt .RetrieveIPv6Gateways ).
18881902 WithArguments (virtClient , vmi ).
@@ -1953,7 +1967,7 @@ ip route add %[3]s via %[4]s
19531967 targetNode , err := fr .ClientSet .CoreV1 ().Nodes ().Get (context .Background (), vmi .Status .MigrationState .TargetNode , metav1.GetOptions {})
19541968 Expect (err ).NotTo (HaveOccurred (), step )
19551969
1956- expectedGatewayMAC , err := kubevirt .GenerateGatewayMAC (targetNode , networkName )
1970+ expectedGatewayMAC , err := kubevirt .GenerateGatewayMAC (targetNode , getJoinIPs ( cudn ) )
19571971 Expect (err ).NotTo (HaveOccurred (), step )
19581972
19591973 Expect (err ).NotTo (HaveOccurred (), step )
@@ -1969,7 +1983,7 @@ ip route add %[3]s via %[4]s
19691983 targetNode , err := fr .ClientSet .CoreV1 ().Nodes ().Get (context .Background (), vmi .Status .MigrationState .TargetNode , metav1.GetOptions {})
19701984 Expect (err ).NotTo (HaveOccurred (), step )
19711985
1972- targetNodeIPv6GatewayPath , err := kubevirt .GenerateGatewayIPv6RouterLLA (targetNode , networkName )
1986+ targetNodeIPv6GatewayPath , err := kubevirt .GenerateGatewayIPv6RouterLLA (targetNode , getJoinIPs ( cudn ) )
19731987 Expect (err ).NotTo (HaveOccurred ())
19741988 Eventually (kubevirt .RetrieveIPv6Gateways ).
19751989 WithArguments (virtClient , vmi ).
0 commit comments