feat: controller-runtime/operator migration and CI modernization - #681
feat: controller-runtime/operator migration and CI modernization#681MaxRink wants to merge 4 commits into
Conversation
|
Warning Gemini is experiencing higher than usual traffic and was unable to create the summary. Please try again in a few hours by commenting |
434113f to
d8707c2
Compare
|
Reviewer guide (high-signal file map)
|
d8707c2 to
2a765b9
Compare
|
Important Review skippedToo many files! This PR contains 194 files, which is 94 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (37)
📒 Files selected for processing (194)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The migration removes pkg/reconciler and the gocron dependency, and drops the bin/ip-reconciler build. cmd/reconciler/main.go still imports both, so go build ./... fails. Nothing references the binary any more. IPPoolReconciler now performs the orphan cleanup this command used to run on a cron schedule.
PatchHelper wrote spec changes with a plain merge patch and no resourceVersion precondition. The CNI plugin writes the same Allocations map and guards its own JSON patch with a test on /metadata/resourceVersion. A reconcile that read a stale pool could therefore delete an allocation key that the plugin had already reassigned to a new pod. That frees an in-use IP and allows a duplicate allocation. Send the spec patch with MergeFromWithOptimisticLock. On conflict the reconcile requeues and reruns against a fresh read. Add IsConflictError, because Patch returns errors through kerrors.NewAggregate and that aggregate has no Unwrap, so apierrors.IsConflict alone does not see the wrapped conflict.
a2a8997 to
b4e9822
Compare
b4e9822 to
3c72f5f
Compare
What Changed
cmd/*,Makefile, Dockerfile, codegen/update scripts).Why This Is Better
Bugs Fixed
Image push release).Limitations Removed
Internal (Non User-Facing) Logic Changes
Added / Expanded E2E Coverage
Notes
masterfor easier review/cherry-pick handling.