-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Closed
Description
Create
/Update
/Delete
operations are performed using non-caching clients and return before any caches are likely to have seen the changes. This means Get
/List
can return stale data for an undeterministic amount of time, could be milliseconds or could be longer based on latency/load on both client and apiserver.
Example:
- List resource type X (see count: 0)
- Create resource of type X (success)
- List resource of type X (see count: 0)
- wait
- List resource of type X (see count: 1)
- Update resource of type X (success)
- Get resource of type X (see old object)
- wait
- Get resource of type X (see new object)
- Delete resource of type X
- Get resource of type X (see non-deleted object)
- List resource of type X (see count: 1)
- wait
- Get resource of type X (see tombstoned object)
- wait
- List resource of type X (see count: 0)
This is something that seems likely to catch quite a few operator developers off guard and could cause a lot of resources to be created when missing if the identifier for the resource is non-deterministic/random.
This relates a little to #180 because the behavior comes from implicit caching.
Metadata
Metadata
Assignees
Labels
No labels