divijvaidya commented on code in PR #14176:
URL: https://github.com/apache/kafka/pull/14176#discussion_r1291232121


##########
core/src/main/scala/kafka/server/ControllerServer.scala:
##########
@@ -231,7 +231,7 @@ class ControllerServer(
           setMetrics(quorumControllerMetrics).
           setCreateTopicPolicy(createTopicPolicy.asJava).
           setAlterConfigPolicy(alterConfigPolicy.asJava).
-          setConfigurationValidator(new ControllerConfigurationValidator()).
+          setConfigurationValidator(new 
ControllerConfigurationValidator(sharedServer.brokerConfig)).

Review Comment:
   `sharedServer` represents the case when kraft controller is run on a broker 
and not as an independent node. In such case a broker has two responsibility, 
one to act as a controller and another to act as a broker. These two configs 
represent the configurations associated with node's role as a broker and as a 
controller. 
   
   In our case here, when createTopic or alterConfig is called to enable TS for 
a topic, it will be forwarded to the controller. Controller will validate the 
config using `ControllerConfigurationValidator` before applying it. The 
assumption here is that the broker level configuration has already been 
validated before forwarding. Now, this is the first case where we want to make 
an assertion consisting of both broker level configuration and topic level 
configuration. I would ideally have wanted to fail fast with this at broker 
itself before it is sent to controller by adding the validation at 
https://github.com/apache/kafka/blob/f137da04fa71734d176e19f5800622f4b4dfdb66/core/src/main/scala/kafka/server/ConfigAdminManager.scala#L155
 Perhaps, you can make a change there?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to