-
Notifications
You must be signed in to change notification settings - Fork 43
Description
Feature and motivation
Currently if using existing Kafka instance the installer is expecting the file to be with the following name format:
kafka-<MAS_INSTANCE_ID>-system.yaml
If the name of the existing file does not exist, the installer gets terminated and whole process needs to be rerun:
21) Configure Kafka
Maximo IoT requires a shared system-scope Kafka instance
Supported Kafka providers: Strimzi, Red Hat AMQ Streams, IBM Cloud Event Streams and AWS MSK
You may also choose to configure MAS to use an existing Kafka instance by providing a pre-existing configuration file
Create system Kafka instance using one of the supported providers? [y/n] n
Select Local configuration directory /mascli
Searching for system kafka configuration file in /mascli/kafka-cpstmas-system.yaml ...
Fatal Error: Kafka configuration file does not exist: '/mascli/kafka-cpstmas-system.yaml'. In order to continue, provide an existing Kafka configuration file or choose one of the supported Kafka providers to be installed
Possible enhancement is to allow user to specify the name of the kafka configuration file, similar as when the user provide the license file.
Instead of asking for the local configuration directory e.g. /mascli, installer can ask for the file name e.g /mascli/kafka-maskafka-amq-streams.yml
Usage example
This can be used in case user created Kafka instance manually or even with Kafka ansible role.
In this case, in my cluster I created the Kafka cluster with Kafka role provided by Maximo, since I specified MAS_CONFIG_DIR, the role created a file in /mascli directory (my specified MAS_CONFIG_DIR).
However, the file was named: kafka-maskafka-amq-streams.yml (I'm guessing with format kafka-<KAFKA_CLUSTER_NAME>-<KAFKA_NAMESPACE>) so when I tried to run the mas install I faced the error above.
Another option could be to modify kafka role to name the file: kafka-<MAS_INSTANCE_ID>-system.yaml but I believe allowing customer to provide the file name instead should provide more control over the file name.