Skip to content

Commit ad643f0

Browse files
authored
Merge pull request #850 from red-hat-storage/sync_us--master
Syncing latest changes from upstream master for rook
2 parents 1d535b6 + 9c1d681 commit ad643f0

File tree

3 files changed

+4
-111
lines changed

3 files changed

+4
-111
lines changed

pkg/operator/ceph/controller/predicate.go

-78
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ import (
4343
)
4444

4545
const (
46-
cephVersionLabelKey = "ceph_version"
4746
DoNotReconcileLabelName = "do_not_reconcile"
4847
)
4948

@@ -87,11 +86,6 @@ func WatchControllerPredicate() predicate.Funcs {
8786
} else if objOld.GetGeneration() != objNew.GetGeneration() {
8887
logger.Debugf("skipping resource %q update with unchanged spec", objNew.Name)
8988
}
90-
// Handling upgrades
91-
isUpgrade := isUpgrade(objOld.GetLabels(), objNew.GetLabels())
92-
if isUpgrade {
93-
return true
94-
}
9589

9690
case *cephv1.CephObjectStoreUser:
9791
objNew := e.ObjectNew.(*cephv1.CephObjectStoreUser)
@@ -212,11 +206,6 @@ func WatchControllerPredicate() predicate.Funcs {
212206
} else if objOld.GetGeneration() != objNew.GetGeneration() {
213207
logger.Debugf("skipping resource %q update with unchanged spec", objNew.Name)
214208
}
215-
// Handling upgrades
216-
isUpgrade := isUpgrade(objOld.GetLabels(), objNew.GetLabels())
217-
if isUpgrade {
218-
return true
219-
}
220209

221210
case *cephv1.CephNFS:
222211
objNew := e.ObjectNew.(*cephv1.CephNFS)
@@ -237,11 +226,6 @@ func WatchControllerPredicate() predicate.Funcs {
237226
} else if objOld.GetGeneration() != objNew.GetGeneration() {
238227
logger.Debugf("skipping resource %q update with unchanged spec", objNew.Name)
239228
}
240-
// Handling upgrades
241-
isUpgrade := isUpgrade(objOld.GetLabels(), objNew.GetLabels())
242-
if isUpgrade {
243-
return true
244-
}
245229

246230
case *cephv1.CephRBDMirror:
247231
objNew := e.ObjectNew.(*cephv1.CephRBDMirror)
@@ -262,11 +246,6 @@ func WatchControllerPredicate() predicate.Funcs {
262246
} else if objOld.GetGeneration() != objNew.GetGeneration() {
263247
logger.Debugf("skipping resource %q update with unchanged spec", objNew.Name)
264248
}
265-
// Handling upgrades
266-
isUpgrade := isUpgrade(objOld.GetLabels(), objNew.GetLabels())
267-
if isUpgrade {
268-
return true
269-
}
270249

271250
case *cephv1.CephClient:
272251
objNew := e.ObjectNew.(*cephv1.CephClient)
@@ -287,11 +266,6 @@ func WatchControllerPredicate() predicate.Funcs {
287266
} else if objOld.GetGeneration() != objNew.GetGeneration() {
288267
logger.Debugf("skipping resource %q update with unchanged spec", objNew.Name)
289268
}
290-
// Handling upgrades
291-
isUpgrade := isUpgrade(objOld.GetLabels(), objNew.GetLabels())
292-
if isUpgrade {
293-
return true
294-
}
295269

296270
case *cephv1.CephFilesystemMirror:
297271
objNew := e.ObjectNew.(*cephv1.CephFilesystemMirror)
@@ -312,11 +286,6 @@ func WatchControllerPredicate() predicate.Funcs {
312286
} else if objOld.GetGeneration() != objNew.GetGeneration() {
313287
logger.Debugf("skipping resource %q update with unchanged spec", objNew.Name)
314288
}
315-
// Handling upgrades
316-
isUpgrade := isUpgrade(objOld.GetLabels(), objNew.GetLabels())
317-
if isUpgrade {
318-
return true
319-
}
320289

321290
case *cephv1.CephBucketTopic:
322291
objNew := e.ObjectNew.(*cephv1.CephBucketTopic)
@@ -337,11 +306,6 @@ func WatchControllerPredicate() predicate.Funcs {
337306
} else if objOld.GetGeneration() != objNew.GetGeneration() {
338307
logger.Debugf("skipping resource %q update with unchanged spec", objNew.Name)
339308
}
340-
// Handling upgrades
341-
isUpgrade := isUpgrade(objOld.GetLabels(), objNew.GetLabels())
342-
if isUpgrade {
343-
return true
344-
}
345309

346310
case *cephv1.CephBucketNotification:
347311
objNew := e.ObjectNew.(*cephv1.CephBucketNotification)
@@ -362,11 +326,6 @@ func WatchControllerPredicate() predicate.Funcs {
362326
} else if objOld.GetGeneration() != objNew.GetGeneration() {
363327
logger.Debugf("skipping resource %q update with unchanged spec", objNew.Name)
364328
}
365-
// Handling upgrades
366-
isUpgrade := isUpgrade(objOld.GetLabels(), objNew.GetLabels())
367-
if isUpgrade {
368-
return true
369-
}
370329

371330
case *cephv1.CephFilesystemSubVolumeGroup:
372331
objNew := e.ObjectNew.(*cephv1.CephFilesystemSubVolumeGroup)
@@ -387,11 +346,6 @@ func WatchControllerPredicate() predicate.Funcs {
387346
} else if objOld.GetGeneration() != objNew.GetGeneration() {
388347
logger.Debugf("skipping resource %q update with unchanged spec", objNew.Name)
389348
}
390-
// Handling upgrades
391-
isUpgrade := isUpgrade(objOld.GetLabels(), objNew.GetLabels())
392-
if isUpgrade {
393-
return true
394-
}
395349

396350
case *bktv1alpha1.ObjectBucketClaim:
397351
objNew := e.ObjectNew.(*bktv1alpha1.ObjectBucketClaim)
@@ -431,11 +385,6 @@ func WatchControllerPredicate() predicate.Funcs {
431385
} else if objOld.GetGeneration() != objNew.GetGeneration() {
432386
logger.Debugf("skipping CephBlockPoolRadosNamespace resource %q update with unchanged spec", namespacedName)
433387
}
434-
// Handling upgrades
435-
isUpgrade := isUpgrade(objOld.GetLabels(), objNew.GetLabels())
436-
if isUpgrade {
437-
return true
438-
}
439388

440389
case *cephv1.CephCOSIDriver:
441390
objNew := e.ObjectNew.(*cephv1.CephCOSIDriver)
@@ -458,11 +407,6 @@ func WatchControllerPredicate() predicate.Funcs {
458407
} else if objOld.GetGeneration() != objNew.GetGeneration() {
459408
logger.Debugf("skipping CephCOSIDriver resource %q update with unchanged spec", namespacedName)
460409
}
461-
// Handling upgrades
462-
isUpgrade := isUpgrade(objOld.GetLabels(), objNew.GetLabels())
463-
if isUpgrade {
464-
return true
465-
}
466410

467411
}
468412
return false
@@ -679,28 +623,6 @@ func logErrorUnlessSensitive(msg string, err error, isSensitive bool) {
679623
}
680624
}
681625

