The nfspvc-operator
is an operator that reconciles NfsPvc
CRs.
NfsPvc
provides a simple interface (CRD) to create PVC
and PV
in a Kubernetes cluster with an NFS backend, allowing you to connect pre-existing NFS storage to your workloads without using any CSI driver.
This is useful when you have an already-created NFS, which you would like to mount in different places (Kubernetes Pod, Virtual Machine, etc...).
Helm chart docs are available on charts/nfspvc-operator
directory.
Make sure cert-manager
is installed as a prerequisite.
$ helm upgrade --install nfspvc-operator --namespace nfspvc-operator --create-namespace oci://ghcr.io/dana-team/helm-charts/nfspvc-operator --version <release>
An example NfsPvc
CR looks as follows:
apiVersion: nfspvc.dana.io/v1alpha1
kind: NfsPvc
metadata:
name: test
namespace: test
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 200Gi
path: /test
server: vs-nas-test
The supported accessModes
are the same as those of the PVC
resource: ReadWriteOnce
, ReadOnlyMany
, ReadWriteMany
and ReadWriteOncePod
The status of a NfsPvc
resource shows the status of the PVC
and PV
it creates. For example:
...
status:
pvPhase: Bound
pvcPhase: Bound
Once a NfsPvc
CR is created, then corresponding PVC
and PV
objects are created. When the CR is removed, then the PVC
and PV
objects are removed. The ReclaimPolicy
is defined by the configuration-nfspvc
ConfigMap
.
If the underlying PVC
or PV
is deleted but the corresponding NfsPvc
still exists, then the operator will re-create the PVC
or PV
.
The controller makes use of a ConfigMap
of the name configuration-nfspvc
with default values for StorageClass
and ReclaimPolicy
:
apiVersion: v1
kind: ConfigMap
metadata:
name: configuration-nfspvc
namespace: system
data:
STORAGE_CLASS: brown
RECLAIM_POLICY: Retain
$ make deploy IMG=ghcr.io/dana-team/nfspvc-operator:<release>
$ make docker-build docker-push IMG=<registry>/nfspvc-operator:<tag>