fix: stop HAProxy ingress controller reload loop from unstable log_target_list#52
Open
KlausNie wants to merge 1 commit into
Open
fix: stop HAProxy ingress controller reload loop from unstable log_target_list#52KlausNie wants to merge 1 commit into
KlausNie wants to merge 1 commit into
Conversation
…rget_list
Every provider's ingress-controller bootstrap set logging through two
conflicting paths: a global-config-snippet ("log stdout ...") and a
Global custom resource with no log_target_list declared. The
controller couldn't converge on a stable log-targets state and
reloaded HAProxy roughly every 30 seconds indefinitely, tearing down
and rebuilding every ingress's IP-allowlist ACL rule on each reload —
intermittently letting non-allowlisted IPs through during the gap.
Move the log target into the Global CR's log_target_list (the
supported mechanism) and drop the redundant snippet, so the
controller has one source of truth and stops reloading.
4592451 to
a99740a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Moves the HAProxy ingress controller's log configuration out of the Helm
global-config-snippetand into theGlobalcustom resource'slog_target_list, across all three provider setup workflows (Azure, Ionos, OTC). The CR becomes the single source of truth for logging, which is the intended mechanism whenevercr-globalis in use.Status: hygiene change, no longer an active bug fix
Original motivation (obsolete): on controller 3.2.9, the dual-path config (snippet + CR without
log_target_list) triggered a constant reload loop (Global config updated: LogTargetListevery ~30s), which also degraded ingress allow-list enforcement. That reload bug was properly fixed upstream in controller 3.2.11 (haproxytech/kubernetes-ingress commit4fdff2a, "prevent continuous reloads on default log config"). Since these workflows install the latest chart (no version pin), any new bootstrap gets a fixed controller regardless of this PR. The separate allow-list enforcement gap mentioned in the original description was root-caused independently and is tracked upstream in haproxytech/kubernetes-ingress#832.Remaining value of this PR:
apellis-analysis-pipelinecluster (2026-07-12). Without this PR, any re-run ofk8s-deploy-base.ymlsilently reverts that cluster's Helm values back to the dual-path config.GlobalCR whilecr-globalis set avoids the documented pitfall where the CR silently overrides snippet/ConfigMap log settings (Access logs settings get overridden if using a Global Custom Resource haproxytech/kubernetes-ingress#633).Reasonable to merge as tidy-up; equally reasonable to close if minimizing churn in this shared repo is preferred.
Test plan