Allow disabling or removing the default namespace index of an event source's informer
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 38/100
Direzione di ricerca
Inizia tracciando ManagedInformerEventSource attraverso InformerManager e InformerWrapper, quindi esamina InformerConfiguration e i punti di ingresso esistenti AbstractInformerPool e ConfigurationServiceOverrider. Confronta questi percorsi con SharedIndexInformer.removeNamespaceIndex(). Il lavoro è completo quando un’opzione di configurazione di prima classe può disabilitare l’indice dello spazio dei nomi predefinito senza richiedere il subclassing sperimentale del pool, con una copertura del comportamento di avvio dell’informer.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
For InformerEventSources, fabric8's default "namespace" index is unused: InformerWrapper.list(namespace) filters the item store directly, and byIndex only serves the JOSDK-qualified custom indexes. The index still costs one entry per object in the watched scope, and when an event source uses a filtering ItemStore to bound its cache, this unused index becomes the dominant retained memory (compounded by the fabric8 cleanup gap reported in fabric8io/kubernetes-client#8103).
fabric8 already exposes SharedIndexInformer.removeIndexer(String), but the SDK offers no path to the informer (it sits behind (see the edit below, the experimental informer pool provides a path).ManagedInformerEventSource's InformerManager and InformerWrapper, all inaccessible), so today the only way is reflection over three private fields
Suggestion: an InformerConfiguration flag (e.g. withoutNamespaceIndex()) applied when the wrapper starts the informer, or an extension point that hands advanced users the SharedIndexInformer for tuning.
Would you be open to a PR for this, and which of the two shapes would you prefer?
EDIT: found out that overriding AbstractInformerPool.start (via ConfigurationServiceOverrider.withInformerPool) allows calling SharedIndexInformer.removeNamespaceIndex() before the informer starts, so reflection is not required after all. The API is marked experimental though, and subclassing the pool for a per-informer concern is indirect, so we think a first-class InformerConfiguration option is still worth it. Happy to include that context in the PR.
- Lingua principale
- Java
- Stelle
- 944
- Fork
- 242
- Merge medio
- 1g 14h
- PR unite (30g)
- 46
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di operator-framework/java-operator-sdk
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
operator-framework/java-operator-sdk#3621 · 7 commenti · 1 assegnatario ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
operator-framework/java-operator-sdk#3568 · 1 commento · 1 reazione ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Support for Virtual Threads Aperta
operator-framework/java-operator-sdk#3538 · 2 commenti · 2 assegnatari ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
operator-framework/java-operator-sdk#3498 · 1 reazione ·
Tutte le issue di operator-framework/java-operator-sdk
Issue simili
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Apertaarea/plugin
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
apache/rocketmq-dashboard#5064 ·
-
Consent portal: creating a duplicate Purpose shows a generic error instead of "already exists" Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
wso2/dpdp-accelerator#287 ·