Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setting advertised listeners is not propagated to broker #564

Open
berndfo opened this issue Mar 1, 2023 · 1 comment
Open

Setting advertised listeners is not propagated to broker #564

berndfo opened this issue Mar 1, 2023 · 1 comment
Labels

Comments

@berndfo
Copy link

berndfo commented Mar 1, 2023

Affected version

docker.stackable.tech/stackable/kafka-operator:23.1.0

Current and expected behavior

Requirement: Giving access to Kafka brokers from within a k8s cluster.

Currently, only the external cluster IP is per default advertised by brokers. For my particular setup, this IP:port address isn't and shouldn't be accessible, not from inside or outside of the cluster.

When trying to set the advertised.listeners property of Kafka through KafkaCluster, it is not picked up by the broker configuration, see configuration below. This results in Kafka being effectively not usable in this particular scenario.

  brokers:
    roleGroups:
      default1:
        replicas: 1    
      rg1:
        replicas: 1
        configOverrides:
          server.properties:
            advertised.listeners: CLIENT://stack-kafka-broker-rg1-0.mynamespace:9092

kcat shows that brokers still advertise the original external ip regardless of the override.

the brokers configmap contains the override:

5 apiVersion: v1
6 data:
7   log4j.properties: ""
8   server.properties: |
9     advertised.listeners=CLIENT\://stack-kafka-hbdedpmdsf-broker-rg1-0.mynamespace\:9092

yet, the broker itself still does it's own override using the node port (CLIENT://$NODE:$(cat /stackable/tmp/kafka_nodeport)), not preferring the intended override:

  bin/kafka-server-start.sh /stackable/config/server.properties --override "zookeeper.connect=$ZOOKEEPER" --override "listeners=CLIENT://0.0.0.0:9092,INTERNAL://0.0.0.0:19093" --override "advertised.listeners=CLIENT://$NODE:$(cat /stackable/tmp/kafka_nodeport),INTERNAL://$POD_NAME.stack-kafka-hbdedpmdsf-broker-rg1.mynamespace.svc.cluster.local:19093" --override "listener.security.protocol.map=CLIENT:PLAINTEXT,INTERNAL:SSL"

Possible solution

No response

Additional context

No response

Environment

No response

Would you like to work on fixing this bug?

None

@terrancesnyder
Copy link

Also have a similar issue, config options dont get set. They do find themselves below;

bin/kafka-server-start.sh /stackable/config/server.properties

But are overridden in

/// like --override \"advertised.listeners=xxx\".

Where its always using these settings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants