From a9c47ecc0417bbea364587432f11871cec21c257 Mon Sep 17 00:00:00 2001 From: Scot Wells Date: Sat, 23 May 2026 10:47:27 -0500 Subject: [PATCH] fix: nil FlowControl after ApplyTo to unblock readyz in staging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RecommendedOptions.ApplyTo re-initializes genericConfig.FlowControl, so setting it to nil before the call had no effect. The APF controller started anyway, and its FlowSchema/PriorityLevelConfiguration informers never synced — blocking readyz indefinitely. Move the nil assignment to after ApplyTo so it takes effect. Co-Authored-By: Claude Sonnet 4.6 --- cmd/ipam/serve.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cmd/ipam/serve.go b/cmd/ipam/serve.go index 9ff7be1..802f7be 100644 --- a/cmd/ipam/serve.go +++ b/cmd/ipam/serve.go @@ -227,15 +227,16 @@ func (o *IPAMServerOptions) Config() (*ipamapiserver.Config, error) { // healthchecks. o.RecommendedOptions.Etcd = nil - // Delegating aggregated apiservers defer API Priority and Fairness to the - // main kube-apiserver. Disabling APF here avoids the FlowSchema and - // PriorityLevelConfiguration informers that would otherwise block readyz. - genericConfig.FlowControl = nil - if err := o.RecommendedOptions.ApplyTo(genericConfig); err != nil { return nil, fmt.Errorf("apply recommended options: %w", err) } + // Delegating aggregated apiservers defer API Priority and Fairness to the + // main kube-apiserver. ApplyTo may re-initialize FlowControl, so nil it + // out here (after ApplyTo) to prevent the FlowSchema and + // PriorityLevelConfiguration informers from blocking readyz. + genericConfig.FlowControl = nil + codec := ipamapiserver.Codecs.LegacyCodec(ipamapiserver.Scheme.PrioritizedVersionsAllGroups()...) pgGetter, err := pgstore.NewRESTOptionsGetter(o.PostgresDSN)