add csi timeout flag for request timeouts to CSI driver

This commit is contained in:
Andrew Kim
2019-02-14 12:31:16 -05:00
committed by Andrew Sy Kim
parent 22a67f3b74
commit 6504b48a2e

View File

@@ -51,7 +51,7 @@ const (
threads = 10 threads = 10
// Default timeout of short CSI calls like GetPluginInfo // Default timeout of short CSI calls like GetPluginInfo
csiTimeout = time.Second defaultCSITimeout = 10 * time.Second
) )
// Command line flags // Command line flags
@@ -66,6 +66,7 @@ var (
snapshotNamePrefix = flag.String("snapshot-name-prefix", "snapshot", "Prefix to apply to the name of a created snapshot") snapshotNamePrefix = flag.String("snapshot-name-prefix", "snapshot", "Prefix to apply to the name of a created snapshot")
snapshotNameUUIDLength = flag.Int("snapshot-name-uuid-length", -1, "Length in characters for the generated uuid of a created snapshot. Defaults behavior is to NOT truncate.") snapshotNameUUIDLength = flag.Int("snapshot-name-uuid-length", -1, "Length in characters for the generated uuid of a created snapshot. Defaults behavior is to NOT truncate.")
showVersion = flag.Bool("version", false, "Show version.") showVersion = flag.Bool("version", false, "Show version.")
csiTimeout = flag.Duration("timeout", defaultCSITimeout, "The timeout for any RPCs to the CSI driver. Default is 10s.")
leaderElection = flag.Bool("leader-election", false, "Enables leader election.") leaderElection = flag.Bool("leader-election", false, "Enables leader election.")
leaderElectionNamespace = flag.String("leader-election-namespace", "", "The namespace where the leader election resource exists. Defaults to the pod namespace if not set.") leaderElectionNamespace = flag.String("leader-election-namespace", "", "The namespace where the leader election resource exists. Defaults to the pod namespace if not set.")
@@ -142,7 +143,7 @@ func main() {
} }
// Pass a context with a timeout // Pass a context with a timeout
ctx, cancel := context.WithTimeout(context.Background(), csiTimeout) ctx, cancel := context.WithTimeout(context.Background(), *csiTimeout)
defer cancel() defer cancel()
// Find driver name // Find driver name
@@ -155,10 +156,9 @@ func main() {
klog.V(2).Infof("CSI driver name: %q", *snapshotterName) klog.V(2).Infof("CSI driver name: %q", *snapshotterName)
// Check it's ready // Check it's ready
if err = csirpc.ProbeForever(csiConn, csiTimeout); err != nil { if err = csirpc.ProbeForever(csiConn, *csiTimeout); err != nil {
klog.Errorf("error waiting for CSI driver to be ready: %v", err) klog.Errorf("error waiting for CSI driver to be ready: %v", err)
os.Exit(1) os.Exit(1)
} }
// Find out if the driver supports create/delete snapshot. // Find out if the driver supports create/delete snapshot.
@@ -191,7 +191,7 @@ func main() {
*createSnapshotContentRetryCount, *createSnapshotContentRetryCount,
*createSnapshotContentInterval, *createSnapshotContentInterval,
snapShotter, snapShotter,
*connectionTimeout, *csiTimeout,
*resyncPeriod, *resyncPeriod,
*snapshotNamePrefix, *snapshotNamePrefix,
*snapshotNameUUIDLength, *snapshotNameUUIDLength,