-
Notifications
You must be signed in to change notification settings - Fork 591
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Race condition with Istio sidecar prevents KIC to startup correctly #4603
Labels
bug
Something isn't working
Comments
2 tasks
#4618 might be a better solution than trying to implement it in the chart. |
Having the retry logic in the controller would be ideal. It would help in this Istio case and any other case of network outage/delay at pod start. The container lifecycle hook is just a workaround and it has proven to be ineffective in some cases. Thank you for looking into this. |
This was referenced Sep 8, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Is there an existing issue for this?
Current Behavior
This is similar to what is observed in #4207 .
Due to the new controller startup logic described here and in this PR, if the network is not available when the ingress-controller container starts and it can't connect to the k8s control plane then all the controllers are disabled.
When the ingress-controller container starts and attempts to get k8s resources before the envoy sidecar is ready, it fails and the no routes are added to the Kong proxy instances.
Expected Behavior
The controller should retry or fail (restart) when the control plane is unavailable at boot.
Steps To Reproduce
Kong Ingress Controller version
Kubernetes version
Anything else?
Sample logs. Check timestamps.
Istio sidecard (extract):
Ingress controller container logs (extract):
This issue seems to be tracked here in Istio. One of the proposed solutions here is the use of postStart lifecycle hooks.
Maybe the KIC can implement either:
Or if that is not possible maybe the helm chart can add support for lifecycle hooks for the ingress-controller container like it does for the proxy container.
The text was updated successfully, but these errors were encountered: