Skip to content

Enhancement: Create backend sets with their initial backends. - #148

Open
jlamillan wants to merge 1 commit into
oracle:mainfrom
jlamillan:jlamillan/backend_sets_initial_backends
Open

Enhancement: Create backend sets with their initial backends.#148
jlamillan wants to merge 1 commit into
oracle:mainfrom
jlamillan:jlamillan/backend_sets_initial_backends

Conversation

@jlamillan

@jlamillan jlamillan commented Jun 4, 2026

Copy link
Copy Markdown
Member

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 UpdateBackendSet work request per backend set after creation. Including the initial backends in CreateBackendSetDetails can 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.

@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Jun 4, 2026

@AkarshES AkarshES left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just this one comment needs to be addressed before we can merge. Have you run an E2E on your changes?

Comment thread pkg/controllers/ingress/ingress.go Outdated
@jlamillan
jlamillan force-pushed the jlamillan/backend_sets_initial_backends branch from 374b229 to a629da0 Compare June 22, 2026 23:11
@jlamillan

Copy link
Copy Markdown
Member Author

Just this one comment needs to be addressed before we can merge. Have you run an E2E on your changes?

I'll let you know once I've re-run the E2E testing after the latest update (dedupe in getInitialNodeBackends).

@jlamillan jlamillan changed the title Create backend sets with their initial backends. Enhancement: Create backend sets with their initial backends. Jun 24, 2026
@jlamillan
jlamillan force-pushed the jlamillan/backend_sets_initial_backends branch from a629da0 to 52101d3 Compare June 26, 2026 18:34
@jlamillan

Copy link
Copy Markdown
Member Author

Just this one comment needs to be addressed before we can merge. Have you run an E2E on your changes?

I'll let you know once I've re-run the E2E testing after the latest update (dedupe in getInitialNodeBackends).

@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 nodeIP:nodePort.

AkarshES
AkarshES previously approved these changes Jul 2, 2026
Signed-off-by: jesse.millan <jesse.millan@oracle.com>
@jlamillan
jlamillan force-pushed the jlamillan/backend_sets_initial_backends branch from 52101d3 to 4dbbc86 Compare July 29, 2026 18:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants