diff --git a/CHANGELOG.md b/CHANGELOG.md index f2725559..0c080cef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,40 @@ +# Unreleased +- 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) + +# v3.0.1 +- Fix archiveOnDelete parsing (https://github.com/kubernetes-retired/external-storage/pull/929) + +# v3.0.0 +- 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 - 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) diff --git a/README.md b/README.md index b120b521..a41724c1 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ spec: mountPath: /persistentvolumes env: - name: PROVISIONER_NAME - value: fuseim.pri/ifs + value: k8s-sigs.io/nfs-subdir-external-provisioner - name: NFS_SERVER value: - name: NFS_PATH @@ -118,7 +118,7 @@ spec: path: /var/nfs ``` -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. @@ -128,8 +128,8 @@ To disable leader election, define an env variable named ENABLE_LEADER_ELECTION | Name | Description | Default | | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------: | -| 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` | +| 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-` | +| 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-` | | 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: @@ -139,7 +139,7 @@ apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: 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: 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 @@ -165,7 +165,7 @@ Now check the folder has been deleted. **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. For example: @@ -175,9 +175,9 @@ apiVersion: v1 metadata: name: test-claim annotations: - volume.beta.kubernetes.io/storage-class: "managed-nfs-storage" nfs.io/storage-path: "test-path" # not required, depending on whether this annotation was shown in the storage class description spec: + storageClassName: managed-nfs-storage accessModes: - ReadWriteMany resources: diff --git a/deploy/class.yaml b/deploy/class.yaml index 4d3b4805..d26ffb3b 100644 --- a/deploy/class.yaml +++ b/deploy/class.yaml @@ -2,6 +2,6 @@ apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: 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: archiveOnDelete: "false" diff --git a/deploy/deployment-arm.yaml b/deploy/deployment-arm.yaml index 6ee30150..0b3f0bce 100644 --- a/deploy/deployment-arm.yaml +++ b/deploy/deployment-arm.yaml @@ -27,7 +27,7 @@ spec: mountPath: /persistentvolumes env: - name: PROVISIONER_NAME - value: fuseim.pri/ifs + value: k8s-sigs.io/nfs-subdir-external-provisioner - name: NFS_SERVER value: 10.10.10.60 - name: NFS_PATH diff --git a/deploy/deployment.yaml b/deploy/deployment.yaml index 0ec9c4ed..d37f43aa 100644 --- a/deploy/deployment.yaml +++ b/deploy/deployment.yaml @@ -27,7 +27,7 @@ spec: mountPath: /persistentvolumes env: - name: PROVISIONER_NAME - value: fuseim.pri/ifs + value: k8s-sigs.io/nfs-subdir-external-provisioner - name: NFS_SERVER value: 10.10.10.60 - name: NFS_PATH diff --git a/deploy/objects/class.yaml b/deploy/objects/class.yaml index 4d3b4805..d26ffb3b 100644 --- a/deploy/objects/class.yaml +++ b/deploy/objects/class.yaml @@ -2,6 +2,6 @@ apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: 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: archiveOnDelete: "false" diff --git a/deploy/objects/deployment-arm.yaml b/deploy/objects/deployment-arm.yaml index 9cced7e5..d12f203b 100644 --- a/deploy/objects/deployment-arm.yaml +++ b/deploy/objects/deployment-arm.yaml @@ -20,7 +20,7 @@ spec: mountPath: /persistentvolumes env: - name: PROVISIONER_NAME - value: fuseim.pri/ifs + value: k8s-sigs.io/nfs-subdir-external-provisioner - name: NFS_SERVER value: 10.10.10.60 - name: NFS_PATH diff --git a/deploy/objects/deployment.yaml b/deploy/objects/deployment.yaml index 1b793676..8b153a19 100644 --- a/deploy/objects/deployment.yaml +++ b/deploy/objects/deployment.yaml @@ -20,7 +20,7 @@ spec: mountPath: /persistentvolumes env: - name: PROVISIONER_NAME - value: fuseim.pri/ifs + value: k8s-sigs.io/nfs-subdir-external-provisioner - name: NFS_SERVER value: 10.10.10.60 - name: NFS_PATH diff --git a/deploy/test-claim.yaml b/deploy/test-claim.yaml index 9669e8f6..72218eb7 100644 --- a/deploy/test-claim.yaml +++ b/deploy/test-claim.yaml @@ -2,8 +2,6 @@ kind: PersistentVolumeClaim apiVersion: v1 metadata: name: test-claim - annotations: - volume.beta.kubernetes.io/storage-class: "managed-nfs-storage" spec: storageClassName: managed-nfs-storage accessModes: