Skip to content

Commit 06785f4

Browse files
Registry should not be deployed when Azure SP is used (#518)
* Registry should not be deployed when Azure SP is used * Fixing unit tests * Adding review comments * Fixing typos * Adding registry label to BSL
1 parent 0b6fca1 commit 06785f4

File tree

5 files changed

+34
-20
lines changed

5 files changed

+34
-20
lines changed

api/v1alpha1/oadp_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const ReconciledReasonError = "Error"
2929
const ReconcileCompleteMessage = "Reconcile complete"
3030

3131
const OadpOperatorLabel = "openshift.io/oadp"
32+
const RegistryDeploymentLabel = "openshift.io/oadp-registry"
3233

3334
type DefaultPlugin string
3435

controllers/bsl.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,14 +151,23 @@ func (r *DPAReconciler) updateBSLFromSpec(bsl *velerov1.BackupStorageLocation, d
151151
if err != nil {
152152
return err
153153
}
154-
154+
// While using Service Principal as Azure credentials, `storageAccountKeyEnvVar` value is not required to be set.
155+
// However, the registry deployment fails without a valid storage account key.
156+
// This logic prevents the registry pods from being deployed if Azure SP is used as an auth mechanism.
157+
registryDeployment := "True"
158+
if bslSpec.Provider == "azure" {
159+
if len(bslSpec.Config["storageAccountKeyEnvVar"]) == 0 {
160+
registryDeployment = "False"
161+
}
162+
}
155163
bsl.Labels = map[string]string{
156164
"app.kubernetes.io/name": "oadp-operator-velero",
157165
"app.kubernetes.io/instance": bsl.Name,
158166
//"app.kubernetes.io/version": "x.y.z",
159-
"app.kubernetes.io/managed-by": "oadp-operator",
160-
"app.kubernetes.io/component": "bsl",
161-
oadpv1alpha1.OadpOperatorLabel: "True",
167+
"app.kubernetes.io/managed-by": "oadp-operator",
168+
"app.kubernetes.io/component": "bsl",
169+
oadpv1alpha1.OadpOperatorLabel: "True",
170+
oadpv1alpha1.RegistryDeploymentLabel: registryDeployment,
162171
}
163172
bsl.Spec = bslSpec
164173

controllers/bsl_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,9 +1121,10 @@ func TestDPAReconciler_updateBSLFromSpec(t *testing.T) {
11211121
"app.kubernetes.io/name": "oadp-operator-velero",
11221122
"app.kubernetes.io/instance": tt.dpa.Name + "-1",
11231123
//"app.kubernetes.io/version": "x.y.z",
1124-
"app.kubernetes.io/managed-by": "oadp-operator",
1125-
"app.kubernetes.io/component": "bsl",
1126-
oadpv1alpha1.OadpOperatorLabel: "True",
1124+
"app.kubernetes.io/managed-by": "oadp-operator",
1125+
"app.kubernetes.io/component": "bsl",
1126+
oadpv1alpha1.OadpOperatorLabel: "True",
1127+
oadpv1alpha1.RegistryDeploymentLabel: "True",
11271128
},
11281129
OwnerReferences: []metav1.OwnerReference{{
11291130
APIVersion: oadpv1alpha1.SchemeBuilder.GroupVersion.String(),

controllers/registry.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,10 @@ func (r *DPAReconciler) ReconcileRegistries(log logr.Logger) (bool, error) {
170170
}
171171

172172
bslLabels := map[string]string{
173-
"app.kubernetes.io/name": "oadp-operator-velero",
174-
"app.kubernetes.io/managed-by": "oadp-operator",
175-
"app.kubernetes.io/component": "bsl",
173+
"app.kubernetes.io/name": "oadp-operator-velero",
174+
"app.kubernetes.io/managed-by": "oadp-operator",
175+
"app.kubernetes.io/component": "bsl",
176+
oadpv1alpha1.RegistryDeploymentLabel: "True",
176177
}
177178
bslListOptions := client.MatchingLabels(bslLabels)
178179
backupStorageLocationList := velerov1.BackupStorageLocationList{}
@@ -306,11 +307,12 @@ func (r *DPAReconciler) buildRegistryDeployment(registryDeployment *appsv1.Deplo
306307

307308
func (r *DPAReconciler) getRegistryBSLLabels(bsl *velerov1.BackupStorageLocation) map[string]string {
308309
labels := map[string]string{
309-
"app.kubernetes.io/name": common.OADPOperatorVelero,
310-
"app.kubernetes.io/instance": registryName(bsl),
311-
"app.kubernetes.io/managed-by": common.OADPOperator,
312-
"app.kubernetes.io/component": Registry,
313-
oadpv1alpha1.OadpOperatorLabel: "True",
310+
"app.kubernetes.io/name": common.OADPOperatorVelero,
311+
"app.kubernetes.io/instance": registryName(bsl),
312+
"app.kubernetes.io/managed-by": common.OADPOperator,
313+
"app.kubernetes.io/component": Registry,
314+
oadpv1alpha1.OadpOperatorLabel: "True",
315+
oadpv1alpha1.RegistryDeploymentLabel: "True",
314316
}
315317
return labels
316318
}

controllers/registry_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -294,11 +294,12 @@ func TestDPAReconciler_buildRegistryDeployment(t *testing.T) {
294294
Name: "test-registry",
295295
Namespace: "test-ns",
296296
Labels: map[string]string{
297-
"app.kubernetes.io/name": common.OADPOperatorVelero,
298-
"app.kubernetes.io/instance": "oadp-" + tt.bsl.Name + "-" + tt.bsl.Spec.Provider + "-registry",
299-
"app.kubernetes.io/managed-by": common.OADPOperator,
300-
"app.kubernetes.io/component": Registry,
301-
oadpv1alpha1.OadpOperatorLabel: "True",
297+
"app.kubernetes.io/name": common.OADPOperatorVelero,
298+
"app.kubernetes.io/instance": "oadp-" + tt.bsl.Name + "-" + tt.bsl.Spec.Provider + "-registry",
299+
"app.kubernetes.io/managed-by": common.OADPOperator,
300+
"app.kubernetes.io/component": Registry,
301+
oadpv1alpha1.OadpOperatorLabel: "True",
302+
oadpv1alpha1.RegistryDeploymentLabel: "True",
302303
},
303304
OwnerReferences: []metav1.OwnerReference{
304305
{

0 commit comments

Comments
 (0)