Skip to content

GcpNfsBackupSchedule Custom Resource ​

WARNING

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

The gcpnfsbackupschedule.cloud-resources.kyma-project.io namespaced custom resource (CR) automates GcpNfsVolumeBackup creation for a given GcpNfsVolume. It supports both recurring schedules using CRON expressions and one-time backups.

The CR performs the following actions:

  • Creates GcpNfsVolumeBackup resources automatically at the specified interval or once at a given time.
  • Automatically deletes backups that exceed the configured retention period (maxRetentionDays) or count limits (maxReadyBackups, maxFailedBackups).
  • Enables you to temporarily suspend or resume backup creation and deletion.

Created backups are named using the pattern {prefix}-{index}-{YYYYMMDD-HHMMSS}, where prefix defaults to the schedule name, index is an auto-incrementing counter, and the timestamp reflects the scheduled run time in UTC.

Cross-Cluster Backup Sharing ​

Backups created by this schedule can be shared across clusters within the same global account and GCP project using the accessibleFrom field. This enables scenarios such as:

  • Disaster Recovery: Restore data from a backup created in another cluster
  • Data Migration: Move data between development, staging, and production environments
  • Cross-Environment Testing: Use production data snapshots in test environments

To discover backups shared from other clusters, use the GcpNfsVolumeBackupDiscovery resource.

Specification ​

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

Spec:

ParameterTypeRequiredImmutableDescription
nfsVolumeRefobjectYesNoReference to an existing GcpNfsVolume that must be in Ready state.
nfsVolumeRef.namestringYesNoName of the existing GcpNfsVolume.
nfsVolumeRef.namespacestringNoNoNamespace of the existing GcpNfsVolume. Defaults to the namespace of the GcpNfsBackupSchedule resource if not provided.
locationstringNoNoThe GCP region where backups are stored. Defaults to the region of the source GcpNfsVolume. Must be a valid GCP region.
schedulestringNoNoCRON expression for the schedule. When empty or not specified, the schedule runs only once — at the specified startTime, or immediately if startTime is not set. See also Schedule Syntax.
prefixstringNoNoPrefix for the name of the created GcpNfsVolumeBackup resources. Defaults to the name of this schedule.
startTimestringNoNoStart time for the schedule in RFC 3339 format (e.g., 2026-06-01T00:00:00Z). Value cannot be before the resource creation time. When not specified, the schedule becomes effective immediately.
endTimestringNoNoEnd time for the schedule in RFC 3339 format. Value cannot be before the startTime or, if startTime is not set, before the resource creation time. When not specified, the schedule runs indefinitely.
maxRetentionDaysintNoNoMaximum number of days to retain backup resources. Backups older than this are automatically deleted. Default: 375. Minimum: 1.
maxReadyBackupsintNoNoMaximum number of backups in Ready state to retain. Oldest backups exceeding this count are automatically deleted. Default: 100. Minimum: 1.
maxFailedBackupsintNoNoMaximum number of backups in Failed state to retain. Oldest backups exceeding this count are automatically deleted. Default: 5. Minimum: 1.
suspendbooleanNoNoSpecifies whether to suspend the schedule temporarily. While suspended, no backups are created or deleted. Defaults to false.
deleteCascadebooleanNoNoSpecifies whether to cascade delete all backup resources when this schedule is deleted. When false, backups are orphaned and must be deleted manually or via their own retention. Defaults to false.
accessibleFrom[]stringNoNoArray of shoot names or subaccount IDs that have access to the backups created by this schedule for restore. Use "all" to allow access from all shoots in the same global account and GCP project. "all" cannot be combined with other values. Max 10 items.

Status:

ParameterTypeDescription
statestringSignifies the current state of CustomObject. Its value can be either Active, Suspended, Done, Error, or Deleting.
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.
nextRunTimes[]stringProvides a preview of up to 3 upcoming times when the next backups will be created.
nextDeleteTimesmap[string]stringProvides the backup objects and their expected deletion time (calculated based on maxRetentionDays).
lastCreateRunstringProvides the time when the last backup was created.
lastCreatedBackupobjectRefProvides the object reference of the last created backup.
lastDeleteRunstringProvides the time when the last backup was deleted.
lastDeletedBackups[]objectRefProvides the object references of the last deleted backups.
schedulestringProvides the cron expression of the current active schedule.
backupIndexintProvides the current index of the backup created by this schedule.
backupCountintProvides the number of backups currently present in the system.

Sample Custom Resources ​

Recurring Daily Backup ​

Create a daily backup at midnight, retaining the last 7 backups for up to 30 days:

yaml
apiVersion: cloud-resources.kyma-project.io/v1beta1
kind: GcpNfsBackupSchedule
metadata:
  name: daily-backup
spec:
  nfsVolumeRef:
    name: my-nfs-volume
  schedule: "0 0 * * *"
  prefix: daily
  maxRetentionDays: 30
  maxReadyBackups: 7

One-Time Backup ​

Create a single backup immediately without a recurring schedule:

yaml
apiVersion: cloud-resources.kyma-project.io/v1beta1
kind: GcpNfsBackupSchedule
metadata:
  name: one-time-backup
spec:
  nfsVolumeRef:
    name: my-nfs-volume

Schedule with Cross-Cluster Access ​

Create weekly backups accessible from all clusters in the same global account:

yaml
apiVersion: cloud-resources.kyma-project.io/v1beta1
kind: GcpNfsBackupSchedule
metadata:
  name: shared-weekly-backup
spec:
  nfsVolumeRef:
    name: my-nfs-volume
  schedule: "0 2 * * 0"
  prefix: weekly
  startTime: "2026-06-01T00:00:00Z"
  endTime: "2027-06-01T00:00:00Z"
  deleteCascade: true
  accessibleFrom:
    - "all"