Skip to content

Commit b0e70a2

Browse files
authored
Merge pull request #39 from hughdanliu/documentation-updates
Minor documentation adjustments
2 parents 0f0451b + b8b83da commit b0e70a2

File tree

5 files changed

+32
-31
lines changed

5 files changed

+32
-31
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ The [Amazon FSx for OpenZFS](https://aws.amazon.com/fsx/openzfs/) Container Stor
1212
* **Static Provisioning** - Associate an externally-created FSx for OpenZFS file system or volume with a [PersistentVolume](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) (PV) for consumption within Kubernetes.
1313
* **Dynamic Provisioning** - Automatically create FSx for OpenZFS file systems or volumes and associated [PersistentVolumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) (PV) from [PersistentVolumeClaims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#dynamic) (PVC). Parameters can be passed via a [StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes/#the-storageclass-resource) for fine-grained control over volume creation.
1414
* **Mount Options** - NFS Mount options can be specified in the [PersistentVolume](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) (PV) resource to define how the volume should be mounted.
15-
* **Volume Snapshots** - Create and restore [snapshots](https://kubernetes.io/docs/concepts/storage/volume-snapshots/) taken from a volume in Kubernetes.
16-
* **Volume Resizing** - Expand the Persistent Volume by specifying a new size in the [PersistentVolumeClaim](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) (PVC).
15+
* **Volume Snapshots** - Create and restore [snapshots](https://kubernetes.io/docs/concepts/storage/volume-snapshots/) taken from a volume in Kubernetes. These snapshots can then be used to create new FSx for OpenZFS volumes.
16+
* **Volume Resizing** - Expand an FSx for OpenZFS file system by specifying a new size in the [PersistentVolumeClaim](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) (PVC).
1717

1818
### CSI Interfaces
1919
* Controller Service: ControllerGetCapabilities, CreateVolume, DeleteVolume, CreateSnapshot, DeleteSnapshot, ControllerExpandVolume

docs/install.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@
33
## Prerequisites
44

55
* Kubernetes Version >= 1.20
6-
7-
* If you are using a self managed cluster, ensure the flag `--allow-privileged=true` for `kube-apiserver`.
6+
* Cluster running in EKS - the FSx for OpenZFS CSI driver currently does not support usage with self-managed clusters.
87

98
* Important: If you intend to use the Volume Snapshot feature, the [Kubernetes Volume Snapshot CRDs](https://github.com/kubernetes-csi/external-snapshotter/tree/master/client/config/crd) must be installed **before** the FSx for OpenZFS CSI driver. For installation instructions, see [CSI Snapshotter Usage](https://github.com/kubernetes-csi/external-snapshotter#usage).
109

1110
## Installation
1211
### Set up driver permissions
13-
The driver requires IAM permissions to interact with the Amazon FSx for OpenZFS service to create/delete file systems, volumes, and snapshots on user's behalf.
12+
The driver requires IAM permissions to interact with the Amazon FSx for OpenZFS service to create/delete file systems, volumes, and snapshots on the user's behalf.
1413
There are several methods to grant the driver IAM permissions:
15-
* Using [IAM roles for ServiceAccounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) (**Recommended**) - Create a Kubernetes service account for the driver and attach the AmazonFSxFullAccess AWS-managed policy to it with the following command. If your cluster is in the AWS GovCloud Regions, then replace arn:aws: with arn:aws-us-gov. Likewise, if your cluster is in the AWS China Regions, replace arn:aws: with arn:aws-cn:
14+
* Using [IAM roles for ServiceAccounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) (**Recommended**) - Create a Kubernetes service account for the driver and attach the AmazonFSxFullAccess AWS-managed policy to it with the following command. If your cluster is in the AWS GovCloud Regions, then replace arn:aws: with arn:aws-us-gov. Likewise, if your cluster is in the AWS China Regions, replace arn:aws: with arn:aws-cn.
1615
```sh
1716
eksctl create iamserviceaccount \
1817
--name fsx-openzfs-csi-controller-sa \
@@ -74,10 +73,10 @@ See [here](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.htm
7473
```
7574

7675
### Configure driver toleration settings
77-
By default, the driver controller tolerates taint `CriticalAddonsOnly` and has `tolerationSeconds` configured as `300`.
78-
Additionally, the driver node tolerates all taints.
79-
If you do not wish to deploy the driver node on all nodes, please set Helm `Value.node.tolerateAllTaints` to false before deployment.
80-
Add policies to `Value.node.tolerations` to configure customized toleration for nodes.
76+
By default, the driver controller pod tolerates taint `CriticalAddonsOnly` and has `tolerationSeconds` configured as `300`.
77+
Additionally, the driver node pod tolerates all taints.
78+
If you do not wish to deploy the driver node pod on all nodes, please set Helm `Value.node.tolerateAllTaints` to false before deployment.
79+
You may then add policies to `Value.node.tolerations` to configure customized tolerations for nodes.
8180

8281
### Configure node startup taint
8382
There are potential race conditions on node startup (especially when a node is first joining the cluster)
@@ -92,7 +91,7 @@ kubectl taint nodes $NODE_NAME fsx.openzfs.csi.aws.com/agent-not-ready:NoExecute
9291
```
9392
Note that any effect will work, but `NoExecute` is recommended.
9493

95-
For example, EKS Managed Node Groups [support automatically tainting nodes](https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html).
94+
EKS Managed Node Groups support automatically tainting nodes, see [here](https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html) for more details.
9695

9796
### Deploy driver
9897
You may deploy the FSx for OpenZFS CSI driver via Kustomize or Helm

docs/options.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Driver Options
2-
There are several driver options that can be passed as arguments when deploying the driver.
2+
There are several driver options that may be passed as arguments when deploying the driver.
33

44
| Option argument | value sample | default | Description |
55
|-----------------------------|---------------------------------------------------|-----------------------------------------------------|---------------------------------------------------------|

docs/parameters.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@ The AWS FSx for OpenZFS CSI Driver supports the dynamic provisioning of both FSx
44
To do this, the driver accepts **TWO** forms of storage classes: one for provisioning new file systems, and one for provisioning new volumes.
55
A universal `ResourceType` parameter denotes which type of resource is being provisioned.
66

7-
The parameters that can be inputted to the storage class depends on the respective create and delete APIs.
7+
The parameters that can be inputted to the storage class depend on the respective create and delete APIs.
88
Parameters under key `OpenZFSConfiguration` are flattened as top layer parameters.
99
Parameter values should be in JSON format, excluding the CSI specific `ResourceType` parameter which is a plain string.
1010
Mistakes in parameters such as incorrect keys or values will produce errors.
11-
Delete parameters must include the suffix `OnDeletion` on the parameter name.
11+
Delete parameters must include the suffix `OnDeletion` in the parameter name.
1212
Some fields are populated by the CSI driver, and therefore should not be specified.
1313

1414
## File System Parameters
1515

1616
###### [FSx CreateFileSystem API](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateFileSystem.html)
1717
###### [FSx DeleteFileSystem API](https://docs.aws.amazon.com/fsx/latest/APIReference/API_DeleteFileSystem.html)
1818

19-
#### Parameters the driver populates
19+
#### Parameters the driver populates for the user (these are NOT defined in the storage class)
2020
- ClientRequestToken
2121
- FileSystemType
22-
- StorageCapacity
22+
- StorageCapacity (pulled from the PVC)
2323

2424
Parameters a user can specify when provisioning an FSx OpenZFS file system:
2525

@@ -47,7 +47,7 @@ Parameters a user can specify when provisioning an FSx OpenZFS file system:
4747
###### [FSx CreateVolume API](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateVolume.html)
4848
###### [FSx DeleteVolume API](https://docs.aws.amazon.com/fsx/latest/APIReference/API_DeleteVolume.html)
4949

50-
#### Parameters the driver populates
50+
#### Parameters the driver populates for the user (these are NOT defined in the storage class)
5151
- ClientRequestToken
5252
- Name
5353
- VolumeType
@@ -73,7 +73,7 @@ Parameters a user can specify when provisioning an FSx OpenZFS volume:
7373

7474
###### [FSx CreateSnapshot API](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateSnapshot.html)
7575

76-
#### Parameters the driver populates
76+
#### Parameters the driver populates for the user (these are NOT defined in the storage class)
7777
- ClientRequestToken
7878
- Name
7979
- VolumeId

docs/tagging.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
11
# Tagging
2-
Alongside tags a user defines, the CSI driver adds additional tags.
3-
The types of tags the CSI driver adds includes driver and deletion tags.
2+
The FSx for OpenZFS CSI driver automatically configures particular tags on FSx resources, in addition to user-provided tags.
3+
4+
This includes a general tag added to all dynamically created FSx resources,
5+
as well as deletion tags that are utilized to support deletion options.
46

57
## Driver Tags
68

7-
The FSx for OpenZFS CSI driver will automatically add unique tag(s) to denote the resources it manages.
8-
These tags are not used by the driver, and is only for aiding the user in resource management.
9+
The FSx for OpenZFS CSI driver will automatically add a unique tag to denote the resources it creates.
10+
This tag is not used by the driver and is only provided to aid the user in resource management.
911

10-
The CSI driver attaches the following tag(s) to resources created:
12+
The CSI driver attaches the following tag to the resources it creates:
1113

12-
| Key | Value | Description |
13-
|---------------------------------|-----------------------------|-------------------------------------------------|
14-
| fsx.openzfs.csi.aws.com/cluster | true | Attached to all FSx OpenZFS resources created. | |
14+
| Key | Value | Description |
15+
|---------------------------------|-----------------------------|-----------------------------------------------------------|
16+
| fsx.openzfs.csi.aws.com/cluster | true | Attached to all FSx OpenZFS resources the driver creates. | |
1517

1618
## Deletion Tags
1719

1820
The CSI driver also adds deletion parameters that were provided by the user.
19-
Due to CSI limitations, parameters can't be defined when deleting resources.
20-
To get around this, any parameter specified with the `OnDeletion` suffix is saved as a Key-Value pair.
21+
Due to CSI limitations, parameters cannot be defined when deleting resources.
22+
To get around this, any parameter specified with the `OnDeletion` suffix is saved as a tag on the resource via a Key-Value pair.
2123

22-
Due to restriction in tags, special characters used in JSON such as `",[]{}` must be encoded.
24+
Due to restrictions in tags, special characters used in JSON such as `",[]{}` must be encoded.
2325
The following chart contains the translation between JSON characters and their respective tag representation.
2426
To prevent mistranslation when decoding parameters that contain translate characters, a space is added before and after the tag representation.
2527

@@ -37,11 +39,11 @@ To prevent mistranslation when decoding parameters that contain translate charac
3739

3840
JSON Representation:
3941
```json
40-
[{"Key": "OPENZFS", "Value": "OPENZFS"}]
42+
["DELETE_CHILD_VOLUMES_AND_SNAPSHOTS"]
4143
```
4244
Tag Representation:
4345
```
44-
- + @ Key @ : @ OPENZFS @ . @ Value @ : @ OPENZFS @ = _
46+
- @ DELETE_CHILD_VOLUMES_AND_SNAPSHOTS @ _
4547
```
4648

4749
Deletion tags may be manually modified or added to change the delete behavior for a specific resource.

0 commit comments

Comments
 (0)