- Remove redundant field in the rbac.yaml (https://github.com/kubernetes-retired/external-storage/pull/970)
- Use `kubernetes-sigs/sig-storage-lib-external-provisioner` instead of `incubator/external-storage/lib` (https://github.com/kubernetes-retired/external-storage/pull/1026)
- Fill in rbac.yaml with ServiceAccount manifest (https://github.com/kubernetes-retired/external-storage/pull/1060, https://github.com/kubernetes-retired/external-storage/pull/1179)
- Make ARM deployment consistent with regular deployment (https://github.com/kubernetes-retired/external-storage/pull/1090)
- Update Deployment apiVersion (from `extensions/v1beta1` to `apps/v1`) and added selector field (https://github.com/kubernetes-retired/external-storage/pull/1230/, https://github.com/kubernetes-retired/external-storage/pull/1231/, https://github.com/kubernetes-retired/external-storage/pull/1283/, https://github.com/kubernetes-retired/external-storage/pull/1294/)
- Fix namespace in deployments (https://github.com/kubernetes-retired/external-storage/pull/1087, https://github.com/kubernetes-retired/external-storage/pull/1279)
- Update path creation and implemented possibility save data after removing PV (https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/pull/7/)
- Support for running controller outside of cluster (https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/pull/9)
- Add a flag to disable leader election (https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/pull/22)
- Switched to kubernetes `v1.18.0` to be compatible with `>=1.20` selfLink removal (https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/pull/26/)
- Enable mountOptions from StorageClass to PersistentVolume (https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/pull/28)
# v3.1.0
- Make leader-election configurable: default endpoints object namespace to controller's instead of kube-system (https://github.com/kubernetes-retired/external-storage/pull/957)
- Adds archiveOnDelete parameter to provisioner (https://github.com/kubernetes-retired/external-storage/pull/905)
- Change all clusterroles to have endpoints permissions and reduced events permissions, consolidate where possible (https://github.com/kubernetes-retired/external-storage/pull/892)
# v2.1.2
- Propagate StorageClass MountOptions to PVs (https://github.com/kubernetes-retired/external-storage/pull/835)
- Skip deletion if the corresponding directory is not found (https://github.com/kubernetes-retired/external-storage/pull/859)
# v2.1.1
- Revert "Add namespace extended attributes to directory" (https://github.com/kubernetes-retired/external-storage/pull/816)
# v2.1.0
- Change the storage apiVersion from `storage.k8s.io/v1beta1` to `storage.k8s.io/v1` (https://github.com/kubernetes-retired/external-storage/pull/599)
- Fix Makefile to build on OSX (https://github.com/kubernetes-retired/external-storage/pull/661)
- Change the RBAC apiVersion from `rbac.authorization.k8s.io/v1alpha1` to `rbac.authorization.k8s.io/v1` (https://github.com/kubernetes-retired/external-storage/pull/656)
- Add serviceAccount to deployment (https://github.com/kubernetes-retired/external-storage/pull/653)
- Add namespace extended attributes to directory (https://github.com/kubernetes-retired/external-storage/pull/672)
# v2.0.1
# v2.0.1
- Add support for ARM (Raspberry PI). Image at `quay.io/external_storage/nfs-client-provisioner-arm`. (https://github.com/kubernetes-incubator/external-storage/pull/275)
- Add support for ARM (Raspberry PI). Image at `quay.io/external_storage/nfs-client-provisioner-arm`. (https://github.com/kubernetes-incubator/external-storage/pull/275)
You may also want to change the PROVISIONER_NAME above from `fuseim.pri/ifs` to something more descriptive like `nfs-storage`, but if you do remember to also change the PROVISIONER_NAME in the storage class definition below.
You may also want to change the PROVISIONER_NAME above from `k8s-sigs.io/nfs-subdir-external-provisioner` to something more descriptive like `nfs-storage`, but if you do remember to also change the PROVISIONER_NAME in the storage class definition below.
To disable leader election, define an env variable named ENABLE_LEADER_ELECTION and set its value to false.
To disable leader election, define an env variable named ENABLE_LEADER_ELECTION and set its value to false.
...
@@ -128,8 +128,8 @@ To disable leader election, define an env variable named ENABLE_LEADER_ELECTION
...
@@ -128,8 +128,8 @@ To disable leader election, define an env variable named ENABLE_LEADER_ELECTION
| onDelete | If it exists and has a delete value, delete the directory, if it exists and has a retain value, save the directory. | will be archived with name on the share: `archived-+volume.Name` |
| onDelete | If it exists and has a delete value, delete the directory, if it exists and has a retain value, save the directory. | will be archived with name on the share: `archived-<volume.Name>` |
| archiveOnDelete | If it exists and has a false value, delete the directory. if `onDelete` exists, `archiveOnDelete` will be ignored. | will be archived with name on the share: `archived-+volume.Name` |
| archiveOnDelete | If it exists and has a false value, delete the directory. if `onDelete` exists, `archiveOnDelete` will be ignored. | will be archived with name on the share: `archived-<volume.Name>` |
| pathPattern | Specifies a template for creating a directory path via PVC metadata's such as labels, annotations, name or namespace. To specify metadata use `${.PVC.}`: `${PVC.namespace}` | n/a |
| pathPattern | Specifies a template for creating a directory path via PVC metadata's such as labels, annotations, name or namespace. To specify metadata use `${.PVC.}`: `${PVC.namespace}` | n/a |
This is `deploy/class.yaml` which defines the NFS-Client's Kubernetes Storage Class:
This is `deploy/class.yaml` which defines the NFS-Client's Kubernetes Storage Class:
...
@@ -139,7 +139,7 @@ apiVersion: storage.k8s.io/v1
...
@@ -139,7 +139,7 @@ apiVersion: storage.k8s.io/v1
kind:StorageClass
kind:StorageClass
metadata:
metadata:
name:managed-nfs-storage
name:managed-nfs-storage
provisioner:fuseim.pri/ifs# or choose another name, must match deployment's env PROVISIONER_NAME'
provisioner:k8s-sigs.io/nfs-subdir-external-provisioner# or choose another name, must match deployment's env PROVISIONER_NAME'
parameters:
parameters:
pathPattern:"${.PVC.namespace}/${.PVC.annotations.nfs.io/storage-path}"# waits for nfs.io/storage-path annotation, if not specified will accept as empty string.
pathPattern:"${.PVC.namespace}/${.PVC.annotations.nfs.io/storage-path}"# waits for nfs.io/storage-path annotation, if not specified will accept as empty string.
onDelete:delete
onDelete:delete
...
@@ -165,7 +165,7 @@ Now check the folder has been deleted.
...
@@ -165,7 +165,7 @@ Now check the folder has been deleted.
**Step 7: Deploying your own PersistentVolumeClaims**
**Step 7: Deploying your own PersistentVolumeClaims**
To deploy your own PVC, make sure that you have the correct `storage-class` as indicated by your `deploy/class.yaml` file.
To deploy your own PVC, make sure that you have the correct `storageClassName` as indicated by your `deploy/class.yaml` file.