Skip to content

Commit 00abe40

Browse files
committed
cni: retry get mac on new eni
Signed-off-by: l1b0k <[email protected]>
1 parent b8b91be commit 00abe40

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

Diff for: plugin/terway/cni.go

+14-1
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@ package main
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"net"
78
"runtime"
89
"time"
910

1011
"google.golang.org/grpc/backoff"
1112
"google.golang.org/grpc/credentials/insecure"
13+
"k8s.io/apimachinery/pkg/util/wait"
14+
"k8s.io/client-go/util/retry"
1215

1316
"github.com/AliyunContainerService/terway/pkg/link"
1417
"github.com/AliyunContainerService/terway/plugin/datapath"
@@ -298,7 +301,17 @@ func parseSetupConf(args *skel.CmdArgs, alloc *rpc.NetConf, conf *types.CNIConf,
298301
if alloc.GetENIInfo() != nil {
299302
mac := alloc.GetENIInfo().GetMAC()
300303
if mac != "" {
301-
deviceID, err = link.GetDeviceNumber(mac)
304+
err = retry.OnError(wait.Backoff{
305+
Steps: 10,
306+
Duration: 1 * time.Second,
307+
Factor: 1.0,
308+
Jitter: 0,
309+
}, func(err error) bool {
310+
return errors.Is(err, link.ErrNotFound)
311+
}, func() error {
312+
deviceID, err = link.GetDeviceNumber(mac)
313+
return err
314+
})
302315
if err != nil {
303316
return nil, err
304317
}

0 commit comments

Comments
 (0)