@@ -123,6 +123,12 @@ func (r *Resources) prepareDBServerPodTermination(ctx context.Context, log zerol
123123 log .Debug ().Msg ("Pod is already failed, safe to remove dbserver pod" )
124124 return nil
125125 }
126+ // If pod is not member of cluster, do nothing
127+ if ! memberStatus .Conditions .IsTrue (api .ConditionTypeMemberOfCluster ) {
128+ log .Debug ().Msg ("Pod is not member of cluster" )
129+ return nil
130+ }
131+
126132 // Inspect deployment deletion state
127133 apiObject := r .context .GetAPIObject ()
128134 if apiObject .GetDeletionTimestamp () != nil {
@@ -154,6 +160,11 @@ func (r *Resources) prepareDBServerPodTermination(ctx context.Context, log zerol
154160 dbserverDataWillBeGone = true
155161 }
156162
163+ // Once decided to drain the member, never go back
164+ if memberStatus .Phase == api .MemberPhaseCreated {
165+ dbserverDataWillBeGone = true
166+ }
167+
157168 // Is this a simple pod restart?
158169 if ! dbserverDataWillBeGone {
159170 log .Debug ().Msg ("Pod is just being restarted, safe to remove dbserver pod" )
@@ -230,11 +241,15 @@ func (r *Resources) prepareDBServerPodTermination(ctx context.Context, log zerol
230241 return maskAny (err )
231242 }
232243 if jobStatus .IsFailed () {
233- log .Warn ().Str ("reason" , jobStatus .Reason ()).Msg ("Cleanout Job failed. Aborting plan " )
244+ log .Warn ().Str ("reason" , jobStatus .Reason ()).Msg ("Cleanout Job failed" )
234245 // Revert cleanout state
235246 memberStatus .Phase = api .MemberPhaseCreated
236247 memberStatus .CleanoutJobID = ""
237- return maskAny (fmt .Errorf ("Clean out server job failed" ))
248+ if err := updateMember (memberStatus ); err != nil {
249+ return maskAny (err )
250+ }
251+ log .Error ().Msg ("Cleanout server job failed, continue anyway" )
252+ return nil
238253 }
239254 }
240255
0 commit comments