Topology Provider permissions briefly dropped during reconciliation when the reflector watch resets
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- kubernetes, rust
- Área
- devops, infrastructure
Línea de trabajo
Comienza siguiendo la ruta de reconciliación del operador HDFS y el manejo de eventos del watcher kube-rs Reflector, especialmente las reconstrucciones de Store y las actualizaciones de RoleBinding. Comprueba cómo afectan actualmente Init, InitApply, InitDone, Apply, Delete y los eventos de error a la reconciliación. Se considera terminado cuando las reconciliaciones no pueden actuar sobre un Store vacío o parcialmente poblado, se conservan los permisos de la cuenta de servicio y el trabajo se vuelve a poner en cola eventualmente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Affected Stackable version
Any up to and including SDP 26.3.0
Affected Apache HDFS version
N/A
Current and expected behavior
In the HDFS operator (and perhaps any operator based on kube-rs), when the Reflector watch resets, the Store has to be rebuilt.
Reconciliations before the Store is fully consistent can lead to service accounts being dropped from (Cluster)RoleBindings. The leads to the Topoology Provider not being able to determine the topology (or possibly builds an incorrect topology?)
The expected behaviour is that the above doesn't happen 😅.
Possible solution
We can requeue reconciliations (at least for some operations) until the store is fully consistent.
Eg:
- On error: log error and return early
watcher::Event::Init-> the store is empty, waiting for InitApply events, requeue/return early.watcher::Event::InitApply-> store is partially populated, requeue/return early until InitDone.watcher::Event::InitDone-> store is populated, continue with reconcilewatcher::Event::Apply-> store is populated, continue with reconcilewatcher::Event::Delete-> store is populated, continue with reconcile
[!CAUTION]
I haven't checked to see whether we can and should requeue, or just return an error which bubbles up as a Result for the error_policy handler which logs and does requeues.
Regardless, we need to make sure it eventually is reconciled and not just ignored.
Additional context
My understanding of the problem/solution should be double checked with someone else.
[!TIP]
This might only be when the topology provider is used... but also seems like something that might affect other products that have components that interact with Kubernetes API in SDP generally
Environment
No response
Would you like to work on fixing this bug?
yes
- Lenguaje dominante
- Rust
- Estrellas
- 53
- Forks
- 9
- Merge medio
- 1 d 13 h
- PR fusionados (30 d)
- 10
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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.
Más de stackabletech/hdfs-operator
-
type/bug
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
stackabletech/hdfs-operator#773 ·
-
Re-enable restart-controller Abiertotype/internal-debt
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
stackabletech/hdfs-operator#769 ·
-
type/bug
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
stackabletech/hdfs-operator#763 ·
-
Incorrect Kerberos principals are created when external-* listener is configured on namenode Abiertotype/bug
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
stackabletech/hdfs-operator#712 ·
-
type/bug
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
stackabletech/hdfs-operator#686 ·
Todos los issues de stackabletech/hdfs-operator
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug team:backend track:services-maintenance
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
cowprotocol/services#4950 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
gitbutlerapp/gitbutler#15998 · 1 comentario ·
-
bug triage:deciding
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
open-telemetry/otel-arrow#4132 ·