Skip to content

Commit f37cfeb

Browse files
committed
Attempt to ensure resources are latest at reconcile time
Signed-off-by: Michael Honaker <[email protected]>
1 parent 068167d commit f37cfeb

File tree

1 file changed

+23
-1
lines changed
  • oper8/watch_manager/python_watch_manager/threads

1 file changed

+23
-1
lines changed

oper8/watch_manager/python_watch_manager/threads/reconcile.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from .... import config
2323
from ....deploy_manager import DeployManagerBase, KubeEventType
2424
from ....exceptions import ConfigError
25+
from ....managed_object import ManagedObject
2526
from ....reconcile import ReconciliationResult
2627
from ..filters import FilterManager
2728
from ..leader_election import LeadershipManagerBase
@@ -427,9 +428,30 @@ def _create_timer_event_for_request(
427428
log.debug3("Pushing requeue request to timer: %s", future_request)
428429

429430
return self.timer_thread.put_event(
430-
requeue_time, self.push_request, future_request
431+
requeue_time, self._push_updated_request, future_request
431432
)
432433

434+
def _push_updated_request(self, request: ReconcileRequest):
435+
"""_push_updated_request is a helper function to ensure that when submitting a requeue
436+
event we always fetch the latest resource.
437+
438+
Args:
439+
request (ReconcileRequest): The request to push
440+
"""
441+
442+
success, current_resource = self.deploy_manager.get_object_current_state(
443+
kind=request.resource.kind,
444+
api_version=request.resource.api_version,
445+
name=request.resource.name,
446+
namespace=request.resource.namespace,
447+
)
448+
if not success:
449+
log.debug2("Unable to locate resource for requeue request: %s", request)
450+
return
451+
452+
request.resource = ManagedObject(current_resource)
453+
self.push_request(request)
454+
433455
## Pending Event Helpers ###################################################
434456

435457
def _handle_pending_reconcile(self, uid: str) -> bool:

0 commit comments

Comments
 (0)