Test external Kafka access in London

Prerequisites:

  • In London release the Kafka ports are exposed through ingress.

  • Istio and Istio-Ingress is used

  • In the istio-ingress configuration the required ports (9010, 9000,9001, 9002) need to be exposed → see ONAP on ServiceMesh setup guide

  • Helm settings are configured to enable the Ingress exposure of Kafka Interfaces by:

    • global values (global.ingress.enable_all)

      global: ingress: enabled: true # enable all component's Ingress interfaces enable_all: true



    • or local setting in onap-strimzi (ingress.enabled)

      ingress: enabled: true service: - baseaddr: "kafka-bootstrap-api" name: "onap-strimzi-kafka-external-bootstrap" port: 9094 exposedPort: 9010 exposedProtocol: TLS



After the deployment the TCP interfaces are exposed through ingress and can be accessed via the following URLs and ports:

kafka-bootstrap-api.simpledemo.onap.org:9010 kafka-api.simpledemo.onap.org:9000 kafka-api.simpledemo.onap.org:9001 kafka-api.simpledemo.onap.org:9002



Test preparation

Add Kafka User for external Access

  • Login to the cluster control node

  • Create kafka-user.yaml file

tls-user.yaml
  • Apply kafka-user.yaml

Create user
  • List kafka users

Check/List new user
  • List strimzi secrets

List user secrets
  • Get the user password

For each KafkaUser resource with scram-sha-512 auth, there will be a corresponding secret:

Get the user secret

Test the external client access to Kafka



  • Add hostnames to DNS (or /etc/hosts) by using the IP Address of the istio-ingressgateway LB 



  • Install KafkaCat

  • Get the Metadata (use an existing Kafka User, here "external-strimzi-kafka-user") using the sasl.password exported above:

  • Get Metadata (use an existing Kafka User, here "external-strimzi-kafka-user"):

  • Get Topic Data (use an existing Kafka User, here "external-strimzi-kafka-user"):