Skip to main content
Version: 3.6

DisasterRecoveryPair CRD reference

The DisasterRecoveryPair CRD represents a DR relationship between clusters.

Example

apiVersion: multicluster.portworx.com/v1alpha1
kind: DisasterRecoveryPair
metadata:
name: <dr-pair-name>
namespace: <namespace>
spec:
sourceCluster: <source-cluster-name>
destinationCluster: <destination-cluster-name>
disasterRecoveryType: ASYNC # SYNC | ASYNC
pairType: BI-DIRECTIONAL # UNI-DIRECTIONAL | BI-DIRECTIONAL
backupLocation:
type: s3 # s3 | azure | google | nfs
s3Config:
bucketName: <bucket-name>
endpoint: <s3-endpoint> # e.g. s3.amazonaws.com
region: <region> # e.g. us-east-1
accessKeyID: <access-key-id>
secretAccessKey: <secret-access-key>

DisasterRecoveryPair

FieldDescriptionType
apiVersionAPIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
string
kindKind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
string
specDisasterRecoveryPairSpec defines the desired state of DisasterRecoveryPairobject
statusDisasterRecoveryPairStatus stores the current status of the Disaster Recovery Pairobject

spec fields

FieldDescriptionType
spec.backupLocationBackupLocation specifies the object storage configuration for disaster recovery replication;
defines where backup data and application manifests are stored for cross-cluster recovery operations.
object
spec.backupLocation.azureConfigAzure Blob Storage backup location configuration for disaster recovery pairobject
spec.backupLocation.azureConfig.clientIDClientID is the Azure service principal application/client ID;
optional; required only for Service Principal authentication used in Azure management operations
(object lock, immutability policies); pairs with ClientSecret and TenantID; not required for basic blob storage access.
string
spec.backupLocation.azureConfig.clientSecretClientSecret is the Azure service principal client secret (password);
optional; required only for Service Principal authentication used in Azure management operations
(object lock, immutability policies); pairs with ClientID and TenantID; not required for basic blob storage access using StorageAccountKey.
string
spec.backupLocation.azureConfig.containerNameContainerName is the name of the storage location.
Stork will try to create the container if it does not exist.
Backup snapshot will be successful but won't be uploaded to storage location if container creation fails.
string
spec.backupLocation.azureConfig.environmentEnvironment specifies the Azure cloud environment type for blob storage;
defaults to empty (uses AzurePublicCloud);
supported values: "AzurePublicCloud" (default), "AzureChinaCloud".
string
spec.backupLocation.azureConfig.resourceGroupNameResourceGroupName is the Azure resource group name where storage resources are located;
optional; used for resource organization and management operations.
string
spec.backupLocation.azureConfig.storageAccountKeyStorageAccountKey is the Azure Storage account access key for authentication;
pairs with StorageAccountName for credential-based blob storage access;
required for basic backup/restore operations when not using Service Principal.
string
spec.backupLocation.azureConfig.storageAccountNameStorageAccountName is the Azure Storage account name where the backup container is located;
required for accessing Azure Blob Storage; pairs with StorageAccountKey for credential-based authentication.
string
spec.backupLocation.azureConfig.subscriptionIDSubscriptionID is the Azure subscription ID where cluster resources are located;
optional; required only for Service Principal authentication used in Azure management operations
(object lock, immutability policies); not required for basic blob storage access.
string
spec.backupLocation.azureConfig.tenantIDTenantID is the Azure Active Directory (AAD) tenant ID;
optional; required only for Service Principal authentication used in Azure management operations
(object lock, immutability policies); not required for basic blob storage access.
string
spec.backupLocation.googleConfigGoogle Cloud Storage backup location configuration for disaster recovery pairobject
spec.backupLocation.googleConfig.accountKeyAccountKey is the Google Cloud service account JSON key;
required for authentication to Google Cloud Storage;
contains the JWT credentials used to generate OAuth2 tokens for GCS access.
string
spec.backupLocation.googleConfig.bucketNameBucketName is the name of the storage bucket.
Stork will try to create the bucket if it does not exist.
Backup snapshot will be successful but won't be uploaded to storage location if bucket creation fails.
string
spec.backupLocation.googleConfig.projectIDProjectID is the Google Cloud Platform (GCP) project ID;
required for creating GCS buckets and managing GCP compute snapshots;
used for both object storage operations and volume snapshot operations.
string
spec.backupLocation.nfsConfigNFS backup location configuration for disaster recovery pairobject
spec.backupLocation.nfsConfig.exportPathExportPath is an optional sub-directory within the NFS export for organizing backups;
full NFS path: ServerAddress:SubPath/ExportPath;
string
spec.backupLocation.nfsConfig.ioTimeoutInSecsIOTimeoutInSecs specifies the NFS I/O timeout in seconds (e.g., 24);
optional; used to configure timeout for NFS operations; stored in backup location configuration.
integer
spec.backupLocation.nfsConfig.mountOptionsMountOptions specifies NFS mount options (e.g., "--vers=4.0", "nfsvers=4.1");
optional; passed to the NFS PersistentVolume mount for controlling NFS protocol version and behavior.
string
spec.backupLocation.nfsConfig.serverAddressServerAddress is the NFS server address (hostname or IP);
required for NFS backup location; used to mount the NFS share for backup/restore operations.
string
spec.backupLocation.nfsConfig.subPathSubPath is the export path on the NFS server (e.g., "/stork-nfs");
required; specifies the NFS export directory to mount for backup/restore operations.
string
spec.backupLocation.s3ConfigAWS S3 backup location configuration for disaster recovery pairobject
spec.backupLocation.s3Config.accessKeyIDAccessKeyID is the AWS access key ID credential used for S3 authentication;
required when useIam is false or not set; ignored when useIam is true (uses EC2 instance IAM roles instead).
string
spec.backupLocation.s3Config.bucketNameBucketName is the S3 bucket name for the backup location.
Stork will try to create the bucket if it does not exist.
Backup snapshot will be successful but won't be uploaded to storage location if bucket creation fails.
string
spec.backupLocation.s3Config.disableSSLDisableSSL when true, uses HTTP instead of HTTPS; defaults to false; set to true to use HTTP for S3-compatible stores without SSL enabled.boolean
spec.backupLocation.s3Config.encryptionKeyEncryptionKey is used for client-side encryption of application resource manifests (Kubernetes YAMLs) before uploading to S3.string
spec.backupLocation.s3Config.endpointEndpoint is the S3 API endpoint URL; required; set to "s3.amazonaws.com" for AWS S3, or custom URL for S3-compatible stores (MinIO, Ceph, etc.).string
spec.backupLocation.s3Config.regionRegion is the AWS region for the S3 bucket; required; set to appropriate AWS region (e.g., "us-east-1") or region for S3-compatible stores.string
spec.backupLocation.s3Config.secretAccessKeySecretAccessKey is the AWS secret access key credential that pairs with AccessKeyID for S3 authentication;
required when useIam is false or not set; ignored when useIam is true.
string
spec.backupLocation.s3Config.sseSSE (Server Side Encryption) type for the S3 bucket; optional.string
spec.backupLocation.s3Config.storageClassStorageClass specifies the S3 storage class for uploaded objects (e.g., STANDARD, STANDARD_IA); defaults to empty (uses bucket default); Glacier classes not supported.string
spec.backupLocation.s3Config.useIamUseIam when true, uses the IAM role attached to the node where Stork pods run instead of AccessKeyID/SecretAccessKey; defaults to false.boolean
spec.backupLocation.typeType of backup locationstring
spec.destinationClusterDestinationCluster defines the destination cluster namestring
spec.disasterRecoveryTypeDisasterRecoveryType defines the type of disaster recovery is desiredstring
spec.pairTypePairType defines the type of cluster pairing is desiredstring
spec.sourceClusterSourceCluster defines the source cluster namestring

status fields

FieldDescriptionType
status.compliantCompliant represents the compliance status of the disaster recovery pair.object
status.compliant.reasonReason is short description of why the resource is in non compliant state.string
status.compliant.statusStatus: is true then resource is compliant and operational.boolean
status.conditionsConditions represent the latest available observations of the DisasterRecoveryPair's statearray
status.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
string
status.conditions.messagemessage is a human readable message indicating details about the transition.
This may be an empty string.
string
status.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
integer
status.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
string
status.conditions.statusstatus of the condition, one of True, False, Unknown.string
status.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.string
status.destinationClusterDestination Clusters DisasterRecovery Pair statusobject
status.destinationCluster.referencesCluster's DisasterRecovery Pair Created Object Details
Map of Kubernetes resource kind to array of object references in format: <uid>#<name>#<namespace>
object
status.destinationCluster.schedulerStatusStatus of the pairing with the schedulerstring
status.destinationCluster.storageStatusStatus of pairing with the storage driverstring
status.lastAgentUpdateTimestampLastAgentUpdateTimestamp is the time when the disaster recovery pair status was last updated by the agentstring
status.sourceClusterSource Cluster's DisasterRecovery Pair statusobject
status.sourceCluster.referencesCluster's DisasterRecovery Pair Created Object Details
Map of Kubernetes resource kind to array of object references in format: <uid>#<name>#<namespace>
object
status.sourceCluster.schedulerStatusStatus of the pairing with the schedulerstring
status.sourceCluster.storageStatusStatus of pairing with the storage driverstring
In this topic: