Skip to content

Conversation

rahulbabu95
Copy link

Description

The controller-runtime defaults MaxConcurrentReconciles to 1, which creates a bottleneck when multiple BMC operations need to be processed simultaneously. This is particularly noticeable during cluster provisioning when many nodes are being set up in parallel.

This change adds a CLI flag (--max-concurrent-reconciles) and corresponding environment variable (RUFIO_MAX_CONCURRENT_RECONCILES) to configure the number of concurrent reconciliations across all controllers.

Why is this needed

Performance testing with 30 nodes showed:

  • Default (1): 647 seconds total execution time
  • Setting to 5: 181 seconds (72% faster)
  • Setting to 10: 124 seconds (80% faster)

Fixes: #
#311

How Has This Been Tested?

How are existing users impacted? What migration steps/scripts do we need?

Checklist:

I have:

  • updated the documentation and/or roadmap (if required)
  • added unit or e2e tests
  • provided instructions on how to upgrade

The controller-runtime defaults MaxConcurrentReconciles to 1, which creates
a bottleneck when multiple BMC operations need to be processed simultaneously.
This is particularly noticeable during cluster provisioning when many nodes
are being set up in parallel.

This change adds a CLI flag (--max-concurrent-reconciles) and corresponding
environment variable (RUFIO_MAX_CONCURRENT_RECONCILES) to configure the
number of concurrent reconciliations across all controllers.

Signed-off-by: Rahul Ganesh <[email protected]>
Copy link

codecov bot commented Jun 4, 2025

Codecov Report

Attention: Patch coverage is 0% with 13 lines in your changes missing coverage. Please review.

Project coverage is 46.85%. Comparing base (61d8853) to head (429bbe8).
Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
main.go 0.00% 7 Missing ⚠️
controller/job.go 0.00% 2 Missing ⚠️
controller/machine.go 0.00% 2 Missing ⚠️
controller/task.go 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #312      +/-   ##
==========================================
- Coverage   47.02%   46.85%   -0.18%     
==========================================
  Files          11       11              
  Lines        1361     1366       +5     
==========================================
  Hits          640      640              
- Misses        664      669       +5     
  Partials       57       57              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jacobweinstock jacobweinstock added the ready-to-merge Mergify: Ready for Merging label Jun 7, 2025
@mergify mergify bot merged commit 55a6a8c into tinkerbell:main Jun 7, 2025
10 of 12 checks passed
@rahulbabu95 rahulbabu95 deleted the add-concurrency-config branch June 10, 2025 00:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge Mergify: Ready for Merging
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants