Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
closes: #93
What
Instead of calculating edges and other CRDs for an ingress as it reconciles, we put it in a store with all the data and calculate the total difference of crds and then synchronize them all.
How
Uses the driver and store's methods to calculate and sync the crd differences.
Breaking Changes
Hopefully not, but probably :)
Testing
I've been running through the various combinations of ingress rules/hosts from the k8s documentation which I put into our own docs to show how edges work. So far from deleting and adding individual routes and ingresses with different annotations, I haven't hit any unexpected behaviors yet. Some potential issues like clashing routes/hosts just get merged and go away unless I'm missing a point where data can be lost. I aim to add more test to cover the core functions here especially as we change them to cover other things like default backends and wildcard hosts.
The large deletion of unit tests is because all the logic has already been re-created in the driver/store with their own tests in previous PR's, so this is just removing dead code.