@@ -36,12 +36,38 @@ pub enum KafkaListenerProtocol {
3636
3737#[ derive( strum:: Display , Debug , EnumString , Ord , Eq , PartialEq , PartialOrd ) ]
3838pub enum KafkaListenerName {
39+ /// The purpose of this listener is to handle client/broker communications.
40+ /// It can be configured to use the SSL or SASL_SSL (Kerberos) protocols
41+ /// if the brokers use TLS for communication (and possible authentication).
42+ /// The PLAINTEXT protocol is never really used since `spec.clusterConfig.tls`
43+ /// uses `tls` as default value.
44+ /// The advertised listener hosts are derived from the pod (broker) listener volume.
3945 #[ strum( serialize = "CLIENT" ) ]
4046 Client ,
47+ /// The purpose if this listener is to handle broker internal communications.
48+ /// The only protocol used here is SSL.
4149 #[ strum( serialize = "INTERNAL" ) ]
4250 Internal ,
51+ /// This is almost identical with the `Client` listener with the following exceptions:
52+ ///
53+ /// - it is only defined if Kerberos is enabled
54+ /// - it uses a different port
55+ /// - the keystore associated with the listener volume uses a different CA
56+ ///
57+ /// Note: the corresponding K8S service is *always* defined, not just if Kerberos is enabled
58+ /// and it is published in the discovery ConfigMap for clients to consume.
4359 #[ strum( serialize = "BOOTSTRAP" ) ]
4460 Bootstrap ,
61+ /// This listener is defined when Kraft mode is enabled.
62+ /// It is responsible for broker/controller as well as controller/controller communications
63+ /// and therefore it is present on *both* brokers and controller properties files.
64+ /// The only protocol used is SSL.
65+ /// The advertised host names are FQDN pod names of the controllers.
66+ ///
67+ /// Notes:
68+ ///
69+ /// - there is no listener for client/controller communication
70+ /// - this listener does not support SSL_SASL.
4571 #[ strum( serialize = "CONTROLLER" ) ]
4672 Controller ,
4773}
0 commit comments