Setting advertised listeners is not propagated to broker

Aperta
#564 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
kafka, kubernetes, rust

Direzione di ricerca

Traccia come i configOverrides del broker KafkaCluster vengono renderizzati in server.properties e come il comando bin/kafka-server-start.sh applica gli override di advertised.listeners. Riproduci il problema con la configurazione mostrata e verifica che il valore configurato di advertised.listeners venga rispettato nei metadati del broker invece di essere sostituito dal valore di node-port.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

type/bug
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

Lingua principale
Rust
Stelle
28
Fork
8
Merge medio
2g 12h
PR unite (30g)
9

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di stackabletech/kafka-operator

Tutte le issue di stackabletech/kafka-operator

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.