-
Notifications
You must be signed in to change notification settings - Fork 173
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
Make Data Injections Happen asyc w/ Component Deployment #425
Conversation
Update data-injection demo such that it uses an init container, which is closer to what a realistic scenario would use.
…ta-injection-example' into fix/data-injection-race-condition
update the schema file? |
@jeff-mccoy I thought this update would mean that we wouldn't need the loop when checking the data-injection results but that doesn't seem to be the case. |
1c2b72a
to
09e0882
Compare
For some reason, the k8s api must be doing some weird cashing things. The exec is not showing files in the volume that should be there because:
Because of that I'm going to add the retry loop to the test. 👎 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Freaking finally LGTM
- Breaking Change: move "data" to components -> "dataInjections" - Update data-injection example to use initContainer & pod variants for E2E - Cleanup E2E flow for data injection tests - Fix issues with race conditions involving initContainers data injections & Helm wait - Way too much work on making tests not cry with async ops for data injection Co-authored-by: Andy Roth <[email protected]> Co-authored-by: Jeff McCoy <[email protected]> Co-authored-by: Jon Perry <[email protected]>
Description
Data injections used to operate after all the components have been deployed. This is an issue when apps are expecting data before they report themselves as healthy. When this happens the pod is never able to report healthy because their init container is waiting for the data which isn't getting injected because the pods are not reporting healthy yet. A un-fun loop.
This PR moves the data-injection operation at the same time as the component deployment and has the injection happen as a go routine that way once the pods come up the data will be injected in the background.
Related Issue
Fixes #423
Type of change
Checklist before merging
needs-tests
label)needs-docs
label)