682-
func isUpgrade(oldLabels, newLabels map[string]string) bool {
683-
oldLabelVal, oldLabelKeyExist := oldLabels[cephVersionLabelKey]
684-
newLabelVal, newLabelKeyExist := newLabels[cephVersionLabelKey]
685-
686-
// Nothing exists
687-
if !oldLabelKeyExist && !newLabelKeyExist {
688-
return false
689-
}
690-
691-
// The new object has the label key so we reconcile
692-
if !oldLabelKeyExist && newLabelKeyExist {
693-
return true
694-
}
695-
696-
// Both objects have the label and values are different so we reconcile
697-
if (oldLabelKeyExist && newLabelKeyExist) && oldLabelVal != newLabelVal {
698-
return true
699-
}
700-
701-
return false
702-
}
703-
704626
func isCanary(obj runtime.Object) bool {
705627
// If not a deployment, let's not reconcile
706628
d, ok := obj.(*appsv1.Deployment)

pkg/operator/ceph/controller/predicate_test.go

-28
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package controller
1818

1919
import (
2020
"context"
21-
"fmt"
2221
"testing"
2322

2423
cephv1 "github.com/rook/rook/pkg/apis/ceph.rook.io/v1"
@@ -87,33 +86,6 @@ func TestObjectChanged(t *testing.T) {
8786
assert.True(t, changed)
8887
}
8988

90-
func TestIsUpgrade(t *testing.T) {
91-
oldLabel := make(map[string]string)
92-
newLabel := map[string]string{
93-
"foo": "bar",
94-
}
95-
96-
// no value do nothing
97-
b := isUpgrade(oldLabel, newLabel)
98-
assert.False(t, b)
99-
100-
// different value do something
101-
newLabel["ceph_version"] = "19.2.0-squid"
102-
b = isUpgrade(oldLabel, newLabel)
103-
assert.True(t, b, fmt.Sprintf("%v,%v", oldLabel, newLabel))
104-
105-
// same value do nothing
106-
oldLabel["ceph_version"] = "19.2.0-squid"
107-
newLabel["ceph_version"] = "19.2.0-squid"
108-
b = isUpgrade(oldLabel, newLabel)
109-
assert.False(t, b, fmt.Sprintf("%v,%v", oldLabel, newLabel))
110-
111-
// different value do something
112-
newLabel["ceph_version"] = "19.2.1-squid"
113-
b = isUpgrade(oldLabel, newLabel)
114-
assert.True(t, b, fmt.Sprintf("%v,%v", oldLabel, newLabel))
115-
}
116-
11789
func TestIsValidEvent(t *testing.T) {
11890
obj := "rook-ceph-mon-a"
11991
valid := []byte(`{

pkg/operator/ceph/object/user/controller.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,12 @@ func add(mgr manager.Manager, r reconcile.Reconciler) error {
134134
func (r *ReconcileObjectStoreUser) Reconcile(context context.Context, request reconcile.Request) (reconcile.Result, error) {
135135
// workaround because the rook logging mechanism is not compatible with the controller-runtime logging interface
136136
reconcileResponse, cephObjectStoreUser, err := r.reconcile(request)
137+
if err != nil {
138+
r.updateStatus(k8sutil.ObservedGenerationNotAvailable, request.NamespacedName, k8sutil.ReconcileFailedStatus)
139+
logger.Errorf("failed to reconcile %v", err)
140+
}
137141

138142
return reporting.ReportReconcileResult(logger, r.recorder, request, &cephObjectStoreUser, reconcileResponse, err)
139-
140143
}
141144

142145
func (r *ReconcileObjectStoreUser) reconcile(request reconcile.Request) (reconcile.Result, cephv1.CephObjectStoreUser, error) {
@@ -215,7 +218,6 @@ func (r *ReconcileObjectStoreUser) reconcile(request reconcile.Request) (reconci
215218
}
216219
logger.Debugf("ObjectStore resource not ready in namespace %q, retrying in %q. %v",
217220
clusterNamespace.Namespace, opcontroller.WaitForRequeueIfCephClusterNotReady.RequeueAfter.String(), err)
218-
r.updateStatus(k8sutil.ObservedGenerationNotAvailable, request.NamespacedName, k8sutil.ReconcileFailedStatus)
219221
return opcontroller.WaitForRequeueIfCephClusterNotReady, *cephObjectStoreUser, err
220222
}
221223

@@ -246,14 +248,12 @@ func (r *ReconcileObjectStoreUser) reconcile(request reconcile.Request) (reconci
246248
// validate the user settings
247249
err = r.validateUser(cephObjectStoreUser)
248250
if err != nil {
249-
r.updateStatus(k8sutil.ObservedGenerationNotAvailable, request.NamespacedName, k8sutil.ReconcileFailedStatus)
250251
return reconcile.Result{}, *cephObjectStoreUser, errors.Wrapf(err, "invalid pool CR %q spec", cephObjectStoreUser.Name)
251252
}
252253

253254
// CREATE/UPDATE CEPH USER
254255
reconcileResponse, err = r.reconcileCephUser(cephObjectStoreUser, userConfig)
255256
if err != nil {
256-
r.updateStatus(k8sutil.ObservedGenerationNotAvailable, request.NamespacedName, k8sutil.ReconcileFailedStatus)
257257
return reconcileResponse, *cephObjectStoreUser, err
258258
}
259259

@@ -266,7 +266,6 @@ func (r *ReconcileObjectStoreUser) reconcile(request reconcile.Request) (reconci
266266
tlsSecretName := store.Spec.Gateway.SSLCertificateRef
267267
reconcileResponse, err = r.reconcileCephUserSecret(cephObjectStoreUser, userConfig, tlsSecretName)
268268
if err != nil {
269-
r.updateStatus(k8sutil.ObservedGenerationNotAvailable, request.NamespacedName, k8sutil.ReconcileFailedStatus)
270269
return reconcileResponse, *cephObjectStoreUser, err
271270
}
272271

0 commit comments

Comments
 (0)