Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,14 @@ IMG ?= quay.io/konveyor/oadp-operator:latest
# You can override this with environment variable (e.g., export TTL_DURATION=4h)
TTL_DURATION ?= 1h

# HC_BACKUP_RESTORE_MODE is the mode of the HostedCluster to use for HCP tests.
HC_BACKUP_RESTORE_MODE ?= external # create, external, external-rosa
# HC_NAME is the name of the HostedCluster to use for HCP tests when HC_BACKUP_RESTORE_MODE is
# set to external. Otherwise, HC_NAME is ignored.
HC_NAME ?= ""
# HC_NAMESPACE is the namespace for HostedClusters to use for HCP tests.
HC_NAMESPACE ?= clusters

# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN))
GOBIN=$(shell go env GOPATH)/bin
Expand Down Expand Up @@ -743,6 +751,7 @@ CI_CRED_FILE ?= ${CLUSTER_PROFILE_DIR}/.awscred
BSL_REGION ?= us-east-1
VSL_REGION ?= ${LEASED_RESOURCE}
BSL_AWS_PROFILE ?= default
VSL_AWS_PROFILE ?= default
# BSL_AWS_PROFILE ?= migration-engineering

# bucket file
Expand Down Expand Up @@ -796,6 +805,7 @@ test-e2e-setup: login-required build-must-gather
OADP_CRED_FILE="$(OADP_CRED_FILE)" \
BUCKET="$(OADP_BUCKET)" \
TARGET_CI_CRED_FILE="$(CI_CRED_FILE)" \
VSL_AWS_PROFILE="$(VSL_AWS_PROFILE)" \
VSL_REGION="$(VSL_REGION)" \
BSL_REGION="$(BSL_REGION)" \
BSL_AWS_PROFILE="$(BSL_AWS_PROFILE)" \
Expand All @@ -807,6 +817,8 @@ ARTIFACT_DIR ?= /tmp
HCO_UPSTREAM ?= false
TEST_VIRT ?= false
TEST_HCP ?= false
TEST_HCP_EXTERNAL ?= false
HCP_EXTERNAL_ARGS ?= ""
TEST_CLI ?= false
SKIP_MUST_GATHER ?= false
TEST_UPGRADE ?= false
Expand All @@ -828,6 +840,12 @@ ifeq ($(TEST_HCP),true)
else
TEST_FILTER += && (! hcp)
endif
ifeq ($(TEST_HCP_EXTERNAL),true)
TEST_FILTER += && (hcp_external)
HCP_EXTERNAL_ARGS = -hc_backup_restore_mode=$(HC_BACKUP_RESTORE_MODE) -hc_name=$(HC_NAME) -hc_namespace=$(HC_NAMESPACE) -sc_kubeconfig=$(SC_KUBECONFIG)
else
TEST_FILTER += && (! hcp_external)
endif
ifeq ($(TEST_CLI),true)
TEST_FILTER += && (cli)
else
Expand All @@ -852,6 +870,7 @@ test-e2e: test-e2e-setup install-ginkgo ## Run E2E tests against OADP operator i
--ginkgo.label-filter="$(TEST_FILTER)" \
--ginkgo.junit-report="$(ARTIFACT_DIR)/junit_report.xml" \
--ginkgo.timeout=2h \
$(HCP_EXTERNAL_ARGS) \
$(GINKGO_ARGS)

.PHONY: test-e2e-cleanup
Expand All @@ -868,7 +887,6 @@ test-e2e-cleanup: login-required
for restore_name in $(shell $(OC_CLI) get restore -n $(OADP_TEST_NAMESPACE) -o name);do $(OC_CLI) patch "$$restore_name" -n $(OADP_TEST_NAMESPACE) -p '{"metadata":{"finalizers":null}}' --type=merge;done
rm -rf $(SETTINGS_TMP)


.PHONY: update-non-admin-manifests
update-non-admin-manifests: NON_ADMIN_CONTROLLER_IMG?=quay.io/konveyor/oadp-non-admin:latest
update-non-admin-manifests: yq ## Update Non Admin Controller (NAC) manifests shipped with OADP, from NON_ADMIN_CONTROLLER_PATH
Expand All @@ -892,4 +910,8 @@ endif

