linkedin / cruise-control

Cruise-control is the first of its kind to fully automate the dynamic workload rebalance and self-healing of a Kafka cluster. It provides great value to Kafka users by simplifying the operation of Kafka clusters.
https://github.com/linkedin/cruise-control/tags
BSD 2-Clause "Simplified" License
2.77k stars 595 forks source link

Fix: intra.broker.goals cannot be configured as default.goals #2221

Open k0b3rIT opened 2 weeks ago

k0b3rIT commented 2 weeks ago

Summary

  1. Why: KafkaCruiseControlConfig sanity checks prevent to configure inter broker goals as default goals.
  2. What: Modify the sanity check to allow adding intra broker goals to the default.goals

Expected Behavior

I can add (enable) goals to the default.goals list from both the intra and inter broker goals image

Actual Behavior

Sanity checks ensure the following rules:

We could not add intra goal to the default.goals without a trick (see in the workaround section)

Steps to Reproduce

Try to enable an intra broker goal by adding it to the default. goals

Known Workarounds

You can remove 1 intra broker goal from the intra.broker.goals config and add that to the goals (keep in mind that the other one should be in the intra.broker.goals as the list cant be empty) this way you can add that 1 goal to the default.goals and enable it

Note that this way we still cant enable both of the currently available intra broker goals as 1 have to be in the intra.broker.goals list to avoid hitting the mentioned sanity check. So only 1 intra goal at a time.

Categorization

viktorsomogyi commented 5 days ago

@CCisGG would you review this please if you have some time?