Skip to content

Commit

Permalink
Another review updates
Browse files Browse the repository at this point in the history
  • Loading branch information
jsafrane committed Mar 15, 2019
1 parent d352285 commit c0d0150
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@ Various external-provisioner releases come with different alpha / beta features.

Following table reflects the head of this branch.

| Feature | Status | Description |
| -------- | ------ | ------------------------------------------------------------------------------------------ |
| Topology | Beta | [Topology aware dynamic provisioning](https://kubernetes-csi.github.io/docs/topology.html) |
| Feature | Status | Default | Min. K8s version | Description |
| -------- | ------ | ------- | ---------------- | ------------------------------------------------------------------------------------------ |
| Topology | Beta | Off | 1.14 | [Topology aware dynamic provisioning](https://kubernetes-csi.github.io/docs/topology.html) |

All other external-provisioner features and the external-provisioner itself is considered GA and fully supported.

## Usage

Expand Down Expand Up @@ -53,11 +55,7 @@ Note that the external-provisioner does not scale with more replicas. Only one e
* `--worker-threads <num>`: Number of simultaneously running `ControllerCreateVolume` and `ControllerDeleteVolume` operations. Default value is `100`.

#### Other recognized arguments
* `--provisioning-retry-count <num>`: Sets number of retries of failed provisioning of a single volume. The external-provisioner will give up provisioning after given number of retries. It should be used only with special CSI drivers whose provisioning of volumes is extremely slow (e.g. hours or days) or expensive so the external-provisioner does not waste resources. Set to `0` to retry forever (which is also the default value).

* `--deletion-retry-count <num>`: Sets number of retries of failed deletion of a single volume. The external-provisioner will give up deletion of the volume after given number of retries. It should be used only with special CSI drivers whose deletion of volumes is extremely slow (e.g. hours or days) or expensive so the external-provisioner does not waste resources. Set to `0` to retry forever (which is also the default value).

* `--feature-gates <gates>`: Enables or disables alpha (disabled by default) or beta features (enabled by default). See [list of features](#feature-status) or `--help` output for list of recognized features.
* `--feature-gates <gates>`: A set of comma separated `<feature-name>=<true|false>` pairs that describe feature gates for alpha/experimental features. See [list of features](#feature-status) or `--help` output for list of recognized features. Example: `--feature-gates Topology=true`.

* `--kubeconfig <path>`: Path to Kubernetes client configuration that the external-provisioner uses to connect to Kubernetes API server. When omitted, default token provided by Kubernetes will be used. This option is useful only when the external-provisioner does not run as a Kubernetes pod, e.g. for debugging. Either this or `--master` needs to be set if the external-provisioner is being run out of cluster.

Expand All @@ -80,7 +78,7 @@ The external-provisioner invokes all gRPC calls to CSI driver with timeout provi

Correct timeout value and number of worker threads depends on the storage backend and how quickly it is able to processes `ControllerCreateVolume` and `ControllerDeleteVolume` calls. The value should be set to accommodate majority of them. It is fine if some calls time out - such calls will be re-tried after exponential backoff (starting with 1s by default), however, this backoff will introduce delay when the call times out several times for a single volume.

Frequency of `ControllerCreateVolume` and `ControllerDeleteVolume` retries can be configured by `--retry-interval-start` and `--retry-interval-max` parameters. The external-provisioner starts retries with `retry-interval-start` interval (1s by default) and doubles it with each failure until it reaches `retry-interval-max` (5 minutes by default). The external provisioner stops increasing the retry interval when it reaches `retry-interval-max`, however, it still re-tries provisioning/deletion of a volume. The external-provisioner keeps its own number of provisioning/deletion failures for each volume. Number of retries can be configured by `--provisioning-retry-count` and `--deletion-retry-count`, however, these should be used in extreme case where provisioning/deletion of a volume is very expensive in the underlying storage subsystem and/or cluster admin attention is needed to resume failed provisioning or deletion. By default, the external-provisioner retries forever until it provisions or deletes the volume.
Frequency of `ControllerCreateVolume` and `ControllerDeleteVolume` retries can be configured by `--retry-interval-start` and `--retry-interval-max` parameters. The external-provisioner starts retries with `retry-interval-start` interval (1s by default) and doubles it with each failure until it reaches `retry-interval-max` (5 minutes by default). The external provisioner stops increasing the retry interval when it reaches `retry-interval-max`, however, it still re-tries provisioning/deletion of a volume until it's provisioned. The external-provisioner keeps its own number of provisioning/deletion failures for each volume.

The external-provisioner can invoke up to `--worker-threads` (100 by default) `ControllerCreateVolume` **and** up to `--worker-threads` `ControllerDeleteVolume` calls in parallel, i.e. these two calls are counted separately. The external-provisioner assumes that the storage backend can cope with such high number of parallel requests and that the requests are handled in relatively short time (ideally sub-second). Lower value should be used for storage backends that expect slower processing related to newly created / deleted volumes or can handle lower amount of parallel calls.

Expand Down

0 comments on commit c0d0150

Please sign in to comment.