Skip to content

Bug-fix: Retry reconciliation on transient errors and stale LB state - #149

Open
jlamillan wants to merge 1 commit into
oracle:mainfrom
jlamillan:jlamillan/retry-transient-errors
Open

Bug-fix: Retry reconciliation on transient errors and stale LB state#149
jlamillan wants to merge 1 commit into
oracle:mainfrom
jlamillan:jlamillan/retry-transient-errors

Conversation

@jlamillan

@jlamillan jlamillan commented Jun 24, 2026

Copy link
Copy Markdown
Member

Summary

Harden OCI Native Ingress reconciliation against transient load balancer dependency errors, stale LB state, and IngressClass annotation writes.

Why

OCI load balancer updates do not become visible all at once. The controller can reconcile related resources before a newly created listener, backend set, updated ETag, or IngressClass annotation is visible. These are temporary convergence states, so the controller should keep retrying instead of treating them as final failures.

Manual verification

Verified with OCI Native Ingress CI failures where routing policy/backend reconciliation hit missing backend sets, missing route_443, stale ETags, and a missing LB ID annotation while the LB was still converging. Confirmed the controller now treats those dependency and stale-state paths as transient retries, refreshes LB state before subsequent backend update attempts, and verifies IngressClass annotation writes after patching.

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. All checks look good with this change.

@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Jun 24, 2026
@jlamillan
jlamillan force-pushed the jlamillan/retry-transient-errors branch from 5d11258 to d58fb67 Compare June 24, 2026 18:29
@jlamillan jlamillan changed the title Keep reconciliation retrying for transient errors. Keep reconciliation retrying transient errors. Jun 24, 2026
@jlamillan
jlamillan force-pushed the jlamillan/retry-transient-errors branch from d58fb67 to 81ee683 Compare June 24, 2026 23:25
@jlamillan jlamillan changed the title Keep reconciliation retrying transient errors. Bug-fix: Keep reconciliation retrying transient errors. Jun 24, 2026
@jlamillan jlamillan changed the title Bug-fix: Keep reconciliation retrying transient errors. Bug-fix: Retry reconciliation on transient errors and stale LB state Jun 25, 2026
@jlamillan
jlamillan force-pushed the jlamillan/retry-transient-errors branch 3 times, most recently from 25a6b51 to f9698f0 Compare July 2, 2026 18:56
Signed-off-by: jesse.millan <jesse.millan@oracle.com>
@jlamillan
jlamillan force-pushed the jlamillan/retry-transient-errors branch from f9698f0 to cfc166e Compare July 29, 2026 18:43
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.

1 participant