Skip to content

Commit 03372f9

Browse files
committed
fixed update crd status each Reconcile loop
1 parent 9e37904 commit 03372f9

File tree

3 files changed

+9
-52
lines changed

3 files changed

+9
-52
lines changed

pkg/apis/redis/v1alpha1/distributedrediscluster_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ type PrometheusSpec struct {
7474
Labels map[string]string `json:"labels,omitempty"`
7575

7676
// Interval at which metrics should be scraped
77-
Interval string `json:"interval,omitempty"`
77+
Interval string `json:"interval,omitempty"`
7878
//Annotations map[string]string `json:"annotations,omitempty"`
7979
}
8080

pkg/controller/distributedrediscluster/distributedrediscluster_controller.go

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func add(mgr manager.Manager, r reconcile.Reconciler) error {
6161

6262
pred := predicate.Funcs{
6363
UpdateFunc: func(e event.UpdateEvent) bool {
64-
log.WithValues("namespace", e.MetaNew.GetNamespace(), "name", e.MetaNew.GetName()).Info("Call UpdateFunc")
64+
log.WithValues("namespace", e.MetaNew.GetNamespace(), "name", e.MetaNew.GetName()).V(5).Info("Call UpdateFunc")
6565
// Ignore updates to CR status in which case metadata.Generation does not change
6666
if e.MetaOld.GetGeneration() != e.MetaNew.GetGeneration() {
6767
log.WithValues("namespace", e.MetaNew.GetNamespace(), "name", e.MetaNew.GetName()).Info("Generation change return true")
@@ -171,7 +171,7 @@ func (r *ReconcileDistributedRedisCluster) Reconcile(request reconcile.Request)
171171
return reconcile.Result{}, err
172172
}
173173

174-
status := buildClusterStatus(clusterInfos, redisClusterPods.Items)
174+
status := buildClusterStatus(clusterInfos, redisClusterPods.Items, &instance.Status)
175175
reqLogger.V(4).Info("buildClusterStatus", "status", status)
176176
r.updateClusterIfNeed(instance, status)
177177

@@ -188,35 +188,8 @@ func (r *ReconcileDistributedRedisCluster) Reconcile(request reconcile.Request)
188188
return reconcile.Result{}, Redis.Wrap(err, "GetClusterInfos")
189189
}
190190
}
191-
newStatus := buildClusterStatus(newClusterInfos, redisClusterPods.Items)
191+
newStatus := buildClusterStatus(newClusterInfos, redisClusterPods.Items, &instance.Status)
192192
SetClusterOK(newStatus, "OK")
193193
r.updateClusterIfNeed(instance, newStatus)
194194
return reconcile.Result{RequeueAfter: requeueEnsure}, nil
195-
//// Define a new Pod object
196-
//pod := newPodForCR(instance)
197-
//
198-
//// Set DistributedRedisCluster instance as the owner and controller
199-
//if err := controllerutil.SetControllerReference(instance, pod, r.scheme); err != nil {
200-
// return reconcile.Result{}, err
201-
//}
202-
203-
// Check if this Pod already exists
204-
//found := &corev1.Pod{}
205-
//err = r.client.Get(context.TODO(), types.NamespacedName{Name: pod.Name, Namespace: pod.Namespace}, found)
206-
//if err != nil && errors.IsNotFound(err) {
207-
// reqLogger.Info("Creating a new Pod", "Pod.Namespace", pod.Namespace, "Pod.Name", pod.Name)
208-
// err = r.client.Create(context.TODO(), pod)
209-
// if err != nil {
210-
// return reconcile.Result{}, err
211-
// }
212-
//
213-
// // Pod created successfully - don't requeue
214-
// return reconcile.Result{}, nil
215-
//} else if err != nil {
216-
// return reconcile.Result{}, err
217-
//}
218-
219-
// Pod already exists - don't requeue
220-
//reqLogger.Info("Skip reconcile: Pod already exists", "Pod.Namespace", found.Namespace, "Pod.Name", found.Name)
221-
//return reconcile.Result{}, nil
222195
}

pkg/controller/distributedrediscluster/status.go

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,11 @@ func SetClusterScaling(status *redisv1alpha1.DistributedRedisClusterStatus, reas
3030
status.Reason = reason
3131
}
3232

33-
func buildClusterStatus(clusterInfos *redisutil.ClusterInfos, pods []corev1.Pod) *redisv1alpha1.DistributedRedisClusterStatus {
34-
status := &redisv1alpha1.DistributedRedisClusterStatus{}
35-
//if err == nil {
36-
// status.Status = redisv1alpha1.ClusterStatusOK
37-
// status.Reason = "OK"
38-
//} else {
39-
// status.Status = redisv1alpha1.ClusterStatusKO
40-
// status.Reason = err.Error()
41-
//}
33+
func buildClusterStatus(clusterInfos *redisutil.ClusterInfos, pods []corev1.Pod, oldStatus *redisv1alpha1.DistributedRedisClusterStatus) *redisv1alpha1.DistributedRedisClusterStatus {
34+
status := &redisv1alpha1.DistributedRedisClusterStatus{
35+
Status: oldStatus.Status,
36+
Reason: oldStatus.Reason,
37+
}
4238

4339
nbMaster := int32(0)
4440
nbSlaveByMaster := map[string]int{}
@@ -98,18 +94,6 @@ func (r *ReconcileDistributedRedisCluster) updateClusterIfNeed(cluster *redisv1a
9894
}
9995

10096
func compareStatus(old, new *redisv1alpha1.DistributedRedisClusterStatus) bool {
101-
if old.Status != new.Status || old.Reason != new.Reason {
102-
return true
103-
}
104-
105-
if old.NumberOfMaster != new.NumberOfMaster {
106-
return true
107-
}
108-
109-
if len(old.Nodes) != len(new.Nodes) {
110-
return true
111-
}
112-
11397
if compareStringValue("ClusterStatus", string(old.Status), string(new.Status)) {
11498
return true
11599
}

0 commit comments

Comments
 (0)