fix: disable APF feature flag to prevent readyz-blocking informers#30
fix: disable APF feature flag to prevent readyz-blocking informers#30scotwells wants to merge 1 commit into
Conversation
The previous fix (nil FlowControl after ApplyTo) was incomplete. FeatureOptions.ApplyTo calls utilflowcontrol.New(), which registers FlowSchema and PriorityLevelConfiguration event handlers on the shared informer factory before FlowControl is ever set. Those informers then appear in the informer-sync readyz check and block readyz indefinitely because the IPAM apiserver has no access to flowcontrol.apiserver.k8s.io. Setting EnablePriorityAndFairness=false before ApplyTo prevents utilflowcontrol.New() from being called at all, so the informers are never registered. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Closing — this fix is not needed. The APF informers only failed because |
|
Re-opening. Neither the quota nor the activity service has a NetworkPolicy, so they can't confirm the |
Problem
The IPAM apiserver pods are stuck
0/1 Readyin staging. The readiness probe returns HTTP 500 indefinitely:Why the previous fix (#29) didn't work
PR #29 moved
genericConfig.FlowControl = nilto afterApplyTo, reasoning thatApplyTore-initializes the field. That was correct but incomplete.The real problem:
FeatureOptions.ApplyTocallsutilflowcontrol.New(informers, ...), which registersFlowSchemaandPriorityLevelConfigurationevent handlers directly on theSharedInformerFactory. SettingFlowControl = nilafterward removes the controller reference but does nothing to the factory — those informers remain registered and appear in theinformer-syncreadyz check, where they block readyz because the IPAM apiserver has noflowcontrol.apiserver.k8s.ioaccess.Fix
Set
EnablePriorityAndFairness = falseonRecommendedOptions.FeaturesinNewIPAMServerOptions(), beforeApplyTois ever called. This causesFeatureOptions.ApplyToto skip theutilflowcontrol.New()call entirely — the informers are never registered, and readyz is unblocked.The now-redundant
genericConfig.FlowControl = nilis removed.🤖 Generated with Claude Code