Kong / kubernetes-ingress-controller

:gorilla: Kong for Kubernetes: The official Ingress Controller for Kubernetes.
https://docs.konghq.com/kubernetes-ingress-controller/
Apache License 2.0
2.22k stars 592 forks source link

KIC 2.0 - Object Seed #1276

Closed shaneutt closed 3 years ago

shaneutt commented 3 years ago

When events have been reconciled, the resulting state is in the proxy server. In DB mode (e.g. postgres) this state persists, but in DBLESS mode this state is volatile. Thus, if the pod were to crash (e.g. OOMKILLER) and the state lost, Ingress resources can become "stuck" if they don't receive some new events for the controllers to reconcile.

We can fix this by having a seed round for the controller which would list, filter, and seed the proxy cache server on initial startup.

Acceptance Criteria:

mflendrich commented 3 years ago

Blocked - waiting for @shaneutt to have a PoC proving that the seed phase is necessary

shaneutt commented 3 years ago

Did some testing and reviewing: modern controller runtime (at the time of writing we're using v0.9.2) does actually perform a "seed round" for supported objects. I've tested this several ways over and we get the consistency we need already without the need for any separate tooling, so this can be closed.