refactor: drop resource cache staleness workarounds - #3218
Draft
utkuozdemir wants to merge 1 commit into
Draft
Conversation
utkuozdemir
force-pushed
the
drop-uncached-reads
branch
from
August 3, 2026 16:47
2dcb42f to
89b31b0
Compare
utkuozdemir
force-pushed
the
drop-uncached-reads
branch
from
August 3, 2026 16:48
89b31b0 to
7efbe74
Compare
utkuozdemir
force-pushed
the
drop-uncached-reads
branch
from
August 3, 2026 16:52
7efbe74 to
ac53965
Compare
utkuozdemir
force-pushed
the
drop-uncached-reads
branch
from
August 3, 2026 17:04
ac53965 to
c2b4305
Compare
All controller reads now go through the controller runtime resource cache. The reads that bypassed the cache were workarounds for the cache serving mutually inconsistent data across resource types, which is now fixed at the state layer: all watches are served from a single shared watch stream, so cached reads are consistent with each other. Unit tests now run with no resources marked as cached, which effectively disables the cache: the in-memory state they use does not provide the cross-resource event ordering the cache needs, and the cache is exercised by the integration tests against etcd. This can be reverted once the in-memory state provides the same ordering guarantees. Requires the shared watch stream support in the etcd state backend. Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
utkuozdemir
force-pushed
the
drop-uncached-reads
branch
from
August 4, 2026 09:24
c2b4305 to
308848f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
All controller reads now go through the controller runtime resource cache. The reads that bypassed the cache were workarounds for the cache serving mutually inconsistent data across resource types, which is now fixed at the state layer: all watches are served from a single shared watch stream, so cached reads are consistent with each other.
Unit tests now run with no resources marked as cached, which effectively disables the cache: the in-memory state they use does not provide the cross-resource event ordering the cache needs, and the cache is exercised by the integration tests against etcd. This can be reverted once the in-memory state provides the same ordering guarantees.
Requires the shared watch stream support in the etcd state backend.