Skip to content

fix: resolve gateway annotation phantom-blocking and httpproxy reconciliation storm#120

Merged
zachsmith1 merged 1 commit intomainfrom
fix/shared-tls-annotation-cleanup
Feb 27, 2026
Merged

fix: resolve gateway annotation phantom-blocking and httpproxy reconciliation storm#120
zachsmith1 merged 1 commit intomainfrom
fix/shared-tls-annotation-cleanup

Conversation

@zachsmith1
Copy link
Contributor

@zachsmith1 zachsmith1 commented Feb 27, 2026

Three fixes for the gateway and httpproxy controllers:

  1. Only set cert-manager annotations for claimed listeners — unclaimed custom hostnames with TLS options were phantom-blocking shared TLS by adding cert-manager annotations to the downstream gateway even though the listener itself was skipped. Also adds syncCertManagerAnnotations to clean up stale annotations in the update path.

  2. Return early on downstream gateway Get errors — a non-NotFound error set result.Err but continued execution, falling into the create path and bypassing the update path where annotation cleanup occurs.

  3. Preserve hostname status lastTransitionTime across reconciles — the httpproxy controller rebuilt HostnameStatus conditions from scratch every reconcile, setting lastTransitionTime to time.Now(). This caused a spurious status diff on every loop, driving an infinite reconciliation storm (~1000 updates per 10 minutes per project).

Ref: datum-cloud/enhancements#622

@zachsmith1 zachsmith1 requested a review from scotwells February 27, 2026 19:14
@zachsmith1 zachsmith1 merged commit 5a64f09 into main Feb 27, 2026
9 of 10 checks passed
@zachsmith1 zachsmith1 deleted the fix/shared-tls-annotation-cleanup branch February 27, 2026 19:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants