oadp restore create

Restore a snapshot of the entire IBM Software Hub instance (when installed on Container Storage Interface (CSI) volumes) or restore a restic backup of an entire IBM Software Hub instance on an S3-compatible object store.

Syntax

cpd-cli oadp restore create <cpd-snapshot-restore-name> \
--from-backup=<backup-file-name> \
[--aux-service-image-prefix=<backup-hook-image-prefix>] \
[--cacert=<certificate-bundle-path>] \
[--exclude-namespaces=<namespace1,namespace2,...>] \
[--exclude-resources=<resource.group1,resource.group2,...>] \
[--grant-image-puller-role=true|false] \
[--image-prefix=<image-registry-prefix>] \
[--include-cluster-resources=true|false] \
[--include-namespaces=<project-name1,project-name2,...>] \
[--include-resources=<resource-name1,resource-name2,...>] \
[--insecure-skip-tls-verify=true|false] \
[--labels=<map<label,label,...>>] \
[--posthooks=--posthooks] \
[--preserve-nodeports=true|false] \
[--preworkloadhooks=true|false] \
[--pvc-bound-wait-timeout=<h,m,s>] \
[--restore-volumes=true|false] \
[--scale-always] \
[--scale-wait-timeout=<h,m,s>] \
[--selector=<label-selector>] \
[--skip-hooks] \
[--unclaim-volumes=true|false] \
[--values=<yaml-file-name1,yaml-file-name2,...>] \

