operator-framework / operator-framework/java-operator-sdk
Corner Case: Clenup Processing for Delete Event Without Finalizer
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Java
- Estrellas
- 944
- Forks
- 242
- Merge medio
- 1 d 4 h
- PR fusionados (30 d)
- 43
Descripción
If Cleaner interface is implemented by a reconciler a finalizer is automatically added to the custom resource, and cleaner is called before it gets removed.
There is however a corner case when it makes sense to do cleanup event finalizer is not used. In case there is an in memory data held for a custom resource, so when a custom resource deleted, related indexed or in memory objects needs to be cleaned up. In this case a finalizer is not needed, since if the operator is down and the delete event is missed it's not a problem, since the cleanup is just for in memory data.
To support this we could add a feature flag to @ControllerConfiguration to don't add finalizer for cleanup: addFinalizerForCleaner.
Note that this is not a priority issue, we should probably implement it only if some requests it. Also having a finalizer in those cases would not be a big issues.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la anotación @ControllerConfiguration y rastrea cómo las implementaciones de Cleaner activan el manejo de finalizer durante la eliminación de un custom resource. Confirma dónde se procesa el delete event y cómo se invoca cleanup. Se considera completado cuando la configuración propuesta controla si un cleaner añade un finalizer sin cambiar el comportamiento de cleanup, y el comportamiento relevante está cubierto por pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java, kubernetes
- Área
- infrastructure
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100