Skip to content

SapNfsVolume Custom Resource ​

WARNING

This is a beta feature available only per request for SAP-internal teams.

The sapnfsvolume.cloud-resources.kyma-project.io custom resource (CR) describes an NFS volume that can be provisioned and used as a ReadWriteMany (RWX) volume in OpenStack environments. Once the NFS volume is provisioned in the underlying OpenStack infrastructure, the corresponding PersistentVolume (PV) and PersistentVolumeClaim (PVC) are created in RWX mode, allowing them to be used simultaneously by multiple cluster workloads. To use the SapNfsVolume CR as a volume in the cluster workload, specify the workload volume of the persistentVolumeClaim type. A created SapNfsVolume can be deleted only when no workloads are using it and when the PV and PVC are unbound.

The SapNfsVolume requires IP addresses allocated from an IpRange. If an IpRange is not specified in the SapNfsVolume, then the default IpRange is used. If a default IpRange does not exist, it is automatically created. You can manually create a non-default IpRange with a specified CIDR and use it only in advanced cases of network topology when you want to control the network segments to avoid range conflicts with other networks.

You must specify the capacity of the SapNfsVolume using the capacityGb field, which defines the storage capacity in gigabytes.

By default, the created PV and PVC have the same name as the SapNfsVolume resource, but you can optionally specify their names, labels, and annotations if needed. If a PV or PVC already exists with the same name as the one being created, the provisioned NFS volume remains and the SapNfsVolume is put into the Error state.

Specification ​

This table lists the parameters of the given resource together with their descriptions:

Spec:

ParameterTypeDescription
ipRangeobjectOptional IpRange reference. If omitted, the default IpRange is used; if the default IpRange does not exist, it is created.
ipRange.namestringName of the existing IpRange to use.
capacityGb (required)intCapacity of the requested volume in GiB. Must be greater than zero.
volumeobjectThe PersistentVolume options. Optional.
volume.namestringThe PersistentVolume name. Optional. Defaults to the SapNfsVolume status ID.
volume.labelsmap[string]stringThe PersistentVolume labels. Optional. Defaults to nil.
volume.annotationsmap[string]stringThe PersistentVolume annotations. Optional. Defaults to nil.
volumeClaimobjectThe PersistentVolumeClaim options. Optional.
volumeClaim.namestringThe PersistentVolumeClaim name. Optional. Defaults to the name of the SapNfsVolume resource.
volumeClaim.labelsmap[string]stringThe PersistentVolumeClaim labels. Optional. Defaults to nil.
volumeClaim.annotationsmap[string]stringThe PersistentVolumeClaim annotations. Optional. Defaults to nil.

Status:

ParameterTypeDescription
idstringThe unique identifier of the provisioned NFS volume in the OpenStack environment.
serverstringThe server address of the provisioned NFS volume.
state (required)stringSignifies the current state of CustomObject. Its value can be either Ready, Processing, Error, Warning, or Deleting.
capacityquantityThe provisioned capacity of the volume. This matches the spec.capacityGb upon completion of provisioning.
conditions[]objectRepresents the current state of the CR's conditions.
conditions.lastTransitionTimestringDefines the date of the last condition status change.
conditions.messagestringProvides more details about the condition status change.
conditions.reasonstringDefines the reason for the condition status change.
conditions.status (required)stringRepresents the status of the condition. The value is either True, False, or Unknown.
conditions.typestringProvides a short description of the condition.

Sample Custom Resource ​

See an exemplary SapNfsVolume custom resource:

yaml
apiVersion: cloud-resources.kyma-project.io/v1beta1
kind: SapNfsVolume
metadata:
  name: my-sap-nfs-vol
  namespace: default
spec:
  capacityGb: 1000