[IGN--13965] Kafka connection | Custom kafka props unable to add newline

Problem

I am unable to add line breaks to the Custom Properties fields in the Kafka Connection configuration popup on the gateway web page. Line breaks are suggested in the docs:

Any properties you want applied to producer and consumer clients, line separated by key value pairs.

As a result, I am only able to pass in a single custom property in each Kafka connection.

Environment

  • Docker image 8.3.0 (also tested on 8.3.1-rc1)
  • Chrome web browser (also tested on Safari)
  • MacOS host machine accessing gateway web page

Steps to reproduce

  1. Create a new Kafka connection using placeholder bootstrap list EG localhost:9091
  2. Attempt to set two k:v pairs - editor won't allow the newline character to be added when pressing enter
  3. Add a space-separated set of k:v pairs
    • EG key1=value1 key2=value2
    • Logs should show key1 is being set to value1 key2=value2

For example, when I use:

ssl.keystore.location=/usr/local/bin/ignition/data/secrets/keystore.jks

I can see that value properly set in the logs (set log level to INFO on org.apache.kafka.clients.admin.AdminClientConfig):

AdminClientConfig values: 
	auto.include.jmx.reporter = true
...
	ssl.keystore.key = null
	ssl.keystore.location = /usr/local/bin/ignition/data/secrets/keystore.jks
	ssl.keystore.password = [hidden]

However, when I attempt to add a second value, I'm unable to add a new line. Using a space results in these logs, showing the second value isn't being parsed since it isn't on a new line:

AdminClientConfig values: 
	auto.include.jmx.reporter = true
...
	ssl.keystore.key = null
	ssl.keystore.location = /usr/local/bin/ignition/data/secrets/keystore.jks ssl.truststore.location=/usr/local/bin/ignition/data/secrets/truststore.jks
	ssl.keystore.password = [hidden]

This also throws an error because of the invalid keystore path:

Modification time of key store could not be obtained: /usr/local/bin/ignition/data/secrets/keystore.jks ssl.truststore.location=/usr/local/bin/ignition/data/secrets/truststore.jks
java.nio.file.NoSuchFileException: /usr/local/bin/ignition/data/secrets/keystore.jks ssl.truststore.location=/usr/local/bin/ignition/data/secrets/truststore.jks
at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
...

Resolution Attempted

  • Attempted several delimiters - space, comma, and \n - without luck.
  • Attempted editing the Kafka connection config JSON directly in the GWBK at config/resources/core/ignition/service-connector/<connectionName>/config.json to add the unicode character, but updated GWBK failed to restore
  • Attempted accessing on other browsers
  • Attempted using 8.3.1-rc1 image

Thanks for taking a look!

Thanks, we're already tracking this issue (as IGN-13965 if you need to reference it with support).

It's not Kafka-specific, but rather a problem with the text area component on the config pages in general.

It may be possible to write the multi-line value you want in another editor and copy/paste it in. I don't see a workaround on the ticket; not sure why this got targeted for 8.3.2 instead of 8.3.1 if that doesn't work.

I figured this was already on your radar, thanks for confirming!

The copy-paste workaround works great, I appreciate the suggestion. I'm marking this solved for the time being and I'll stay tuned for an update to that text area when 8.3.2 rolls out.

Thank you Kevin!

The ticket mentioned here (IGN-13965) was actually merged into the 8.3 code line yesterday afternoon, and will be part of 8.3.2.