Skip to content

Commit 1497ac3

Browse files
authored
Merge pull request #5511 from cathy-zhou/unpriv_fix
incorrect CNI result for primary UDN is returned in the unprivileged …
2 parents 7c04728 + 0e52a99 commit 1497ac3

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
lines changed

go-controller/pkg/cni/cni.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ func (pr *PodRequest) cmdAddWithGetCNIResultFunc(
238238
return nil, err
239239
}
240240
if primaryUDNPodRequest != nil {
241-
err = primaryUDNCmdAddGetCNIResultFunc(response, getCNIResultFn, primaryUDNPodRequest, clientset, primaryUDNPodInfo)
241+
err = primaryUDNCmdAddGetCNIResultFunc(response.Result, getCNIResultFn, primaryUDNPodRequest, clientset, primaryUDNPodInfo)
242242
if err != nil {
243243
return nil, err
244244
}
@@ -254,24 +254,24 @@ func (pr *PodRequest) cmdAddWithGetCNIResultFunc(
254254
return response, nil
255255
}
256256

257-
func primaryUDNCmdAddGetCNIResultFunc(response *Response, getCNIResultFn getCNIResultFunc, primaryUDNPodRequest *PodRequest,
257+
func primaryUDNCmdAddGetCNIResultFunc(result *current.Result, getCNIResultFn getCNIResultFunc, primaryUDNPodRequest *PodRequest,
258258
clientset PodInfoGetter, primaryUDNPodInfo *PodInterfaceInfo) error {
259259
primaryUDNResult, err := getCNIResultFn(primaryUDNPodRequest, clientset, primaryUDNPodInfo)
260260
if err != nil {
261261
return err
262262
}
263263

264-
response.Result.Routes = append(response.Result.Routes, primaryUDNResult.Routes...)
265-
numOfInitialIPs := len(response.Result.IPs)
266-
numOfInitialIfaces := len(response.Result.Interfaces)
267-
response.Result.Interfaces = append(response.Result.Interfaces, primaryUDNResult.Interfaces...)
268-
response.Result.IPs = append(response.Result.IPs, primaryUDNResult.IPs...)
264+
result.Routes = append(result.Routes, primaryUDNResult.Routes...)
265+
numOfInitialIPs := len(result.IPs)
266+
numOfInitialIfaces := len(result.Interfaces)
267+
result.Interfaces = append(result.Interfaces, primaryUDNResult.Interfaces...)
268+
result.IPs = append(result.IPs, primaryUDNResult.IPs...)
269269

270270
// Offset the index of the default network IPs to correctly point to the default network interfaces
271-
for i := numOfInitialIPs; i < len(response.Result.IPs); i++ {
272-
ifaceIPConfig := response.Result.IPs[i].Copy()
273-
if response.Result.IPs[i].Interface != nil {
274-
response.Result.IPs[i].Interface = current.Int(*ifaceIPConfig.Interface + numOfInitialIfaces)
271+
for i := numOfInitialIPs; i < len(result.IPs); i++ {
272+
ifaceIPConfig := result.IPs[i].Copy()
273+
if result.IPs[i].Interface != nil {
274+
result.IPs[i].Interface = current.Int(*ifaceIPConfig.Interface + numOfInitialIfaces)
275275
}
276276
}
277277
return nil

go-controller/pkg/cni/cnishim.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ func (p *Plugin) CmdAdd(args *skel.CmdArgs) error {
266266
primaryUDNPodRequest := response.PrimaryUDNPodReq
267267
primaryUDNPodRequest.ctx, primaryUDNPodRequest.cancel = context.WithCancel(pr.ctx)
268268
defer primaryUDNPodRequest.cancel()
269-
err = primaryUDNCmdAddGetCNIResultFunc(response, getCNIResult, primaryUDNPodRequest, clientset, response.PrimaryUDNPodInfo)
269+
err = primaryUDNCmdAddGetCNIResultFunc(result, getCNIResult, primaryUDNPodRequest, clientset, response.PrimaryUDNPodInfo)
270270
if err != nil {
271271
klog.Error(err.Error())
272272
return err

go-controller/pkg/cni/udn/resource.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,11 @@ func getPodResourceInfo(pod *corev1.Pod, resourceName string) (*types.ResourceIn
2020
if err != nil {
2121
return nil, fmt.Errorf("failed to get resources allocated for pod %s from ResourceClient: %v", podDesc, err)
2222
}
23-
klog.V(5).Infof("ResourceMap for pod %s: %+v", pod, resourceMap)
24-
2523
entry, ok := resourceMap[resourceName]
2624
if !ok {
2725
return nil, fmt.Errorf("failed to get resources allocated for pod %s: no resources for resource %s", podDesc, resourceName)
2826
}
27+
klog.V(5).Infof("ResourceMap for pod %s resource %s: %+v", podDesc, resourceName, entry)
2928
return entry, nil
3029
}
3130

0 commit comments

Comments
 (0)