diff --git a/README.md b/README.md index 0e048cd7a4..29b073caa7 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,8 @@ Note that the external-provisioner does not scale with more replicas. Only one e * `--worker-threads `: Number of simultaneously running `ControllerCreateVolume` and `ControllerDeleteVolume` operations. Default value is `100`. +* `--cloning-protection-threads `: Number of simultaniously running threads, handling cloning finalizer removal. Defaults to `1`. + * `--metrics-address`: The TCP network address where the prometheus metrics endpoint will run (example: `:8080` which corresponds to port 8080 on local host). The default is empty string, which means metrics endpoint is disabled. * `--metrics-path`: The HTTP path where prometheus metrics will be exposed. Default is `/metrics`. diff --git a/cmd/csi-provisioner/csi-provisioner.go b/cmd/csi-provisioner/csi-provisioner.go index 816b542631..8bfdc4882e 100644 --- a/cmd/csi-provisioner/csi-provisioner.go +++ b/cmd/csi-provisioner/csi-provisioner.go @@ -61,6 +61,7 @@ var ( retryIntervalStart = flag.Duration("retry-interval-start", time.Second, "Initial retry interval of failed provisioning or deletion. It doubles with each failure, up to retry-interval-max.") retryIntervalMax = flag.Duration("retry-interval-max", 5*time.Minute, "Maximum retry interval of failed provisioning or deletion.") workerThreads = flag.Uint("worker-threads", 100, "Number of provisioner worker threads, in other words nr. of simultaneous CSI calls.") + finalizerThreads = flag.Uint("cloning-protection-threads", 1, "Number of simultaniously running threads, handling cloning finalizer removal") operationTimeout = flag.Duration("timeout", 10*time.Second, "Timeout for waiting for creation or deletion of a volume") _ = deprecatedflags.Add("provisioner") @@ -264,7 +265,7 @@ func main() { } } - go csiClaimController.Run(int(*workerThreads), stopCh) + go csiClaimController.Run(int(*finalizerThreads), stopCh) provisionController.Run(wait.NeverStop) }