Skip to content

Conversation

@scholzj
Copy link
Member

@scholzj scholzj commented Jan 24, 2026

This proposal suggests adding support for in-place Pod resizing to Strimzi.

If anyone is interested, I have a short demo of my prototype https://youtu.be/983tFK2327A and source code https://github.com/strimzi/strimzi-kafka-operator/compare/main...scholzj:strimzi-kafka-operator:in-place-pod-resizing?expand=1.

Signed-off-by: Jakub Scholz <[email protected]>
Copy link
Contributor

@PaulRMellor PaulRMellor left a comment

Choose a reason for hiding this comment

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

I found the accompanying video helpful, and the rationale and limitations are clearly explained. The proposal introduces an improved approach to resizing, and documenting it as experimental is appropriate given the current limitations.

Copy link
Member

@im-konge im-konge left a comment

Choose a reason for hiding this comment

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

LGTM, thanks for the proposal and the demo - it was really nice to see how it works :) I left just few small comments.

scholzj and others added 2 commits January 28, 2026 21:05
Co-authored-by: PaulRMellor <[email protected]>
Co-authored-by: Lukáš Král <[email protected]>
Signed-off-by: Jakub Scholz <[email protected]>
Signed-off-by: Jakub Scholz <[email protected]>
@scholzj
Copy link
Member Author

scholzj commented Feb 8, 2026

This proposal now has 3 binding +1 votes (plus mine implicit). If there are no new comments by the end of Tuesday, I will close it as approved.

Copy link
Member

@ppatierno ppatierno left a comment

Choose a reason for hiding this comment

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

Thanks for the proposal. I left some comments/questions for better understanding of how this feature works and has an impact on Strimzi.

In-place Pod resizing allows dynamically resizing Kafka broker Pods without necessarily restarting them.
However, Cruise Control maintains its own configuration that includes the CPU and memory capacity of Kafka brokers.
This configuration is not updated dynamically.
As a result, when broker resource requirements change, the Kafka broker Pods might not roll, but the Cruise Control Pod must be restarted to apply the updated capacity information.
Copy link
Member

Choose a reason for hiding this comment

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

"must be restarted" ... is the operator doing it automatically?

Copy link
Member Author

Choose a reason for hiding this comment

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

This is done by the same mechanism as today. Nothing changed here. I made it more clear in the proposal.

Signed-off-by: Jakub Scholz <[email protected]>
_Note: In-place resizing will not be supported for `KafkaBridge`, because it does not use the `StrimziPodSet` resources._
_`KafkaBridge` is using Kubernetes `Deployment` and Strimzi is managing only the `Deployment` resource it self._
_So when resource configuration is changed in `KafkaBridge`, the change is propagated by Strimzi Cluster Operator into the `Deployment` resource._
_And it is up to Kubernetes to decide how to handle it - and Kubernetes will currently roll the Pod in this case rather than use the in-place Pod resizing._
Copy link
Member

Choose a reason for hiding this comment

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

"and Kubernetes will currently roll the Pod in this case rather than use the in-place Pod resizing" ... is this always true? even if the Kubernetes version supports the in-place pod resizing? Where I can find more about it, I tried to look at doc but couldn't find any direct reference to how a Deployment resources change is handled.

Copy link
Member Author

Choose a reason for hiding this comment

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

I'm not aware of any documentation as there was no change and no assumption of change on how Kubernetes do this. But you should be able to try it on Kube 1.35 yourself.

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.

5 participants