Deployer pod may be unable to observe started pod from API #15056
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The code in the deployer pod may reach the lifecycle hook execution
prior to the kubelet being able to update the pod status to "running"
with a valid start time. This caused the deployer pod to panic because
start time was empty.
Since the window for this race is small, if the deployer pod can't see a
start time it can use
time.Now()
to bound the expiration window. Sincethe process is reentrant, we can't use a start time at the beginning of
the deployer process (it's no more accurate that way).
A future change should guarantee the start time is available to the
container (via downward API, probably).
Fixes #15049
[test] @Kargakis @sjennings