operator-framework / operator-framework/java-operator-sdk

read-cache-after-write consistency and event filtering for deletes

Offen
#3,117 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Java
Sterne
944
Forks
242
Ø Merge
1 T. 4 Std.
Gemergte PRs (30 T.)
43

Beschreibung

See also parent issue.

This might be a bit problematic, for resource without finalizer:

If the resource does not implement a finalizer, we could just record the UID of the resource and filter out events until we receive the delete event, that removes the cached resource ID.

The issue is with the resources with a finalizer, there we could define this like:

  1. Filter just the event that was caused by the delete operation (in this case, it just adds the deletion timestamp), and process subsequent events. By definition, only operations should happen afterwards, and that includes finalizer removals, but that is not enforced on the API level. Note that implementation-wise, this is an issue since the delete operation does not return the new resource nor it's version.

  2. We could filter out all the subsequent events until we receive a delete event. - But this might be too opionated, and especially if the controller would be restarted, users might see the resources again (although still marked for deletion). So probably not the right thing to do.

Notes:

  • optimistic locking does not seems to work for deletes either

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die Read-Cache- und Ereignisfilterpfade für Löschvorgänge im Java Operator SDK zu lokalisieren, und prüfe anschließend das übergeordnete Issue auf das vorgesehene Verhalten. Vergleiche Ressourcen mit und ohne Finalizer sowie den Hinweis zum optimistischen Sperren; dieses Issue ist erst abgeschlossen, wenn die Richtlinie zur Filterung von Löschereignissen festgelegt und konsistent implementiert wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, kubernetes
Bereich
backend, distributed-systems
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
20/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.