.PHONY: build-must-gather
build-must-gather: check-go ## Build OADP Must-gather binary must-gather/oadp-must-gather
ifeq ($(SKIP_MUST_GATHER),true)
echo "Skipping must-gather build"
else
cd must-gather && go build -mod=mod -a -o oadp-must-gather cmd/main.go
endif
2 changes: 2 additions & 0 deletions QE_PROW.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
| [oadp-qe-aws](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aws-testing-oadp-qe-aws) | [![oadp-qe-aws](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aws-testing-oadp-qe-aws)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aws-testing-oadp-qe-aws) | 1.5.1 | 4.19 | AWS | Standard |
| [oadp-qe-aws-fips](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aws-testing-oadp-qe-aws-fips) | [![oadp-qe-aws-fips](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aws-testing-oadp-qe-aws-fips)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aws-testing-oadp-qe-aws-fips) | 1.5.1 | 4.19 | AWS | FIPS Enabled |
| [oadp-qe-aws-proxy](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aws-testing-oadp-qe-aws-proxy) | [![oadp-qe-aws-proxy](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aws-testing-oadp-qe-aws-proxy)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aws-testing-oadp-qe-aws-proxy) | 1.5.1 | 4.19 | AWS | PROXY |
| [oadp-qe-aws-sno](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aws-testing-oadp-qe-aws-sno) | [![oadp-qe-aws-sno](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aws-testing-oadp-qe-aws-sno)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aws-testing-oadp-qe-aws-sno) | 1.5.1 | 4.19 | AWS | SNO |
| [oadp-qe-azure-fips](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-azure-testing-oadp-qe-azure-fips) | [![oadp-qe-azure-fips](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-aazure-testing-oadp-qe-azure-fips)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.5-ocp4.19-azure-testing-oadp-qe-azure-fips) | 1.5.1 | 4.19 | AZURE | FIPS Enabled |

## Interop Test Runs

Expand Down
39 changes: 20 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,6 @@
|-------------------|-------------|
| OCP 4.19 | [![AWS tests OCP 4.19](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-openshift-oadp-operator-oadp-dev-4.19-e2e-test-aws-periodic)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-ci-openshift-oadp-operator-oadp-dev-4.19-e2e-test-aws-periodic) |
| OCP 4.20 | [![AWS tests OCP 4.20](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-openshift-oadp-operator-oadp-dev-4.20-e2e-test-aws-periodic)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-ci-openshift-oadp-operator-oadp-dev-4.20-e2e-test-aws-periodic)
<!-- GCP:
[![GCP builds](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-openshift-oadp-operator-oadp-dev-4.12-e2e-test-gcp-periodic)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-ci-openshift-oadp-operator-oadp-dev-4.12-e2e-test-gcp-periodic)
[![GCP builds](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-openshift-oadp-operator-oadp-dev-4.13-e2e-test-gcp-periodic)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-ci-openshift-oadp-operator-oadp-dev-4.13-e2e-test-gcp-periodic)
[![GCP builds](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-openshift-oadp-operator-oadp-dev-4.14-e2e-test-gcp-periodic)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-ci-openshift-oadp-operator-oadp-dev-4.14-e2e-test-gcp-periodic) -->


<!-- Azure:
[![Azure builds](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-openshift-oadp-operator-oadp-dev-4.12-e2e-test-azure-periodic)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-ci-openshift-oadp-operator-oadp-dev-4.12-e2e-test-azure-periodic)
[![Azure builds](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-openshift-oadp-operator-oadp-dev-4.13-e2e-test-azure-periodic)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-ci-openshift-oadp-operator-oadp-dev-4.13-e2e-test-azure-periodic)
[![Azure builds](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-openshift-oadp-operator-oadp-dev-4.14-e2e-test-azure-periodic)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-ci-openshift-oadp-operator-oadp-dev-4.14-e2e-test-azure-periodic) -->

### Periodic AWS E2E Virtualization Tests in OpenShift

