@@ -10,6 +10,7 @@ import (
10
10
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
11
11
"k8s.io/apimachinery/pkg/types"
12
12
"k8s.io/client-go/tools/record"
13
+ "k8s.io/utils/pointer"
13
14
"sigs.k8s.io/controller-runtime/pkg/client"
14
15
)
15
16
@@ -22,7 +23,7 @@ func TestDPAReconciler_ValidateDataProtectionCR(t *testing.T) {
22
23
wantErr bool
23
24
}{
24
25
{
25
- name : "given valid DPA CR, no error case" ,
26
+ name : "given valid DPA CR, no default backup location, no backup images, no error case" ,
26
27
dpa : & oadpv1alpha1.DataProtectionApplication {
27
28
ObjectMeta : metav1.ObjectMeta {
28
29
Name : "test-DPA-CR" ,
@@ -37,6 +38,33 @@ func TestDPAReconciler_ValidateDataProtectionCR(t *testing.T) {
37
38
NoDefaultBackupLocation : true ,
38
39
},
39
40
},
41
+ BackupImages : pointer .Bool (false ),
42
+ },
43
+ },
44
+ objects : []client.Object {},
45
+ wantErr : false ,
46
+ want : true ,
47
+ },
48
+ {
49
+ name : "given valid DPA CR, no default backup location, no backup images, MTC type override, no error case" ,
50
+ dpa : & oadpv1alpha1.DataProtectionApplication {
51
+ ObjectMeta : metav1.ObjectMeta {
52
+ Name : "test-DPA-CR" ,
53
+ Namespace : "test-ns" ,
54
+ },
55
+ Spec : oadpv1alpha1.DataProtectionApplicationSpec {
56
+ Configuration : & oadpv1alpha1.ApplicationConfig {
57
+ Velero : & oadpv1alpha1.VeleroConfig {
58
+ DefaultPlugins : []oadpv1alpha1.DefaultPlugin {
59
+ oadpv1alpha1 .DefaultPluginAWS ,
60
+ },
61
+ NoDefaultBackupLocation : true ,
62
+ },
63
+ },
64
+ BackupImages : pointer .Bool (false ),
65
+ UnsupportedOverrides : map [oadpv1alpha1.UnsupportedImageKey ]string {
66
+ oadpv1alpha1 .OperatorTypeKey : oadpv1alpha1 .OperatorTypeMTC ,
67
+ },
40
68
},
41
69
},
42
70
objects : []client.Object {
@@ -51,7 +79,62 @@ func TestDPAReconciler_ValidateDataProtectionCR(t *testing.T) {
51
79
want : true ,
52
80
},
53
81
{
54
- name : "given valid DPA CR, error case" ,
82
+ name : "given valid DPA CR, no default backup location, no backup images, notMTC type override, error case" ,
83
+ dpa : & oadpv1alpha1.DataProtectionApplication {
84
+ ObjectMeta : metav1.ObjectMeta {
85
+ Name : "test-DPA-CR" ,
86
+ Namespace : "test-ns" ,
87
+ },
88
+ Spec : oadpv1alpha1.DataProtectionApplicationSpec {
89
+ Configuration : & oadpv1alpha1.ApplicationConfig {
90
+ Velero : & oadpv1alpha1.VeleroConfig {
91
+ DefaultPlugins : []oadpv1alpha1.DefaultPlugin {
92
+ oadpv1alpha1 .DefaultPluginAWS ,
93
+ },
94
+ NoDefaultBackupLocation : true ,
95
+ },
96
+ },
97
+ BackupImages : pointer .Bool (false ),
98
+ UnsupportedOverrides : map [oadpv1alpha1.UnsupportedImageKey ]string {
99
+ oadpv1alpha1 .OperatorTypeKey : "not" + oadpv1alpha1 .OperatorTypeMTC ,
100
+ },
101
+ },
102
+ },
103
+ objects : []client.Object {
104
+ & corev1.Secret {
105
+ ObjectMeta : metav1.ObjectMeta {
106
+ Name : "cloud-credentials" ,
107
+ Namespace : "test-ns" ,
108
+ },
109
+ },
110
+ },
111
+ wantErr : true ,
112
+ want : false ,
113
+ },
114
+ {
115
+ name : "given valid DPA CR, no default backup location, backup images cannot be nil, error case" ,
116
+ dpa : & oadpv1alpha1.DataProtectionApplication {
117
+ ObjectMeta : metav1.ObjectMeta {
118
+ Name : "test-DPA-CR" ,
119
+ Namespace : "test-ns" ,
120
+ },
121
+ Spec : oadpv1alpha1.DataProtectionApplicationSpec {
122
+ Configuration : & oadpv1alpha1.ApplicationConfig {
123
+ Velero : & oadpv1alpha1.VeleroConfig {
124
+ DefaultPlugins : []oadpv1alpha1.DefaultPlugin {
125
+ oadpv1alpha1 .DefaultPluginAWS ,
126
+ },
127
+ NoDefaultBackupLocation : true ,
128
+ },
129
+ },
130
+ },
131
+ },
132
+ objects : []client.Object {},
133
+ wantErr : true ,
134
+ want : false ,
135
+ },
136
+ {
137
+ name : "given valid DPA CR, no default backup location, backup images cannot be true, error case" ,
55
138
dpa : & oadpv1alpha1.DataProtectionApplication {
56
139
ObjectMeta : metav1.ObjectMeta {
57
140
Name : "test-DPA-CR" ,
@@ -66,6 +149,7 @@ func TestDPAReconciler_ValidateDataProtectionCR(t *testing.T) {
66
149
NoDefaultBackupLocation : true ,
67
150
},
68
151
},
152
+ BackupImages : pointer .Bool (true ),
69
153
},
70
154
},
71
155
objects : []client.Object {},
0 commit comments