[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.

1 Like

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!

1 Like

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.

2 Likes