Expand All @@ -39,14 +29,25 @@
| OCP 4.19 | [![HCP tests](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-openshift-oadp-operator-oadp-dev-4.19-e2e-test-hcp-aws-periodic)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-ci-openshift-oadp-operator-oadp-dev-4.19-e2e-test-hcp-aws-periodic) |
| OCP 4.20 | [![HCP tests](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-openshift-oadp-operator-oadp-dev-4.20-e2e-test-hcp-aws-periodic)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-ci-openshift-oadp-operator-oadp-dev-4.20-e2e-test-hcp-aws-periodic) |

OADP repositories images job
### Periodic AWS E2E OADP CLI Tests in OpenShift
| OpenShift Version | Test Status |
|-------------------|-------------|
| OCP 4.19 | [![CLI 4.19 AWS](https://prow.ci.openshift.org/badge.svg?jobs=periodic-ci-openshift-oadp-operator-oadp-dev-4.19-e2e-test-cli-aws-periodic)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-ci-openshift-oadp-operator-oadp-dev-4.19-e2e-test-cli-aws-periodic)|
| OCP 4.20 | TBD |

### OADP repositories images job
| OADP | OpenShift Velero plugin | Velero | Velero plugin for AWS | Velero plugin for Legacy AWS | Velero plugin for GCP | Velero plugin for Microsoft Azure | Non Admin |
| ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- |
| [![OADP repository](https://prow.ci.openshift.org/badge.svg?jobs=branch-ci-openshift-oadp-operator-oadp-dev-images)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/branch-ci-openshift-oadp-operator-oadp-dev-images) | [![OpenShift Velero plugin repository](https://prow.ci.openshift.org/badge.svg?jobs=branch-ci-openshift-openshift-velero-plugin-oadp-dev-images)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/branch-ci-openshift-openshift-velero-plugin-oadp-dev-images) | [![OADP's Velero repository](https://prow.ci.openshift.org/badge.svg?jobs=branch-ci-openshift-velero-oadp-dev-images)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/branch-ci-openshift-velero-oadp-dev-images) | [![OADP's Velero plugin for AWS repository](https://prow.ci.openshift.org/badge.svg?jobs=branch-ci-openshift-velero-plugin-for-aws-oadp-dev-images)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/branch-ci-openshift-velero-plugin-for-aws-oadp-dev-images) | [![OADP's Velero plugin for Legacy AWS repository](https://prow.ci.openshift.org/badge.svg?jobs=branch-ci-openshift-velero-plugin-for-legacy-aws-oadp-dev-images)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/branch-ci-openshift-velero-plugin-for-legacy-aws-oadp-dev-images) | [![OADP's Velero plugin for GCP repository](https://prow.ci.openshift.org/badge.svg?jobs=branch-ci-openshift-velero-plugin-for-gcp-oadp-dev-images)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/branch-ci-openshift-velero-plugin-for-gcp-oadp-dev-images) | [![OADP's Velero plugin for Microsoft Azure repository](https://prow.ci.openshift.org/badge.svg?jobs=branch-ci-openshift-velero-plugin-for-microsoft-azure-oadp-dev-images)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/branch-ci-openshift-velero-plugin-for-microsoft-azure-oadp-dev-images) | [![Non Admin repository](https://prow.ci.openshift.org/badge.svg?jobs=branch-ci-migtools-oadp-non-admin-oadp-dev-images)](https://prow.ci.openshift.org/job-history/gs/test-platform-results/logs/branch-ci-migtools-oadp-non-admin-oadp-dev-images) |

Mirroring images to quay.io [![Mirror images](https://prow.ci.openshift.org/badge.svg?jobs=periodic-image-mirroring-konveyor)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-image-mirroring-konveyor)
### Mirroring images to quay.io [![Mirror images](https://prow.ci.openshift.org/badge.svg?jobs=periodic-image-mirroring-konveyor)](https://prow.ci.openshift.org/job-history/gs/origin-ci-test/logs/periodic-image-mirroring-konveyor)
</div>

### Rebase status from upstream Velero

* [OADP Rebase](https://github.com/oadp-rebasebot/oadp-rebase)
** UNDER-CONSTRUCTION **

Note: Official Overview and documentation can be found in the [OpenShift Documentation](https://docs.openshift.com/container-platform/latest/backup_and_restore/application_backup_and_restore/oadp-intro.html)

Documentation in this repository are considered unofficial and for development purposes only.
Expand All @@ -63,19 +64,19 @@ Documentation in this repository are considered unofficial and for development p
5. [Use NooBaa as a Backup Storage Location](docs/config/noobaa/install_oadp_noobaa.md)
6. [Use Velero --features flag](docs/config/features_flag.md)
7. [Use Custom Plugin Images for Velero ](docs/config/custom_plugin_images.md)
5. [Upgrade from 0.2](docs/upgrade.md)
6. Examples
1. [Stateless App Backup/Restore](docs/examples/stateless.md)
2. [Stateful App Backup/Restore](docs/examples/stateful.md)
3. [CSI Backup/Restore](docs/examples/CSI)
4. [Data Mover (OADP 1.2 or below)](/docs/examples/data_mover.md)
5. Examples
1. [Sample Apps used in OADP CI](https://github.com/openshift/oadp-operator/tree/oadp-dev/tests/e2e/sample-applications)
2. [Stateless App Backup/Restore](docs/examples/stateless.md)
3. [Stateful App Backup/Restore](docs/examples/stateful.md)
4. [CSI Backup/Restore](docs/examples/CSI)

7. [Troubleshooting](/docs/TROUBLESHOOTING.md)
8. Contribute
1. [Install & Build from Source](docs/developer/install_from_source.md)
2. [OLM Integration](docs/developer/olm_hacking.md)
3. [Test Operator Changes](docs/developer/local_dev.md)
4. [E2E Test Suite](docs/developer/TESTING.md)
9. [Velero Version Relationship](#version)
10. [Velero Version Relationship](#version)


<hr style="height:1px;border:none;color:#333;">
Expand Down
16 changes: 16 additions & 0 deletions api/v1alpha1/cloudstorage_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,19 @@ const (
GCPBucketProvider CloudStorageProvider = CloudStorageProvider(DefaultPluginGCP)
)

// CloudStorage condition constants
const (
// ConditionBucketReady indicates whether the bucket exists and is ready for use
ConditionBucketReady = "BucketReady"

// Condition reasons for BucketReady condition
ReasonBucketCreated = "BucketCreated"
ReasonBucketReady = "BucketReady"
ReasonBucketCreationFailed = "BucketCreationFailed"
ReasonBucketCheckError = "BucketCheckError"
ReasonSTSSecretError = "STSSecretError"
)

type CloudStorageSpec struct {
// name is the name requested for the bucket (aws, gcp) or container (azure)
Name string `json:"name"`
Expand Down Expand Up @@ -63,6 +76,9 @@ type CloudStorageStatus struct {
// LastSyncTimestamp is the last time the contents of the CloudStorage was synced
// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="LastSyncTimestamp"
LastSynced *metav1.Time `json:"lastSyncTimestamp,omitempty"`
// Conditions represent the latest available observations of the CloudStorage's current state
// +operator-sdk:csv:customresourcedefinitions:type=status
Conditions []metav1.Condition `json:"conditions,omitempty"`
}

// +kubebuilder:object:root=true
Expand Down
63 changes: 58 additions & 5 deletions api/v1alpha1/dataprotectionapplication_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import (
"time"

velero "github.com/vmware-tanzu/velero/pkg/apis/velero/v1"
"github.com/vmware-tanzu/velero/pkg/nodeagent"
"github.com/vmware-tanzu/velero/pkg/types"
"github.com/vmware-tanzu/velero/pkg/util/kube"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand Down Expand Up @@ -70,7 +70,6 @@ const LegacyAWSPluginImageKey UnsupportedImageKey = "legacyAWSPluginImageFqin"
const OpenShiftPluginImageKey UnsupportedImageKey = "openshiftPluginImageFqin"
const AzurePluginImageKey UnsupportedImageKey = "azurePluginImageFqin"
const GCPPluginImageKey UnsupportedImageKey = "gcpPluginImageFqin"
const ResticRestoreImageKey UnsupportedImageKey = "resticRestoreImageFqin"
const KubeVirtPluginImageKey UnsupportedImageKey = "kubevirtPluginImageFqin"
const HypershiftPluginImageKey UnsupportedImageKey = "hypershiftPluginImageFqin"
const NonAdminControllerImageKey UnsupportedImageKey = "nonAdminControllerImageFqin"
Expand Down Expand Up @@ -426,17 +425,70 @@ type NodeAgentConfigMapSettings struct {
// LoadAffinity is the config for data path load affinity.
// +optional
LoadAffinityConfig []*LoadAffinity `json:"loadAffinity,omitempty"`
// Note: DeepCopy for this field is manually maintained below as controller-gen is unable to generate DeepCopyInto for external types (velerotypes.BackupPVC)
// because types.BackupPVC is an external type without DeepCopy methods

// BackupPVCConfig is the config for backupPVC (intermediate PVC) of snapshot data movement
// +optional
BackupPVCConfig map[string]nodeagent.BackupPVC `json:"backupPVC,omitempty"`
BackupPVCConfig map[string]types.BackupPVC `json:"backupPVC,omitempty"`
// RestoreVCConfig is the config for restorePVC (intermediate PVC) of generic restore
// +optional
RestorePVCConfig *nodeagent.RestorePVC `json:"restorePVC,omitempty"`
RestorePVCConfig *types.RestorePVC `json:"restorePVC,omitempty"`
// PodResources is the resource config for various types of pods launched by node-agent, i.e., data mover pods.
// +optional
PodResources *kube.PodResources `json:"podResources,omitempty"`
}

// DeepCopyInto is a manual deepcopy function, copying the receiver, writing into out. in must be non-nil.
// needed for above BackupPVCConfig map[string]types.BackupPVC `json:"backupPVC,omitempty"`
func (in *NodeAgentConfigMapSettings) DeepCopyInto(out *NodeAgentConfigMapSettings) {
*out = *in
if in.LoadConcurrency != nil {
in, out := &in.LoadConcurrency, &out.LoadConcurrency
*out = new(LoadConcurrency)
(*in).DeepCopyInto(*out)
}
if in.LoadAffinityConfig != nil {
in, out := &in.LoadAffinityConfig, &out.LoadAffinityConfig
*out = make([]*LoadAffinity, len(*in))
for i := range *in {
if (*in)[i] != nil {
in, out := &(*in)[i], &(*out)[i]
*out = new(LoadAffinity)
(*in).DeepCopyInto(*out)
}
}
}
if in.BackupPVCConfig != nil {
in, out := &in.BackupPVCConfig, &out.BackupPVCConfig
*out = make(map[string]types.BackupPVC, len(*in))
for key, val := range *in {
outVal := types.BackupPVC{
StorageClass: val.StorageClass,
ReadOnly: val.ReadOnly,
SPCNoRelabeling: val.SPCNoRelabeling,
}
if val.Annotations != nil {
outVal.Annotations = make(map[string]string, len(val.Annotations))
for k, v := range val.Annotations {
outVal.Annotations[k] = v
}
}
(*out)[key] = outVal
}
}
if in.RestorePVCConfig != nil {
in, out := &in.RestorePVCConfig, &out.RestorePVCConfig
*out = new(types.RestorePVC)
**out = **in
}
if in.PodResources != nil {
in, out := &in.PodResources, &out.PodResources
*out = new(kube.PodResources)
**out = **in
}
}

// Velero nodeAgentServerConfig struct used in below struct:
// https://github.com/openshift/velero/blob/8c8a6cccd78b78bd797e40189b0b9bee46a97f9e/pkg/cmd/cli/nodeagent/server.go#L87-L92

Expand All @@ -452,6 +504,8 @@ type NodeAgentConfig struct {
// How long to wait for resource processes which are not covered by other specific timeout parameters. Default is 10 minutes.
// +optional
ResourceTimeout *metav1.Duration `json:"resourceTimeout,omitempty"`
// Enum below for Restic is being kept for compatibility reasons, and can be removed when we bump to v2

// The type of uploader to transfer the data of pod volumes, the supported values are 'restic' or 'kopia'
// +kubebuilder:validation:Enum=restic;kopia
// +kubebuilder:validation:Required
Expand Down Expand Up @@ -783,7 +837,6 @@ type DataProtectionApplicationSpec struct {
// - openshiftPluginImageFqin
// - azurePluginImageFqin
// - gcpPluginImageFqin
// - resticRestoreImageFqin
// - kubevirtPluginImageFqin
// - hypershiftPluginImageFqin
// - nonAdminControllerImageFqin
Expand Down
Loading