Skip to content

Wizard: KSQL config isn't saved #955

Open
@mabouchard-estruxture

Description

@mabouchard-estruxture

Issue submitter TODO list

  • I've looked up my issue in FAQ
  • I've searched for an already existing issues here
  • I've tried running main-labeled docker image and the issue still persists there
  • I'm running a supported version of the application which is listed here

Describe the bug (actual behavior)

Given a config.yml written like so (information anonymized):

auth:
  type: DISABLED
kafka:
  clusters:
  - bootstrapServers: 1.2.3.221:9092,1.2.3.222:9093,1.2.3.223:9094
    kafkaConnect: []
    ksqldbServer: http://1.2.3.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: MyCluster
    properties: {}
    readOnly: false
rbac:
  roles: []
webclient: {}

When editing this cluster's configuration within Kafbat-UI, we open up the ksqlDB and metrics sections, and confirm that these are populated:

Image

We hit Submit. We come back to the configuration, and now the ksqlDB and metrics configurations are blank:

Image

If we open config.yml at this point, we find that it has changed as follows:

auth:
  type: DISABLED
kafka:
  clusters:
  - bootstrapServers: 1.2.3.221:9092,1.2.3.222:9093,1.2.3.223:9094
    consumerProperties: {}
    kafkaConnect: []
    masking: []
    name: MyCluster
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
rbac:
  roles: []
webclient: {}

Subsequent attempts at using the Config interface persists and then removes the metrics settings in alternance. The ksqlDB settings are never persisted at all.

The only way to keep our configs intact right now is to directly edit the config.yml file and then restart the docker container.

Expected behavior

The ksqlDB and Metrics settings should reliably persist when editing a cluster's configuration within KafbatUI.

Your installation details

  1. App Version: 1.2.0
  2. Helm chart version: Not Applicable
  3. Full Config Below. There's a lot of repetition but the key takeaway is that our clusters are all identical: 3 Kafkas, 1 ksqlDB. Names and IP addresses have been anonymized.
auth:
  type: DISABLED
kafka:
  clusters:
  - bootstrapServers: 1.1.1.221:9092,1.1.1.222:9093,1.1.1.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.1.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster1
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
  - bootstrapServers: 1.1.2.221:9092,1.1.2.222:9093,1.1.2.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.2.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster2
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
  - bootstrapServers: 1.1.3.221:9092,1.1.3.222:9093,1.1.3.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.3.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster3
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
  - bootstrapServers: 1.1.4.221:9092,1.1.4.222:9093,1.1.4.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.4.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster4
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
  - bootstrapServers: 1.1.5.221:9092,1.1.5.222:9093,1.1.5.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.5.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster5
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
  - bootstrapServers: 1.1.6.221:9092,1.1.6.222:9093,1.1.6.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.6.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster6
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
  - bootstrapServers: 1.1.7.221:9092,1.1.7.222:9093,1.1.7.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.7.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster7
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
  - bootstrapServers: 1.1.8.221:9092,1.1.8.222:9093,1.1.8.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.8.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster8
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
  - bootstrapServers: 1.1.9.221:9092,1.1.9.222:9093,1.1.9.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.9.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster9
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
  - bootstrapServers: 1.1.10.221:9092,1.1.10.222:9093,1.1.10.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.10.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster10
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
  - bootstrapServers: 1.1.11.221:9092,1.1.11.222:9093,1.1.11.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.11.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster11
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
  - bootstrapServers: 1.1.12.221:9092,1.1.12.222:9093,1.1.12.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.12.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster12
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
  - bootstrapServers: 1.1.13.221:9092,1.1.13.222:9093,1.1.13.223:9094
    consumerProperties: {}
    kafkaConnect: []
    ksqldbServer: http://1.1.13.235:8088
    masking: []
    metrics:
      port: 9999
      type: JMX
    name: Cluster13
    producerProperties: {}
    properties: {}
    readOnly: false
    serde: []
rbac:
  roles: []
webclient: {}

Steps to reproduce

  1. Choose a cluster with a ksqlDB and Metrics configuration. Click Configure.
  2. Open the ksqlDB and Metrics configuration sections, and confirm that values are specified.
  3. Click Submit.
  4. Click Configure once again.
  5. Open the ksqlDB and Metrics configuration sections, and confirm that the values are gone.

Screenshots

No response

Logs

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions