Skip to content

SapNfsVolumeSnapshot Custom Resource ​

WARNING

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

The sapnfsvolumesnapshot.cloud-resources.kyma-project.io namespaced custom resource (CR) describes a point-in-time, read-only snapshot of an SapNfsVolume. Snapshots are created using the OpenStack Manila Share Snapshots API and let you capture the state of an NFS share at a specific moment for data recovery.

Unlike backups, snapshots are bound to their parent share. Snapshot data is not copied to separate storage; it resides on the same backend as the source volume and cannot exist independently. You cannot delete an SapNfsVolume while it has associated snapshots. You must remove all snapshots first.

NOTE

Manila snapshots are subject to per-project quotas. The default limits are 50 snapshots and 1000 GiB of total snapshot storage per OpenStack project. All SapNfsVolumeSnapshot resources across all volumes in the same project share this quota. Contact your OpenStack administrator to adjust these limits if needed.

How It Works ​

An SapNfsVolumeSnapshot progresses through the following states:

StateDescription
CreatingThe Manila snapshot creation request has been submitted and is in progress.
ReadyThe snapshot is available and can be used for restore operations.
ErrorA transient error occurred. The reconciler retries automatically.
DeletingThe Manila snapshot is being deleted.
FailedA terminal error occurred that will not be retried. Check .status.conditions for details.

Specification ​

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

Spec:

ParameterTypeRequiredImmutableDescription
sourceVolumeobjectYesYesReference to the SapNfsVolume to snapshot. The volume must exist and be in Ready state at the time of creation.
sourceVolume.namestringYesYesName of the source SapNfsVolume.
sourceVolume.namespacestringNoYesNamespace of the source SapNfsVolume. Defaults to the namespace of this resource if not provided.
deleteAfterDaysintNoNoNumber of days after which the snapshot is automatically deleted. 0 disables automatic deletion. Defaults to 0.

Status:

ParameterTypeDescription
statestringCurrent lifecycle state. Possible values: Creating, Ready, Error, Deleting, Failed.
idstringInternal identifier of the snapshot resource.
openstackIdstringUUID of the Manila snapshot, as assigned by OpenStack.
sizeGbintSnapshot size in GiB, as reported by Manila. Populated when the snapshot reaches Ready state.
shareIdstringUUID of the Manila share the snapshot belongs to.
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.

Limitations ​

  • Snapshots are bound to their parent share: a snapshot cannot be moved to a different volume or OpenStack project. It exists in the same project and availability zone as the source SapNfsVolume.
  • An SapNfsVolume cannot be deleted while it has active snapshots: all snapshots referencing a volume must be deleted before the volume can be removed.
  • In-place revert supports the most recent snapshot only: when restoring to an existing volume using SapNfsVolumeSnapshotRestore, the snapshot must be the most recent one taken from that volume. This is an OpenStack Manila constraint.
  • Project-wide quota: the 50-snapshot default limit is shared across all volumes and schedules in the same OpenStack project.

Sample Custom Resources ​

Basic Snapshot ​

Create a one-off snapshot of an NFS volume:

yaml
apiVersion: cloud-resources.kyma-project.io/v1beta1
kind: SapNfsVolumeSnapshot
metadata:
  name: my-snapshot
  namespace: default
spec:
  sourceVolume:
    name: my-sap-nfs-vol

Snapshot with Automatic Expiry ​

Create a snapshot that is automatically deleted after 30 days:

yaml
apiVersion: cloud-resources.kyma-project.io/v1beta1
kind: SapNfsVolumeSnapshot
metadata:
  name: my-expiring-snapshot
  namespace: default
spec:
  sourceVolume:
    name: my-sap-nfs-vol
  deleteAfterDays: 30