KB-5 Suspected, not reproduced
Proxied subresources can return 404 with more than one observer replica
Behavior#
The apiserver sends /preview, /diff, /health and /history requests to one observer
address (--observer-url). The observer reads the Release from its local cache. With
--shard-scoped-cache, each observer replica caches only the Releases of its own shards. A
replica that does not own the shard of the Release returns 404.
Effect#
When the observer runs more than one replica with --shard-scoped-cache, these subresources fail
for some Releases.
Workaround#
- Run one observer replica.
- Or do not set
--shard-scoped-cacheon the observer.
In the code
convoy v0.9.0
internal/observer.(*Controller).handlePreviewinternal/observer/server.go:70internal/observer.(*Controller).handleDiffinternal/observer/server.go:105internal/observer.(*Controller).handleHistoryinternal/observer/server.go:144internal/observer.(*Controller).handleHealthinternal/observer/server.go:182