Mikhail Fesenko created KAFKA-19595:
---------------------------------------

             Summary: Add configuration validation option to Kafka server 
startup
                 Key: KAFKA-19595
                 URL: https://issues.apache.org/jira/browse/KAFKA-19595
             Project: Kafka
          Issue Type: New Feature
          Components: core
            Reporter: Mikhail Fesenko


*Problem Statement:* Currently, Kafka administrators have no way to validate 
server configuration files without actually starting the Kafka broker. This 
leads to:
 * Wasted time during deployments when configuration errors are discovered only 
at startup
 * Potential service disruptions in production environments
 * Difficulty in CI/CD pipelines to validate Kafka configurations before 
deployment
 * No quick way to test configuration changes without full broker startup 
overhead
 * *Critical cluster stability issues during rolling restarts* - misconfigured 
brokers can cause:
 ** Partition leadership imbalances
 ** Replication factor violations
 ** Network connectivity issues between brokers
 ** Data consistency problems
 ** Cascading failures across the cluster when multiple brokers restart with 
incompatible configurations


*Proposed Solution:* Add a {*}--check-config{*}{{{}{}}} command-line option to 
the Kafka server startup script that would:

 
 * Parse and validate the server configuration file
 * Check for common configuration errors and inconsistencies
 * Validate property values and ranges
 * *Detect configuration incompatibilities that could affect cluster operations*
 * Support property overrides for testing different configurations
 * Exit with appropriate status codes (0 for valid config, non-zero for errors)
 * Provide clear error messages for invalid configurations

*Usage Example:*
{code:java}
# Validate default server.properties
kafka-server-start.sh --check-config config/server.properties

# Validate with property overrides
kafka-server-start.sh --check-config config/server.properties --override 
broker.id=1,log.dirs=/tmp/kafka-logs {code}
 
*Expected Benefits:*
 * Faster feedback loop for configuration changes
 * Reduced deployment failures due to configuration issues
 * Better integration with automated deployment pipelines
 * Improved operational efficiency for Kafka administrators
 * *Prevention of cluster-wide issues during rolling restarts and maintenance*
 * *Early detection of configuration drift across cluster nodes*
 * *Reduced risk of data loss or corruption from misconfigured brokers*
 * Consistent validation logic with the actual server startup process


*Acceptance Criteria:*
 * 
--check-config{{}} command-line option to trigger config validation mode
 * Comprehensive validation of server properties
 * Clear error reporting with specific issues identified
 * Support for property overrides during validation
 * Exit codes that can be used in scripts and automation
 * Documentation and usage examples


This feature would significantly improve the operational experience for Kafka 
deployments and reduce configuration-related issues in production environments, 
especially in multi-broker cluster scenarios where configuration consistency is 
critical.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to