Skip to content

Commit fdc5ac7

Browse files
committed
add flag for max backoff duration
1 parent 134f114 commit fdc5ac7

File tree

5 files changed

+14
-10
lines changed

5 files changed

+14
-10
lines changed

cmd/gce-pd-csi-driver/main.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ var (
4343
metricsPath = flag.String("metrics-path", "/metrics", "The HTTP path where prometheus metrics will be exposed. Default is `/metrics`.")
4444

4545
errorBackoffInitialDurationMs = flag.Int("backoff-initial-duration-ms", 200, "The amount of ms for the initial duration of the backoff condition for controller publish/unpublish CSI operations. Default is 200.")
46+
errorBackoffMaxDurationMs = flag.Int("backoff-max-duration-ms", 300000, "The amount of ms for the max duration of the backoff condition for controller publish/unpublish CSI operations. Default is 300000 (5m).")
4647
extraVolumeLabelsStr = flag.String("extra-labels", "", "Extra labels to attach to each PD created. It is a comma separated list of key value pairs like '<key1>=<value1>,<key2>=<value2>'. See https://cloud.google.com/compute/docs/labeling-resources for details")
4748

4849
attachDiskBackoffDuration = flag.Duration("attach-disk-backoff-duration", 5*time.Second, "Duration for attachDisk backoff")
@@ -123,7 +124,9 @@ func handle() {
123124
if err != nil {
124125
klog.Fatalf("Failed to get cloud provider: %v", err)
125126
}
126-
controllerServer = driver.NewControllerServer(gceDriver, cloudProvider, time.Duration(*errorBackoffInitialDurationMs)*time.Millisecond)
127+
initialBackoffDuration := time.Duration(*errorBackoffInitialDurationMs) * time.Millisecond
128+
maxBackoffDuration := time.Duration(*errorBackoffMaxDurationMs) * time.Microsecond
129+
controllerServer = driver.NewControllerServer(gceDriver, cloudProvider, initialBackoffDuration, maxBackoffDuration)
127130
} else if *cloudConfigFilePath != "" {
128131
klog.Warningf("controller service is disabled but cloud config given - it has no effect")
129132
}

pkg/gce-pd-csi-driver/controller.go

+1-6
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,6 @@ import (
3737
gce "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-cloud-provider/compute"
3838
)
3939

40-
const (
41-
errorBackoffInitialDuration = 200 * time.Millisecond
42-
errorBackoffMaxDuration = 5 * time.Minute
43-
)
44-
4540
type GCEControllerServer struct {
4641
Driver *GCEDriver
4742
CloudProvider gce.GCECompute
@@ -1596,7 +1591,7 @@ func pickRandAndConsecutive(slice []string, n int) ([]string, error) {
15961591
return ret, nil
15971592
}
15981593

1599-
func newCsiErrorBackoff(initialDuration time.Duration) *csiErrorBackoff {
1594+
func newCsiErrorBackoff(initialDuration, errorBackoffMaxDuration time.Duration) *csiErrorBackoff {
16001595
return &csiErrorBackoff{flowcontrol.NewBackOff(initialDuration, errorBackoffMaxDuration)}
16011596
}
16021597

pkg/gce-pd-csi-driver/controller_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -2149,6 +2149,8 @@ type backoffTesterConfig struct {
21492149
}
21502150

21512151
func newFakeCsiErrorBackoff(tc *clock.FakeClock) *csiErrorBackoff {
2152+
errorBackoffInitialDuration := 200 * time.Millisecond
2153+
errorBackoffMaxDuration := 5 * time.Minute
21522154
return &csiErrorBackoff{flowcontrol.NewFakeBackOff(errorBackoffInitialDuration, errorBackoffMaxDuration, tc)}
21532155
}
21542156

pkg/gce-pd-csi-driver/gce-pd-driver.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -149,13 +149,13 @@ func NewNodeServer(gceDriver *GCEDriver, mounter *mount.SafeFormatAndMount, devi
149149
}
150150
}
151151

152-
func NewControllerServer(gceDriver *GCEDriver, cloudProvider gce.GCECompute, errorBackoffInitialDuration time.Duration) *GCEControllerServer {
152+
func NewControllerServer(gceDriver *GCEDriver, cloudProvider gce.GCECompute, errorBackoffInitialDuration, errorBackoffMaxDuration time.Duration) *GCEControllerServer {
153153
return &GCEControllerServer{
154154
Driver: gceDriver,
155155
CloudProvider: cloudProvider,
156156
seen: map[string]int{},
157157
volumeLocks: common.NewVolumeLocks(),
158-
errorBackoff: newCsiErrorBackoff(errorBackoffInitialDuration),
158+
errorBackoff: newCsiErrorBackoff(errorBackoffInitialDuration, errorBackoffMaxDuration),
159159
}
160160
}
161161

pkg/gce-pd-csi-driver/gce-pd-driver_test.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ package gceGCEDriver
1616

1717
import (
1818
"testing"
19+
"time"
1920

2021
gce "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-cloud-provider/compute"
2122
)
@@ -43,7 +44,10 @@ func initBlockingGCEDriver(t *testing.T, cloudDisks []*gce.CloudDisk, readyToExe
4344
func initGCEDriverWithCloudProvider(t *testing.T, cloudProvider gce.GCECompute) *GCEDriver {
4445
vendorVersion := "test-vendor"
4546
gceDriver := GetGCEDriver()
46-
controllerServer := NewControllerServer(gceDriver, cloudProvider, errorBackoffInitialDuration)
47+
errorBackoffInitialDuration := 200 * time.Millisecond
48+
errorBackoffMaxDuration := 5 * time.Minute
49+
50+
controllerServer := NewControllerServer(gceDriver, cloudProvider, errorBackoffInitialDuration, errorBackoffMaxDuration)
4751
err := gceDriver.SetupGCEDriver(driver, vendorVersion, nil, nil, controllerServer, nil)
4852
if err != nil {
4953
t.Fatalf("Failed to setup GCE Driver: %v", err)

0 commit comments

Comments
 (0)