@@ -62,8 +62,25 @@ func (r *ArgoRolloutReconciler) Reconcile(ctx context.Context, req ctrl.Request)
6262 }
6363
6464 klog .Infof ("Target ArgoRollout: %s/%s" , argoRollout .Namespace , argoRollout .Name )
65+
6566 if isCompleted (& argoRollout .Status ) {
6667 klog .V (1 ).Infof ("Rollout is completed: %s/%s" , argoRollout .Namespace , argoRollout .Name )
68+
69+ if argoRollout .Status .Replicas == argoRollout .Status .ReadyReplicas {
70+ if targetScaleDown .Status .Phase != optimizerv1alpha1 .RolloutScaleDownPhaseHealthy {
71+ newStatus := targetScaleDown .Status .DeepCopy ()
72+ newStatus .Phase = optimizerv1alpha1 .RolloutScaleDownPhaseHealthy
73+ targetScaleDown .Status = * newStatus
74+ if err := r .Status ().Update (ctx , targetScaleDown ); err != nil {
75+ klog .Errorf ("Failed to update RolloutScaleDown: %v" , err )
76+ return ctrl.Result {}, err
77+ }
78+ klog .Infof ("RolloutScaleDown is healthy: %s/%s" , targetScaleDown .Namespace , targetScaleDown .Name )
79+ r .Recorder .Eventf (targetScaleDown , corev1 .EventTypeNormal , "Healthy" , "RolloutScaleDown is healthy" )
80+ }
81+ return ctrl.Result {}, nil
82+ }
83+
6784 rsHash := argoRollout .Status .StableRS
6885 oldRS := []* appsv1.ReplicaSet {}
6986 RSList := & appsv1.ReplicaSetList {}
@@ -100,11 +117,20 @@ func (r *ArgoRolloutReconciler) Reconcile(ctx context.Context, req ctrl.Request)
100117 return ctrl.Result {}, err
101118 }
102119 if retry > 0 {
120+ if targetScaleDown .Status .Phase != optimizerv1alpha1 .RolloutScaleDownPhaseScaling {
121+ newStatus := targetScaleDown .Status .DeepCopy ()
122+ newStatus .Phase = optimizerv1alpha1 .RolloutScaleDownPhaseScaling
123+ targetScaleDown .Status = * newStatus
124+ if err := r .Status ().Update (ctx , targetScaleDown ); err != nil {
125+ klog .Errorf ("Failed to update RolloutScaleDown: %v" , err )
126+ return ctrl.Result {}, err
127+ }
128+ }
103129 return ctrl.Result {RequeueAfter : retry , Requeue : true }, nil
104130 }
105-
106131 }
107132 }
133+
108134 return ctrl.Result {}, nil
109135}
110136
@@ -155,6 +181,7 @@ func (r *ArgoRolloutReconciler) scaleDown(ctx context.Context, rs *appsv1.Replic
155181
156182 newStatus := scaleDown .Status .DeepCopy ()
157183 newStatus .LastScaleDownTime = metav1 .Now ()
184+ newStatus .Phase = optimizerv1alpha1 .RolloutScaleDownPhaseScaling
158185 scaleDown .Status = * newStatus
159186 if err := r .Status ().Update (ctx , scaleDown ); err != nil {
160187 klog .Errorf ("Failed to update RolloutScaleDown: %v" , err )
0 commit comments