Skip to content

Conversation

@tinaselenge
Copy link
Contributor

@tinaselenge tinaselenge commented Oct 9, 2025

Type of change

Select the type of your PR

  • Enhancement

Description

Currently, we restart controller-only nodes if there is any controller relevant configuration changes detected via Pod annotation. The operator can now talk to controller-only nodes directly via Admin API (#11838).

This PR checks configurations of controllers and apply dynamic configurations via Admin API (same as how it's done for broker and mixed nodes) instead of restarting them based on annotation.

closes #10900

Checklist

Please go through this checklist and make sure all applicable tasks have been done

  • Write tests
  • Make sure all tests pass
  • Update documentation
  • Check RBAC rights for Kubernetes / OpenShift roles
  • Try your changes from Pod inside your Kubernetes and OpenShift cluster, not just locally
  • Reference relevant issue(s) and close them after merging
  • Update CHANGELOG.md
  • Supply screenshots for visual changes, such as Grafana dashboards

@codecov
Copy link

codecov bot commented Oct 9, 2025

Codecov Report

❌ Patch coverage is 83.33333% with 10 lines in your changes missing coverage. Please review.
✅ Project coverage is 74.90%. Comparing base (089ecbb) to head (a14d9da).
⚠️ Report is 32 commits behind head on main.

Files with missing lines Patch % Lines
...perator/cluster/operator/resource/KafkaRoller.java 78.12% 5 Missing and 2 partials ⚠️
...ster/operator/resource/KafkaConfigurationDiff.java 89.28% 1 Missing and 2 partials ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main   #11999      +/-   ##
============================================
- Coverage     74.90%   74.90%   -0.01%     
- Complexity     6441     6457      +16     
============================================
  Files           343      343              
  Lines         24324    24339      +15     
  Branches       3196     3209      +13     
============================================
+ Hits          18221    18232      +11     
- Misses         4829     4832       +3     
- Partials       1274     1275       +1     
Files with missing lines Coverage Δ
...mzi/operator/cluster/model/KafkaConfiguration.java 87.80% <ø> (-1.56%) ⬇️
...tor/cluster/operator/assembly/KafkaReconciler.java 94.60% <ø> (-0.03%) ⬇️
...ster/operator/resource/KafkaConfigurationDiff.java 91.95% <89.28%> (ø)
...perator/cluster/operator/resource/KafkaRoller.java 78.34% <78.12%> (-0.47%) ⬇️

... and 5 files with indirect coverage changes

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

@see-quick
Copy link
Member

/gha run pipeline=regression

@github-actions
Copy link

⏳ System test verification started: link

The following 6 job(s) will be executed:

  • regression-brokers-and-security-amd64 (oracle-vm-8cpu-32gb-x86-64)
  • regression-operators-amd64 (oracle-vm-8cpu-32gb-x86-64)
  • regression-operands-amd64 (oracle-vm-8cpu-32gb-x86-64)
  • regression-brokers-and-security-arm64 (oracle-vm-8cpu-32gb-arm64)
  • regression-operators-arm64 (oracle-vm-8cpu-32gb-arm64)
  • regression-operands-arm64 (oracle-vm-8cpu-32gb-arm64)

Tests will start after successful build completion.

@github-actions
Copy link

❌ System test verification failed: link

@scholzj
Copy link
Member

scholzj commented Oct 13, 2025

@tinaselenge One more question ... what are the version limitations for this? Is it 4.0+? Also, what happens during upgrade from for example Kafka 3.8? Is this part skipped because for example container image changed and the pod is rolled anyway?

@tinaselenge
Copy link
Contributor Author

@tinaselenge One more question ... what are the version limitations for this? Is it 4.0+? Also, what happens during upgrade from for example Kafka 3.8? Is this part skipped because for example container image changed and the pod is rolled anyway?

Yes, it is limited to 4.0+ as it builds on #11838. And yes I think so... because we apply dynamic updates only if we don't need to restart the node. If the container image has changed, it will be restarted before getting to this config part.

@scholzj scholzj added this to the 0.49.0 milestone Oct 19, 2025
Copy link
Member

@scholzj scholzj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few more nits. LGTM overall.

Copy link
Member

@scholzj scholzj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM assuming the tests pass. Thanks.

@scholzj
Copy link
Member

scholzj commented Oct 21, 2025

/gha run pipeline=regression,upgrade

@github-actions
Copy link

⏳ System test verification started: link

The following 10 job(s) will be executed:

  • regression-brokers-and-security-amd64 (oracle-vm-8cpu-32gb-x86-64)
  • regression-operators-amd64 (oracle-vm-8cpu-32gb-x86-64)
  • regression-operands-amd64 (oracle-vm-8cpu-32gb-x86-64)
  • regression-brokers-and-security-arm64 (oracle-vm-8cpu-32gb-arm64)
  • regression-operators-arm64 (oracle-vm-8cpu-32gb-arm64)
  • regression-operands-arm64 (oracle-vm-8cpu-32gb-arm64)
  • upgrade-azp_kraft_upgrade-amd64 (oracle-vm-4cpu-16gb-x86-64)
  • upgrade-azp_kafka_upgrade-amd64 (oracle-vm-4cpu-16gb-x86-64)
  • upgrade-azp_kraft_upgrade-arm64 (oracle-vm-4cpu-16gb-arm64)
  • upgrade-azp_kafka_upgrade-arm64 (oracle-vm-4cpu-16gb-arm64)

Tests will start after successful build completion.

@scholzj
Copy link
Member

scholzj commented Oct 21, 2025

/azp run regression

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@scholzj
Copy link
Member

scholzj commented Oct 21, 2025

/azp run upgrade

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@github-actions
Copy link

🎉 System test verification passed: link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Enhancement]: Dynamically configure controller-only nodes

4 participants