HTTPRoute/GRPCRoute status is written before Provider.Update, so translation and sync failures are invisible
Los mantenedores suelen responder en 3 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 56/100
Línea de trabajo
Comienza en internal/controller/httproute_controller.go y internal/controller/grpcroute_controller.go, siguiendo las escrituras de estado y las llamadas a Provider.Update en Reconcile. Compara su orden y manejo de errores con apisixglobalrule_controller.go e ingress_controller.go. Se considera terminado cuando los errores de traducción o sincronización de Provider.Update se reflejen en el estado de la ruta en lugar de solo provocar un requeue.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
HTTPRouteReconciler.Reconcile writes the route status before it programs the data plane:
SetRouteConditionAccepted/SetRouteConditionResolvedRefspopulatehr.Status.Parentsr.Updater.Update(...)andUpdateStatus(...)persist that status- then
r.Provider.Update(ctx, tctx, routeToUpdate)runs, which is where translation happens - an error from
Provider.Updateis only returned for requeue
So any failure that originates in translation (or anywhere else inside Provider.Update) never reaches the status. The route reports Accepted=True / ResolvedRefs=True while nothing has been programmed, and the user has no signal that their configuration is not in effect. Retries keep failing silently.
GRPCRouteReconciler.Reconcile has the same ordering.
There is no admission gate to compensate on these paths: httproute_webhook.go only implements collectWarnings (no adcValidator, unlike apisixroute_webhook.go / apisixconsumer_webhook.go), and v1alpha1 PluginConfig has no webhook at all.
For contrast, apisixglobalrule_controller.go and ingress_controller.go both call Provider.Update first and reflect its error in the status condition, which is the behavior we want here.
Expected behavior
Either move the status write after Provider.Update, or fold the Provider.Update error into the conditions before persisting, so a translation or sync failure is visible on the object.
Affected
internal/controller/httproute_controller.gointernal/controller/grpcroute_controller.go
Context
Surfaced during review on #441. It is pre-existing and independent of that PR, but it is what makes any fail-closed behavior on the Gateway API route paths invisible, so it blocks #452 from being user-observable.
Upstream: apache/apisix-ingress-controller#2840
- Lenguaje dominante
- Go
- Estrellas
- 5
- Forks
- 5
- Merge medio
- 5 d 16 h
- PR fusionados (30 d)
- 10
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin 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.
Más de api7/api7-ingress-controller
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
api7/api7-ingress-controller#477 ·
Los mantenedores suelen responder en 3 días
-
bug
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
api7/api7-ingress-controller#462 · 4 comentarios · 1 reacción ·
Los mantenedores suelen responder en 3 días
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
api7/api7-ingress-controller#458 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 3 días
-
Plugin config unmarshal failures still log-and-skip in consumer.go, gateway.go and policies.goAbiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
api7/api7-ingress-controller#454 · 2 comentarios · 1 reacción ·
Los mantenedores suelen responder en 3 días
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
api7/api7-ingress-controller#448 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 3 días
Todos los issues de api7/api7-ingress-controller
Issues similares
-
oss/0 pending team/container-integrations
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
DataDog/datadog-agent#58323 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
kubernetes-sigs/external-dns#6816 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
ANSI translator ignores SGR 22/24 (and other attribute-off codes): bold and underline never turn offAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100