Deleting a Hetzner balancer does not retry when the balancer is busy. When a Service is deleted or stops being a LoadBalancer, a 423 locked on the delete fails the whole release, and the finalizer stays until the next attempt. The balancer can still be locked by an action a reconcile started a moment earlier, for example a type change.
Every call a reconcile makes gets a short retry for locked, conflict, robot_unavailable and 5xx. #59 adds it for targets and #66 for the rest. The delete in cleanup() was left out on purpose. #57 and #62 rewrite that function on the other line of the stack, and wrapping it on this line would conflict.
I'd like the delete to use the same retry once both lines are merged.
Deleting a Hetzner balancer does not retry when the balancer is busy. When a Service is deleted or stops being a LoadBalancer, a 423
lockedon the delete fails the whole release, and the finalizer stays until the next attempt. The balancer can still be locked by an action a reconcile started a moment earlier, for example a type change.Every call a reconcile makes gets a short retry for
locked,conflict,robot_unavailableand 5xx. #59 adds it for targets and #66 for the rest. The delete incleanup()was left out on purpose. #57 and #62 rewrite that function on the other line of the stack, and wrapping it on this line would conflict.I'd like the delete to use the same retry once both lines are merged.