Portworx Documentation has moved to https://docs.portworx.com
Portworx Enterprise version 2.13 has reached end of life and end of extended maintenance. Refer to the release support policy doc here.
Upgrade to the latest version of Portworx Enterprise for continued support. Documentation for the latest version of Portworx Enterprise can be found here.
Upgrade to the latest version of Portworx Enterprise for continued support. Documentation for the latest version of Portworx Enterprise can be found here.
Stateful Application CRD Reference
BackupLocation
The BackupLocation CRD parameters differ based on the object store you use.
S3-compliant storage
apiVersion: stork.libopenstorage.org/v1alpha1
kind: BackupLocation
metadata:
name: mysql
namespace: mysql-app
annotations:
stork.libopenstorage.org/skipresource: "true"
location:
type: s3
path: "bucket-name"
s3Config:
region: us-east-1
accessKeyID: XXXX
secretAccessKey: XXXX
endpoint: "https://bucketEndpoint.com"
disableSSL: false
s3Config Parameters
Parameter | Description | Value | Required? |
---|---|---|---|
region | Which region your s3 bucket is located in | Default: None | Yes |
accessKeyID | Your object store’s accessKeyID | Default: None | Yes |
secretAccessKey | Your object store’s secretAccessKey | Default: None | Yes |
endpoint | The URL or IP address of your bucket | Default: None | Yes |
disableSSL | Whether or not to disable SSL | Default: false |
No |
Azure Blob Storage
apiVersion: stork.libopenstorage.org/v1alpha1
kind: BackupLocation
metadata:
name: azure
namespace: mysql
annotations:
stork.libopenstorage.org/skipresource: "true"
location:
type: azure
path: "bucket-name"
azureConfig:
storageAccountName: myaccount
storageAccountKey: XXXX
azureConfig Parameters
Parameter | Description | Value | Required? |
---|---|---|---|
storageAccountName | Your object store’s storage account name | Default: None | Yes |
storageAccountKey | Your object store’s storage account key | Default: None | Yes |
Google Cloud Storage
apiVersion: stork.libopenstorage.org/v1alpha1
kind: BackupLocation
metadata:
name: gcs
namespace: mysql
annotations:
stork.libopenstorage.org/skipresource: "true"
location:
type: google
path: "bucket-name"
googleConfig:
projectID: "portworx-eng"
accountKey: >-
{
"type": "service_account",
"project_id": "portworx-eng",
"private_key_id": "XXXX",
"private_key": "-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----\n",
"client_email": "username@email.com",
"client_id": "XXXX",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/user%40email.com"
}
googleConfig Parameters
Parameter | Description | Value | Required? |
---|---|---|---|
projectID | Your Google Cloud Platform (GCP) project ID | Default: None | Yes |
accountKey | Your GCP JSON service account key | Default: None | Yes |
ApplicationBackup
apiVersion: stork.libopenstorage.org/v1alpha1
kind: ApplicationBackup
metadata:
name: backup
namespace: mysql-app
spec:
backupLocation: mysql
namespaces:
- mysql-app
reclaimPolicy: Delete
selectors:
preExecRule:
postExecRule:
Spec Parameters
Parameter | Description | Value | Required? |
---|---|---|---|
backupLocation | What backupLocation object to use to determine where to send the backup | Default: None | Yes |
namespaces | The namespaces to backup | Default: None | Yes |
reclaimPolicy | What happens to objects in the object store when the ApplicationBackup object is deleted |
Default: Delete |
No |
selectors | Define specific labels to determine which objects and volumes are backed-up | Default: None | No |
preExecRule | Rule to run before performing backup | Default: None | No |
PostExecRule | Rule to run after performing backup | Default: None | No |
ApplicationRestore
apiVersion: stork.libopenstorage.org/v1alpha1
kind: ApplicationRestore
metadata:
name: restore
namespace: mysql-app
spec:
backupName: backup
backupLocation: mysql
namespaceMapping:
mysql: mysql
replacePolicy: Delete
Spec Parameters
Parameter | Description | Value | Required? |
---|---|---|---|
backupName | The name of the ApplicationBackup you want to restore from | Default: None | Yes |
backupLocation | Which backup location object to get application backups from | Default: None | Yes |
namespaceMapping | A map of source and destination namespaces, allowing you to restore a backup to a different namespace. You must provide the map in key value pairs, with the source namespace as the key and the destination namespace as the value.
NOTE: You must run this spec from an admin namespace (kube-system by default).
|
Default: None | No |
replacePolicy | What happens if matching resources already exist | Default: Retain Enumerated string: Delete, Retain |
No |
ApplicationClone
apiVersion: stork.libopenstorage.org/v1alpha1
kind: ApplicationClone
metadata:
name: clone-mysql
namespace: kube-system
spec:
sourceNamespace: mysql-app
destinationNamespace: clone-mysql
selectors:
app: mysql-app-db
Spec Parameters
Parameter | Description | Value | Required? |
---|---|---|---|
sourceNamespace | The namespace you want to clone applications from | Default: None | Yes |
destinationNamespace | The namespace you want to clone applications to | Default: None | Yes |
selectors | Define specific labels to determine which resources are cloned | Default: None | No |
ApplicationBackupSchedule
apiVersion: stork.libopenstorage.org/v1alpha1
kind: ApplicationBackupSchedule
metadata:
name: backup
namespace: mysql
spec:
backupType: ""
reclaimPolicy: Retain
schedulePolicyName: testpolicy
suspend: false
template:
spec:
backupLocation: aws-la
backupType: ""
includeResources: nil
namespaces:
- mysql
postExecRule: ""
preExecRule: ""
reclaimPolicy: Retain
resourceTypes: nil
selectors: nil
skipServiceUpdate: false
Spec Parameters
Parameter | Description | Value | Required? |
---|---|---|---|
schedulePolicyName | The name of the schedule policy that defines when backup actions happen | Default: None | Yes |
backupLocation | The name of the backup location spec | Default: None | Yes |
namespaces | list of Namespaces which will be backed up | Default: nil | Yes |
reclaimPolicy | What happens to objects in the object store when the ApplicationBackup object is deleted |
Retain , Delete Default: Delete |
No |
suspend | Suspends the schedule. If this is set to ‘true’, backups will no longer schedule until this parameter is set to false again. | Default: false |
Yes |
includeResources | Use this to specify a particular set up resources to back up in namespaces. | Default: nil |
No |
postExecRule | Name of the post exec rule CR | Default: None | No |
preExecRule | Name of the pre exec rule CR | Default: None | No |
resourceType | The resource type names that need to backed up in the given namespace. | ConfigMap , Secret Default: nil |
No |
selectors | Resource selector label. All resources with this label will be backed up. | Default: nil |
No |
NamespaceSelectors | Namespace selector label. All namespaces with this label will be backed up. | Default: nil |
No |
Note: Some spec parameters are nested under
template:
and spec:
. Refer to the example spec above to see which parameters are nested.
Last edited: Tuesday, May 16, 2023
Questions? Visit the Portworx forum.