This page describes how to specify the order in which Backup for GKE should restore different GroupKinds during a restore operation.
Overview
By default, Backup for GKE restores well-known GroupKinds in an order that fulfills dependency requirements among resources. However, if there are additional resources that need restoring in a specific order, you can use the restore ordering feature to specify the required order by defining dependencies between the affected resources.
During a restore plan create or update operation, you can specify a list of custom GroupKind dependencies. To represent a dependency between two custom resources, specify the following two GroupKinds:
- Satisfying GroupKind: this GroupKind satisfies the dependencies and must be restored before the requiring GroupKind. In the Google Cloud console, this GroupKind is termed as the First API group and First object kind fields.
- Requiring GroupKind: this GroupKind depends on the satisfying GroupKind to be restored first. In the Google Cloud console, this GroupKind is termed as the Second API group and Second object kind fields.
Backup for GKE takes a list of custom dependencies and the default dependencies and combines them to generate a GroupKind restore order.
Default dependencies
The following table lists the default pairing dependencies between satisfying
and requiring GroundKind resources. When defining a restoring order,
Backup for GKE restores all satisfying GroundKinds before Requiring GroupKinds.
For example, Backup for GKE always restores all storage.k8s.io/StorageClass
before PersistentVolumeClaims
.
The default restore ordering also handles basic cases, such as restoring
namespaces before all namespaced resources and restoring CustomResourceDefinitions
before any CustomResources
.
Satisfying GroundKind resource | Requiring GroundKind resource |
---|---|
flowcontrol.apiserver.k8s.io/PriorityLevelConfiguration | flowcontrol.apiserver.k8s.io/FlowSchema |
storage.k8s.io/StorageClass | PersistentVolumeClaim |
PersistentVolumeClaim |
|
ServiceAccount |
|
Define resource restore ordering
Use the following instructions to add custom GroupKind dependencies to a restore plan. Refer to the list of default dependencies for all GroupKind dependencies that are already handled by Backup for GKE and don't need to be specified.
gcloud
Create a YAML file to define restore order. You can use the following YAML example.
The following example indicates that
stable.example.com/First
must be restored beforestable.example.com/Second
and thatstable.example.com/Second
must be restored beforestable.example.com/Third
.restoreOrder: groupKindDependencies: - satisfying: resourceGroup: stable.example.com resourceKind: First requiring: resourceGroup: stable.example.com resourceKind: Second - satisfying: resourceGroup: stable.example.com resourceKind: Second requiring: resourceGroup: stable.example.com resourceKind: Third
Define a restore order using the restore order file you created.
gcloud beta container backup-restore restore-plans update RESTORE_PLAN \ --project=PROJECT_ID \ --location=LOCATION \ --restore_order_file=RESTORE_ORDER_FILE
Replace the following:
RESTORE_PLAN
: the name of the restore plan that you want to update.PROJECT_ID
: the ID of your Google Cloud project.LOCATION
: the compute region of the parent restore plan.RESTORE_ORDER_FILE
: the path to the YAML file containing the GroupKind dependencies, as shown in the earlier example.
Console
Use the following instructions to add order to an existing restore plan in the Google Cloud console:
In the Google Cloud console, go to the Google Kubernetes Engine page.
In the navigation menu, click Backup for GKE.
Click the Restore plans tab.
Click the restore plan name.
Click the Details tab.
Click Edit that is next to the Restore order.
Click Add order set.
In the Item 1 section, enter First API group 1 and First object kind 1 followed by Second API group 2 and Second object kind 2 the order in which the resources to be restored.
Click Save changes.
What's next
- Learn more about restoring a backup.