Enhancement: Create backend sets with their initial backends. - #148
Enhancement: Create backend sets with their initial backends.#148jlamillan wants to merge 1 commit into
Conversation
AkarshES
left a comment
There was a problem hiding this comment.
Just this one comment needs to be addressed before we can merge. Have you run an E2E on your changes?
374b229 to
a629da0
Compare
I'll let you know once I've re-run the E2E testing after the latest update (dedupe in getInitialNodeBackends). |
a629da0 to
52101d3
Compare
@AkarshES I’ve repeatedly run our product's integration tests in OCI Native mode with this change which creates multiple OCI load balancers with DNS names and certificates across different Ingress configurations, then validates the endpoints end to end. I also reviewed the OCI Load Balancer work requests and OCI Native ingress controller logs during the CI tests. I also added unit coverage for the duplicate node backend case you flagged, so the initial backend list now dedupes by |
Signed-off-by: jesse.millan <jesse.millan@oracle.com>
52101d3 to
4dbbc86
Compare
Summary
Create backend sets with their initial backend list when possible, instead of always creating them empty and relying on a later backend reconciliation update.
Why
Provisioning a new load balancer with many backend sets currently requires an extra
UpdateBackendSetwork request per backend set after creation. Including the initial backends inCreateBackendSetDetailscan avoid those follow-up update requests when endpoint or node backend data is already available, reducing initial reconcile time for multi-service ingresses.Initial backend discovery is best-effort: if endpoints, ports, pods, or nodes are not ready yet, the backend set is still created and the existing backend controller can populate it later.
Manual verification
I’ve repeatedly run our product's integration tests in OCI Native mode with this change which creates multiple OCI load balancers with DNS names and certificates across different Ingress configurations, then validates the endpoints end to end. I also reviewed the OCI Load Balancer work requests and OCI Native ingress controller logs during the CI tests.
I also added unit coverage for the duplicate node backend case you flagged, so the initial backend list now dedupes by
nodeIP:nodePort.