Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(refactor): updates the cruise control rebalance concepts #10810

Merged
merged 11 commits into from
Nov 15, 2024

Conversation

PaulRMellor
Copy link
Contributor

@PaulRMellor PaulRMellor commented Nov 6, 2024

Documentation

Refactor and refresh of Cruise Control concepts

  • Adds new optimization proposal process flow description and diagram, including description of partition reassignment commands
  • Less verbose and more direct intro and concepts
  • Removes three overview files to create a single "components and features" file for goals and proposals concepts
  • Consolidates related conceptual information (goals, proposals) into single sections
  • Retitled sections to provide more direction to readers from ToC

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

Signed-off-by: prmellor <pmellor@redhat.com>
@PaulRMellor PaulRMellor added this to the 0.45.0 milestone Nov 6, 2024
@PaulRMellor PaulRMellor requested review from kyguy, fvaleri and a team November 6, 2024 16:32
@PaulRMellor PaulRMellor self-assigned this Nov 6, 2024
@scholzj scholzj requested a review from ppatierno November 7, 2024 03:13
Copy link
Contributor

@fvaleri fvaleri left a comment

Choose a reason for hiding this comment

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

Hi @PaulRMellor, thanks. I must say that our CC doc is quite good :)

I left some comments for your consideration.

Signed-off-by: prmellor <pmellor@redhat.com>
Signed-off-by: prmellor <pmellor@redhat.com>
@PaulRMellor
Copy link
Contributor Author

Thanks for the reviews @fvaleri and @kyguy
I've addressed all the comments except the suggestion to change "user-defined goals" to something else.
I agree it's not clear, but I'm not sure changing to "KafkaRebalance goals" is the way:
#10810 (comment)

Signed-off-by: prmellor <pmellor@redhat.com>
Copy link
Contributor

@fvaleri fvaleri 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.

Some main goals are preset as hard goals.

To simplify configuration, use the inherited main goals unless you need to exclude specific goals from `KafkaRebalance` resources.
You can adjust the priority order in the default optimization goals configuration.
Copy link
Member

Choose a reason for hiding this comment

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

maybe it's just my luck of knowledge here, can we really change the priority order? @kyguy ?

Copy link
Member

@kyguy kyguy Nov 11, 2024

Choose a reason for hiding this comment

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

To my understanding, this is true for the Kafka resource default.goal and KafkaRebalance goals lists but not for Kafka goals list

Copy link
Member

Choose a reason for hiding this comment

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

Ok. So I think we should clarify here (and everywhere goals priority is mentioned) that the priority is based on the order. Not sure if "priority order" is used for this purpose but it's not clear to me.

Copy link
Contributor

@fvaleri fvaleri Nov 12, 2024

Choose a reason for hiding this comment

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

We have to admit that CC naming doesn't help much here.

IMO, this is the default inter-broker goals priority list:

https://github.com/linkedin/cruise-control/blob/main/cruise-control/src/main/java/com/linkedin/kafka/cruisecontrol/config/constants/AnalyzerConfig.java#L312-L327

To change it, the user can configure Kafka default.goals or KafkaRebalance goals with a different order. Kafka goals priority is irrelevant, but only goals listed there can be used in the previous configurations (DEFAULT_DEFAULT_GOALS is a subset of DEFAULT_GOALS).

  • Do you agree?
  • Are we exposing Kafka goals because we intend to eventually support custom goals?

Signed-off-by: prmellor <pmellor@redhat.com>
Signed-off-by: prmellor <pmellor@redhat.com>
Signed-off-by: prmellor <pmellor@redhat.com>
@PaulRMellor
Copy link
Contributor Author

Thanks for the latest comments @kyguy and @ppatierno
I've updated the diagram and addressed all comments apart from this #10810 (comment)
Looking for guidance

Signed-off-by: prmellor <pmellor@redhat.com>
Signed-off-by: prmellor <pmellor@redhat.com>
@PaulRMellor
Copy link
Contributor Author

Thanks for the latest @kyguy and @ppatierno
I've changed "main" to "supported" goals. (Much better)
Diagram now shows "Rebalance" as flow towards CC

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.

LGTM.

@PaulRMellor
Copy link
Contributor Author

Thanks for latest comments @kyguy
I've addressed them all as suggested.

Regarding the summary of Cruise Control components. Previously, we mentioned some but not all them without any context. I thought it would be useful at least to mention them all in summary and show how they operate within a Strimzi context, how requests are made and proposals generated etc. I think the diagram is useful (and good for SEO and user experience).

Signed-off-by: prmellor <pmellor@redhat.com>
@PaulRMellor
Copy link
Contributor Author

Thanks for the comments @kyguy
All pretty straightforward and addressed.
Doc is shaping up nicely

Signed-off-by: prmellor <pmellor@redhat.com>
@kyguy
Copy link
Member

kyguy commented Nov 14, 2024

Hi @PaulRMellor, was the commit with the changes pushed here?

@PaulRMellor
Copy link
Contributor Author

Hi @PaulRMellor, was the commit with the changes pushed here?

There now: d47f53a

Copy link
Member

@kyguy kyguy left a comment

Choose a reason for hiding this comment

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

Looks great @PaulRMellor, well done

@PaulRMellor
Copy link
Contributor Author

Looks great @PaulRMellor, well done

Thanks for your help and applying your knowledge, @kyguy

@PaulRMellor PaulRMellor merged commit 849ffe0 into strimzi:main Nov 15, 2024
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants