High level steps (summarized from docs in T416669: Upgrade Kafka to version 3.x)
Kafka logging has 2 clusters, one for each site of eqiad and codfw.
- Kafka-logging eqiad:
- Pin the inter broker protocol version on the brokers to hieradata/role/common/kafka/logging.yaml:profile::kafka::broker::inter_broker_protocol_version: 1.1.0
- Perform a rolling upgrade of the brokers, that will restart with the pinned version configurations and the new kafka version, using host-by-host patches and service restart of kafka broker, e.g. https://gerrit.wikimedia.org/r/c/operations/puppet/+/1273863
- kafka-logging1001
- kafka-logging1002
- kafka-logging1003
- kafka-logging1004
- kafka-logging1005
- Change the inter broker protocol version to match the new kafka version
- Set hieradata/role/common/kafka/logging.yaml:profile::kafka::broker::inter_broker_protocol_version: 3.7
- Perform a final rolling restart of the brokers
- Kafka-logging codfw:
- Pin the inter broker protocol version on the brokers to hieradata/role/common/kafka/logging.yaml:profile::kafka::broker::inter_broker_protocol_version: 1.1.0
- Perform a rolling upgrade of the brokers, that will restart with the pinned version configurations and the new kafka version, using host-by-host patches and service restart of kafka broker, e.g. https://gerrit.wikimedia.org/r/c/operations/puppet/+/1273863
- kafka-logging2001
- kafka-logging2002
- kafka-logging2003
- kafka-logging2004
- kafka-logging2005
- Change the inter broker protocol version to match the new kafka version
- Set hieradata/role/common/kafka/logging.yaml:profile::kafka::broker::inter_broker_protocol_version: 3.7
- Perform a final rolling restart of the brokers
Post-upgrade cleanup:
- Clean up per-host hiera configs, move to role level