# Global options
[--add_dir_header=true|false] \
[--alsologtostderr=true|false] \
[--cpd-namespace=<cpd-namespace>] \
[--kubeconfig=<kubeconfig-paths> \
[--log-level=info|debug|warn|error|panic|trace] \
[--log-backtrace-at traceLocation=<integer>] \
[--log-dir=<log_directory>] \
[--log-file=<log_file_name>] \
[--log_file_max_size=<uint>] \
[--logtostderr=true|false] \
[--namespace=<namespace-name>] \
[--one-output=true|false] \
[--skip-headers=true|false] \
[--skip-log-headers=true|false] \
[--stderrthreshold severity=<integer>] \
[--v=<integer>] \
[--verbose \
[--vmodule moduleSpec=<pattern1, pattern2, and so on>]

Arguments

Table 1: Command arguments
Argument Description
<cpd-snapshot-restore-name> The name of the restore snapshot to create.
Table 2: Global options arguments
Argument Description
<trace-location> The stack trace location
<severity> The log severity level

Options

Table 1: Command options
Option Description
--aux-service-image-prefix Specify the backup hook job image prefix (if configurable).
Status
Optional.
Syntax
--aux-service-image-prefix=<backup-hook-image-prefix>
Default value
icr.io/cpopen/cpd
Valid values
  • icr.io/cpopen/cpd
  • ${PRIVATE_REGISTRY_LOCATION}
--cacert The certificate bundle path to use when verifying TLS connections.
Status
Optional.
Syntax
--cacert=<certificate-bundle-path>
Default value
No default.
Valid values
A valid certificate bundle path.
--exclude-namespaces Namespaces to exclude from the restore.
Status
Optional.
Syntax
--exclude-namespaces=<namespace1,namespace2,...>
Default value
No default.
Valid values
Valid namespace names.
--exclude-resources Resources to exclude from the restore, formatted as resource.group (for example, storageclasses.storage.k8s.io).
Status
Optional.
Syntax
--exclude-resources=<resource.group1,resource.group2,...>
Default value
No default.
Valid values
Valid resource.group pairings.

--from-backup

-b

The backup name from which to restore.
Status
Mandatory.
Syntax
--from-backup=<backup-file-name>
Default value
No default.
Valid values
A valid backup file name.
--grant-image-puller-role Grants IBM Software Hub instance namespaces permission to pull images from the OADP/Velero namespace. This option is used for air-gapped installations.
Status
Optional.
Syntax
--grant-image-puller-role=true|false
Default value
true
Valid values
true
Grants IBM Software Hub instance namespaces permission to pull images from the OADP/Velero namespace. This option is used for air-gapped installations.
false
Denies IBM Cloud Pak for Data instance namespaces permission.

--help

-h

Display command help.
Status
Optional.
Syntax
--help
Default value
No default.
Valid values
Not applicable.
--image-prefix Specify the image registry prefix.
Status
Optional.
Syntax
--image-prefix=<image-registry-prefix>
Default value
registry.redhat.io/ubi9
Valid values
  • icr.io/cpopen/cpd
  • registry.redhat.io/ubi9
  • ${PRIVATE_REGISTRY_LOCATION}
--include-cluster-resources Include the cluster-scoped resources in the backup.
Status
Optional.
Syntax
--include-cluster-resources=true|false
Default value
true
Valid values
true
Include the cluster-scoped resources in the backup.
false
Do not include the cluster-scoped resources in the backup.
--include-namespaces Include the specified namespaces in the restore.
Status
Optional.
Syntax
--include-namespaces=<project-name1,project-name2,...>
Default value
${PROJECT_CPD_INST_OPERANDS}
Valid values
Any valid project names. (Comma-separated string array.)
--include-resources Resources to include in the backup, formatted as resource.group, such as storageclasses.storage.k8s.io (use '\*' for all resources).
Status
Optional.
Syntax
--include-resources=<resource-name1,resource-name2,...>
Default value
No default.
Valid values
Any valid resource names. (Comma separated string array. Use '*' for all resources.)
--insecure-skip-tls-verify When set to 'true', the object store's TLS certificate are not checked for validity (not recommended for production).
Status
Optional.
Syntax
--insecure-skip-tls-verify=true|false
Default value
false
Valid values
false
The object store's TLS certificate are not checked for validity.
true
When set to 'true', the object store's TLS certificate are not checked for validity (not recommended for production).
--labels Labels to apply to the backup.
Status
Optional.
Syntax
--labels=<map<label,label,...>>
Default value
No default.
Valid values
Valid label names. (Comma-separated map string array list.)
--posthooks Run the default scale-up of K8's resources and configmap post-restore hooks.
Status
Optional.
Syntax
--posthooks=true|false
Default value
true
Valid values
true
Run the default scale-up of K8's resources and configmap post-restore hooks.
false
Do not run default scale down of K8's resources and configmap post-restore hooks.
--preserve-nodeports Preserve or don't preserve services node ports when restoring.
Status
Optional.
Syntax
--preserve-nodeports=true|false
Default value
true
Valid values
true
Preserve services nodes ports when restoring.
false
Do not preserve services nodes ports when restoring.
--preworkloadhooks Run the ConfigMap pre-workload restore hooks.
Status
Optional.
Syntax
--preworkloadhooks=true|false
Default value
true
Valid values
true
Run the ConfigMap pre-workload restore hooks.
false
Do not run the ConfigMap pre-workload restore hooks.
--pvc-bound-wait-timeout The PVC bound wait timeout duration ('h' for hours, 'm' for minutes, 's' for seconds)
Status
Optional.
Syntax
--pvc-bound-wait-timeout=<h,m,s>
Default value
3m0s
Valid values
Any valid duration string. Examples: 1m, 30m, 1h, 2h45m
--restore-volumes Restore volumes from snapshots.
Status
Optional.
Syntax
--restore-volumes=true|false
Default value
true
Valid values
true
Restore volumes from snapshots.
false
Do not restore volumes from snapshots.
--scale-always Unquiesce via scale down.
Status
Optional.
Syntax
--scale-always
Default value
No default.
Valid values
Not applicable.
--scale-wait-timeout The scale wait timeout duration ('h' for hours, 'm' for minutes, 's' for seconds).
Status
Optional.
Syntax
--scale-wait-timeout=<h,m,s>
Default value
6m0s
Valid values
Any valid duration string. Examples: 1m, 30m, 1h, 2h45m

--selector

-l

Only restore resources that match the label selector.
Status
Optional.
Syntax
--selector=<label-selector>
Default value
No default.
Valid values
Not applicable.
--skip-hooks Skip the default scale down of resources and backup configmap hooks.
Status
Optional.
Syntax
--skip-hooks
Default value
No default
Valid values
Not applicable.
--unclaim-volumes Allow released, statically-provisioned persistent volumes to be reclaimed.
Status
Optional.
Syntax
--unclaim-volumes=true|false
Default value
true
Valid values
true|false
--values Specify values in one or more YAML files.
Status
Optional.
Syntax
--values=<yaml-file-name1,yaml-file-name2,...>
Default value
No default.
Valid values
One or more YAML file names.

Global options

You can also use the following global options with this command:

Table 2: Command global options
Option Description
--add_dir_header Add the file directory to the header of log messages.
Status
Optional.
Syntax
--add_dir_header=true|false
Default value
false
Valid values
false
Do not add the file directory to the header of log messages.
true
Add the file directory to the header of log messages.
--alsologtostderr Log to standard error as well as files.
Status
Optional.
Syntax
--alsologtostderr=true|false
Default value
false
Valid values
false
Do not log to standard error as well as files.
true
Log to standard error as well as files.
Note: This option has no effect when --logtostderr=true.
--cpd-namespace The IBM Software Hub namespace in which the utility operates.
Status
Optional.
Syntax
--cpd-namespace=<cpd-namespace>
Default value
No default value.
Valid values
A valid IBM® Software Hub namespace.
Tip: The following command is an alternative to using this option:
cpd-cli oadp client config set cpd-namespace=<cpd-namespace-name>
However, the option takes precedence over the command.
--kubeconfig Paths to a kubeconfig. Only required if out-of-cluster.
Status
Optional.
Syntax
--kubeconfig=<kubeconfig-paths>
Default value
No default.
Valid values
Valid kubeconfig paths.
--log-level The command log level.
Status
Optional.
Syntax
--log-level=info|debug|warn|error|panic|trace
Default value
info
Valid values
debug
Debug messages are written to the log.
error
Error messages are written to the log.
info
Informative messages are written to the log.
panic
Panic messages are written to the log.
warn
Warning messages are written to the log.
--log-backtrace-at traceLocation When logging hits line file:N, emit a stack trace.
Status
Optional.
Syntax
--log-backtrace-at traceLocation=<integer>
Default value

0.

Valid values
Any positive integer.
--log-dir If non-empty, write log files in this directory.
Status
Optional.
Syntax
--log-dir=<log_directory>
Default value
No default.
Valid values
A valid directory.
Note: This option has no effect when --logtostderr=true.
--log-file If non-empty, use this log file.
Status
Optional.
Syntax
--log-file=<log_file_name>
Default value
No default.
Valid values
A valid directory.
Note: This option has no effect when --logtostderr=true.
--log_file_max_size The maximum size, in MB, that a log file can grow to. If you specify 0, the maximum file size is unlimited.
Status
Optional.
Syntax
--log_file_max_size=<uint>
Default value
1800.
Valid values
A valid unsigned integer.
Note: This option has no effect when --logtostderr=true.
--logtostderr Log to standard error instead of files.
Status
Optional.
Syntax
--logtostderr=true|false
Default value
true
Valid values
true
Log to standard error instead of files.
false
Log to files.
--namespace

-n

The namespace where OADP is installed.
Status
Optional.
Syntax
--namespace=<oadp-namespace>
Default value
No default value.
Valid values
Valid namespace name.
Tip: The following command is an alternative to using this option:
cpd-cli oadp client config set namespace=<OADP-operator-namespace>
However, the option takes precedence over the command.
--one-output Specifies whether to only write logs to their native severity level.
Status
Optional.
Syntax
--one-output=true|false
Default value
false
Valid values
false
Write logs to their native severity level and also to each lower severity level.
true
Write logs only to their native severity level.
Note: This option has no effect when --logtostderr=true.
--skip-headers Specifies whether to avoid header prefixes in log messages.
Status
Optional.
Syntax
--skip-headers
Default value
false
Valid values
false
Do not avoid header prefixes in log messages.
true
Avoid header prefixes in log messages.
--skip-log-headers Specifies whether to avoid header prefixes when opening log files.
Status
Optional.
Syntax
--skip-log-headers
Default value
false
Valid values
false
Do not avoid headers when opening log files.
true
Avoid headers when opening log files.
Note: This option has no effect when --logtostderr=true.
--stderrthreshold severity Logs at or above the specified threshold. Go to stderr when writing to files and stderr.
Status
Optional.
Syntax
--stderrthreshold severity=<integer>
Default value
2
Valid values
Any positive integer.
Note: This option has no effect when --logtostderr=true or .--alsologtostderr=false
--v

-v

Number for the log level verbosity.
Status
Optional.
Syntax
--v=<integer>
Default value
No default.
Valid values
Any valid positive integer.
--verbose Logs include more detailed messages.
Status
Optional.
Syntax
--verbose
Default value
No default.
Valid values
Not applicable.
--vmodule moduleSpec Comma-separated list of pattern=N settings for file-filtered logging.
Status
Optional.
Syntax
--vmodule moduleSpec=<pattern1, pattern2, and so on>
Default value
No default.
Valid values

Examples

Note: The following examples use the recommended installation environment variables.

It is strongly recommended that you use a script to create environment variables with the correct values for your environment. For more information, see Setting up installation environment variables.

Restore the <cpd-snapshot-restore-name> custom resource and certificates.
cpd-cli oadp restore create <cpd-snapshot-restore-name> \
--from-backup=<backup-file-name> \
--exclude-resources='ImageTag,clients' \
--include-cluster-resources=true \
--log-level=debug \
--verbose
Specify the private registry image prefix with the Red Hat® OpenShift® APIs for the Data Protection (OADP) project in an air-gapped environment.
cpd-cli oadp restore create <cpd-snapshot-restore-name> \
--from-backup=<backup-file-name> \
--exclude-resources='ImageTag,clients' \
--include-cluster-resources=true \
--image-prefix=registry.redhat.io/ubi9 \
--log-level=debug \
--verbose