Go to file
Starttoaster 812ca8650b
Merge pull request #15 from Starttoaster/readme
Add notes to readme on maintainership and versioning
2025-02-10 13:57:48 -08:00
.github/workflows Lint chart with helm lint instead of ct 2025-02-08 13:15:09 -08:00
chart/nfs-subdir-external-provisioner Update helm chart app version 2025-02-08 13:18:58 -08:00
cmd/nfs-subdir-external-provisioner Update external provisioner library to latest for client-go updates 2024-06-06 12:46:54 -07:00
.gitignore Update external provisioner library to latest for client-go updates 2024-06-06 12:46:54 -07:00
CHANGELOG.md docs: add changelog for v4.0.3 2024-01-25 19:15:00 +02:00
CONTRIBUTING.md Update template files to include repo-specific info 2020-03-26 07:32:42 +05:30
Dockerfile Update Golang dependencies 2025-02-08 12:47:45 -08:00
LICENSE Initial commit 2020-03-26 07:23:01 +05:30
README.md Add notes to readme on maintainership and versioning 2025-02-10 13:57:16 -08:00
code-of-conduct.md Initial commit 2020-03-26 07:23:01 +05:30
go.mod Update Golang dependencies 2025-02-08 12:47:45 -08:00
go.sum Update Golang dependencies 2025-02-08 12:47:45 -08:00

README.md

Kubernetes NFS Subdir External Provisioner

This is a fork of kubernetes-sigs/nfs-subdir-external-provisioner. This fork will receive security updates, but it won't receive feature updates. The goal of this project is just to offer a more secure version of the kubernetes-sigs project with a distroless base container image and updated Golang dependencies. Unfortunately, since the upstream project lost maintainership, it had accrued a number of critical CVEs, and runs on an EoL Alpine Linux version.

NFS subdir external provisioner is an automatic provisioner that uses your existing and already configured NFS server to support dynamic provisioning of Kubernetes Persistent Volumes via Persistent Volume Claims. Persistent volumes are provisioned as ${namespace}-${pvcName}-${pvName}.

How to deploy NFS Subdir External Provisioner to your cluster

To note again, you must already have an NFS Server.

With Helm

Follow the instructions from the helm chart README.

The tl;dr is

helm repo add nfs-subdir-external-provisioner https://starttoaster.github.io/nfs-subdir-external-provisioner/
helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
    --set nfs.server=x.x.x.x \
    --set nfs.path=/exported/path

NFS provisioner limitations/pitfalls

  • The provisioned storage is not guaranteed. You may allocate more than the NFS share's total size. The share may also not have enough storage space left to actually accommodate the request.
  • The provisioned storage limit is not enforced. The application can expand to use all the available storage regardless of the provisioned size.
  • Storage resize/expansion operations are not presently supported in any form. You will end up in an error state: Ignoring the PVC: didn't find a plugin capable of expanding the volume; waiting for an external controller to process this PVC.

Note on Versioning

Note that this fork continued on with the existing versioning from the upstream kubernetes-sigs project, which abandoned the project at v4.0.2. This means that if kubernetes ever picks up and continues the source project, v4.0.3 and greater in this fork would not be identical code to v4.0.3 and greater in the upstream kubernetes-sigs project. Be aware of this difference if migrating between one or the other. This fork is a compatible replacement for kubernetes-sigs/nfs-subdir-external-provisioner@v4.0.2, which is the latest release there at time of writing.