Skip to content

Commit aaac3de

Browse files
authored
Merge pull request #56 from gomesjason/docs
Update Parameters Doc with MAZ Parameters
2 parents 9d0f58c + 6219f0b commit aaac3de

File tree

7 files changed

+178
-68
lines changed

7 files changed

+178
-68
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ This policy is non-binding and subject to change.
5050
The FSx for OpenZFS CSI Driver is compatible with Kubernetes versions v1.17+ and implements the CSI Specification v1.1.0.
5151

5252
### Documentation
53-
Please read the FAQ before using the FSx for OpenZFS CSI Driver.
53+
Please read the documentation below before using the FSx for OpenZFS CSI Driver.
5454
* [FAQ](docs/FAQ.md)
5555
* [Driver Installation](docs/install.md)
5656
* [Driver Launch Options](docs/options.md)

docs/FAQ.md

Lines changed: 60 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Frequently Asked Questions
22
The purpose of this document is to answer questions surrounding the unique design decisions and limitations of the FSx for OpenZFS CSI Driver.
33

4+
## General
5+
46
### What does it mean to provision an FSx for OpenZFS file system as a persistent volume in my cluster? What is actually mounted?
57
In general, Persistent Volumes created with the "filesystem" `ResourceType` point at the file system's root volume.
68
Dynamically provisioning a new FSx for OpenZFS file system as a Persistent Volume (PV) will create the FSx for OpenZFS file system resource,
@@ -9,41 +11,77 @@ of the PV will create an FSx for OpenZFS snapshot of the file system's root volu
911
increasing the requested storage request on a PVC bound to a PV that points at an FSx for OpenZFS file system will increase the storage capacity
1012
of the overarching file system.
1113

12-
### How do I request storage when dynamically provisioning a new FSx for OpenZFS volume as a persistent volume in my cluster?
13-
When dynamically provisioning a new FSx for OpenZFS volume, the FSx for OpenZFS CSI driver ignores the storage requested in the Persistent Volume Claim (PVC).
14-
Instead, the driver configures storage requirements via the storageCapacityReservation and storageCapacityQuota parameters, which are defined in the storage class.
15-
To minimize operator confusion, **the driver will fail to create a volume if the user specifies a value other than the default 1Gi**.
14+
## Parameters
1615

17-
### What happens when I expand the size of my Persistent Volumes?
18-
You may expand the size of a PV bound to an FSx for OpenZFS file system by increasing the requested storage in the PVC.
19-
This will increase the size of the file system's storage capacity to the value requested in the PVC.
20-
Currently, there is no way to adjust the storage requirements of a PV bound to an FSx for OpenZFS volume via the CSI driver.
21-
To do this, you will need to update the volume via the [FSx API](https://docs.aws.amazon.com/cli/latest/reference/fsx/index.html#cli-aws-fsx) outside the context of your cluster.
22-
See [here](../examples/kubernetes/volume-expansion/README.md) for more details.
16+
### Why is SkipFinalBackupOnDeletion required by the CSI Driver, and not the API?
17+
The default behavior of the API is to set this value as false, which thus creates a resource after deletion.
18+
To prevent users from creating dangling resources that the driver doesn't maintain, we force users to input this value.
2319

2420
### What happens if I do not provide a particular parameter in the Storage Class? What if I provide an invalid parameter?
2521
If you fail to provide a required parameter on the storage class or provide an invalid parameter, any attempted creates using that storage class will fail.
2622
The FSx for OpenZFS CSI driver will provide relevant logging detailing the failure mode/reason on the PVC or in the plugin logging.
2723
If you fail to provide an optional parameter in the storage class, the driver will use the default value specified in the [FSx API](https://docs.aws.amazon.com/cli/latest/reference/fsx/index.html#cli-aws-fsx).
2824

2925
### How strict is the parameter validation for the parameters provided in the Storage Class?
30-
The parameter validation conducted by the FSx for OpenZFS CSI driver is as strict as the [FSx API](https://docs.aws.amazon.com/cli/latest/reference/fsx/index.html#cli-aws-fsx).
31-
This means that incorrectly spelled parameters and incorrectly formatted parameter values will cause the creation to fail.
26+
The parameter validation conducted by the FSx for OpenZFS CSI driver is as strict as the [FSx API](https://docs.aws.amazon.com/cli/latest/reference/fsx/index.html#cli-aws-fsx).
27+
This means that incorrectly spelled parameters and incorrectly formatted parameter values will cause the creation to fail.
3228
Additionally, parameter values must exactly match the enums specified in the FSx API.
3329

30+
### Can I modify parameters defined in the StorageClass after a resource is created?
31+
Unfortunately there is no way to modify these parameters due to the nature of the CSI driver.
32+
If a user wishes to modify a particular parameter, they may do so manually, using our API.
33+
This includes parameters such as ThroughputCapacity, StorageCapacityReservation, and StorageCapacityQuota.
34+
35+
### Why are the parameters formatted the way they are?
36+
FSx for OpenZFS shares its API with other types in the FSx family.
37+
Because of this, most configuration options are nested under an `OpenZFSConfiguration` object.
38+
Since this driver is not shared, we decided it would be best to flatten this object at the top level to enhance readability.
39+
Due to the complex nature of our configurations, we also decided it would be best to align with our API and by requiring parameter values be in JSON format.
40+
41+
## Storage Capacity
42+
43+
### Why must I set storage on a PersistentVolumeClaim to 1 for volumes?
44+
FSx for OpenZFS allows users to set StorageCapacityReservation and StorageCapacityQuota which can impact the storage requirements of a given volume.
45+
There is truly no one size fits all, as there are different requirements based on use case.
46+
Because of this, we decided to ignore the storage value is when creating the volume, and instead have users utilize the StorageClass parameters.
47+
To minimize operator confusion, and to keep the door open for possible changes, **the driver will fail to create or modify a volume if the user specifies a value other than 1Gi**.
48+
49+
## Volume Expansion
50+
51+
### Can I expand the storage capacity of my filesystem?
52+
You may expand the size of a PV bound to an FSx for OpenZFS file system by increasing the requested storage in the PVC.
53+
This will increase the size of the file system's storage capacity to the value requested in the PVC.
54+
Currently, there is no way to adjust the storage requirements of a PV bound to an FSx for OpenZFS volume via the CSI driver.
55+
56+
### Why can't I decrease the storage capacity of my filesystem? Why must I increase the capacity by at least 10%?
57+
These requirements set by the API.
58+
See this [document](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/managing-storage-capacity.html) for more information.
59+
60+
## Snapshots
61+
62+
### When I take a snapshot, what FSx resource is created?
63+
When you take a snapshot, the CSI driver will take an FSx Snapshot.
64+
Snapshots occur at the volume level.
65+
If you take a snapshot of a filesystem, it will occur on the root volume of that filesystem.
66+
Therefore, when restoring snapshots, they must be restored as a volume type.
67+
68+
### Can I take an FSx backup using the CSI Driver?
69+
Currently, there is no way to take an FSx backup of a filesystem using the driver.
70+
Any backups must be manually created and deleted using the API.
71+
There is also no way to dynamically create a filesystem from a backup.
72+
73+
## Deletion Parameters
74+
3475
### How do I configure deletion parameters on my Persistent Volumes?
35-
Due to limitations in the CSI specification, there is no way to configure deletion parameters for PVs at deletion time.
36-
As such, you will only be able to configure deletion parameters at creation time. This may be done by setting
37-
`skipFinalBackupOnDeletion` and `optionsOnDeletion` on the storage class manifests; see [parameters.md](parameters.md) for more information.
38-
These deletion parameters are configured by applying tags on the underlying FSx resource.
39-
If you wish to revise the deletion behavior of the volume after creation, you will need to edit these tags on the FSx resource.
76+
Due to limitations in the CSI specification, there is no way to configure deletion parameters for PVs at deletion time.
77+
Therefore, we allow users to input these parameters in the StorageClass during initialization.
78+
See [parameters.md](parameters.md) for information on setting these parameters.
79+
80+
### How do I edit a deletion parameter after my resource is already created?
81+
Deletion parameters are saved by applying a tag for each parameter on the underlying FSx resource.
82+
If you wish to revise deletion behavior after creation, you will need to manually edit these tags.
4083
This will need to be done outside the context of the CSI driver.
4184
If the these tags are missing from the underlying FSx for OpenZFS resource or the tag does not have a valid value,
4285
the driver will use the default behavior specified in the [FSx API](https://docs.aws.amazon.com/cli/latest/reference/fsx/index.html#cli-aws-fsx).
4386
Deletion parameters with JSON special characters `"[]{},` are encoded due to [AWS tagging limitations](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions).
4487
See [tagging](tagging.md) for more details.
45-
46-
### Is there a way to tag FSx resources created via the CSI driver?
47-
The AWS FSx for OpenZFS CSI Driver supports tagging via the `StorageClass.parameters` and `VolumeSnapshotClass.parameters`.
48-
Any resource created by the FSx for OpenZFS CSI driver is provided default tags to allow you to track which
49-
FSx resources were created via the CSI driver. See [tagging](tagging.md) for more details.

docs/debugging.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Debugging
2+
3+
## Dynamic Provisioning
4+
5+
### Why isn't the driver dynamically provisioning my resource?
6+
Typically, this is due to syntax or request errors based on the parameters provided in the StorageClass.
7+
Run `kubectl get pods -n kube-system` and `kubectl logs ${driver_leader} -n kube-system` to grab the driver's logs.
8+
These logs should output the cause of failure.
9+
10+
### Why is the driver throwing an error for a parameter that is correct?
11+
Double check you are using the most up-to-date driver version.
12+
If you are, the driver's SDK version may be outdated.
13+
Please cut a ticket for us to bump the SDK version, as it will allow the driver to pull any API changes.
14+
15+
## Mounting
16+
17+
### Why can't I mount my resource?
18+
Typically, this is due to a network or environmental issue.
19+
Verify that the DNS is reachable from your pod.
20+
Double check that filesystem lives in the same VPC as your cluster, the security group policy allow ingress NFS traffic, and the route tables are associated with the cluster's subnets.
21+
See this [document](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/access-within-aws.html) for more information.
22+
23+
## Maintenance
24+
25+
### How do I know what resources in my account are maintained by the driver?
26+
Any resource created by the FSx for OpenZFS CSI driver is given tag.
27+
Assuming these tags are not manually changes, you can find all resources under your account using this [hack](../hack/print-resources).
28+
See [tagging](tagging.md) for more details.
29+

docs/install.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ helm repo update
114114
```sh
115115
helm upgrade --install aws-fsx-openzfs-csi-driver \
116116
--namespace kube-system \
117+
--set controller.serviceAccount.create=false \
117118
aws-fsx-openzfs-csi-driver/aws-fsx-openzfs-csi-driver
118119
```
119120

0 commit comments

Comments
 (0)