externalServices parameter

Use externalServices to configure external services such as Cassandra, Elasticsearch, Kafka, and mongoDB.

The following YAML file is a sample schema for external services- Cassandra, Elasticsearch, Kafka, and mongoDB:
  externalServices:
    cassandra:
       keyspace: ""
      # contactPoints: ""
      # createDevInstance:
        # affinityAndTolerations: ""
        # resources:
          # limits:
            # cpu: '2'
            # memory:9Gi
          # requests:
            # cpu: '1'
            # memory: 3Gi        
        # storage:
          # name: ""
          # accessMode: ReadWriteMany
          # capacity: 10Gi
          # storageClassName: default
          # securityContext:
            # fsGroup: 
            # supplementalGroups: []   
    kafka:
      # contactPoints: ""
      # topicPrefix: "sip"
      # mirrorTopicPrefix: ""
      # crossDCTopicPrefix: ""     
      # zookeeperContactPoints: ""
      # loggingContactPoints: ""
      # createDevInstance:
        # affinityAndTolerations: ""
        # resources:
          # limits:
            # cpu: '1'
            # memory: 1Gi
          # requests:
            # cpu: '0.1'
            # memory: 1.5Gi
        # storage:
          # name: ""
          # accessMode: ReadWriteMany
          # capacity: 10Gi
          # storageClassName: default
          # securityContext:
            # fsGroup: 
            # supplementalGroups: []  
    elasticSearch:
      # contactPoints: ""
      # replicationEnabled: false
      # createDevInstance:
        # affinityAndTolerations: ""
        # resources:
          # limits:
            # cpu: '1'
            # memory: 1Gi
          # requests:
            # cpu: '0.1'
            # memory: 1.5Gi
        # storage:
          # name: ""
          # accessMode: ReadWriteMany
          # capacity: 10Gi
          # storageClassName: default
          # securityContext:
            # fsGroup: 
            # supplementalGroups: []
 
  
    # configuration:
      # ssl_cassandra_disable: ""
      # ssl_elasticsearch_disable: ""
      # ssl_kafka_disable: ""  
      # ssl_Logging_kafka_disable: ""
    
    # mongoDB:
      # optimizerDB: optimizer-db
      # optimizerMetadataDB: mutlitomz-db
      # replicationEnabled: false
      # createDevInstance:
      #  affinityAndTolerations: ""
      #   resources:
      #     limits:
      #       cpu: '3'
      #       memory: 10000Mi
      #     requests:
      #       cpu: '1'
      #       memory: 3000Mi
      #   storage:
      #     name: ""
      #     accessMode: ReadWriteMany
      #     capacity: 10Gi
      #     storageClassName: default
      #     securityContext:
      #       fsGroup: 
      #       supplementalGroups: []
Note: Cassandra requires a minimum of 5000Mi of memory and can use at most 9000Mi.
The following table explains the attributes applicable for externalServices parameter of SIPEnvironment.
Property Default value Value type Required Description
cassandra   object Yes Configure Cassandra for externalServices. For more information, see cassandra parameter.
elasticsearch   object Yes Configure Elasticsearch for externalServices. For information, see elasticsearch parameter.
kafka   object Yes Configure Kafka for externalServices. For more information, see kafka parameter.
configuration   object No Configure configuration parameter for each service. For more information, see configuration parameter.
mongoDB   object No Configure mongoDB parameter for each service. For more information, see mongoDB parameter.

cassandra parameter

Note:
  • When the Cassandra pod reaches unhealthy state, it is recommended to increase the resources for Cassandra and restart the IV-appserver and IV-backend deployments.
  • The JVM_OPTS for Cassandra pod is calculated based on the requests and limits that are passed to the resources. Hence, Xms must be equal to requests and Xmx must be 75 percent of limits. For more information, see resources.
Property Default value Value type Required Description
iv_keyspace   string Yes Specify the keyspace for Inventory Visibility.
cas_keyspace ks_cas string No Specify the keyspace for Carrier service.
promising_keyspace ks_promising string No Specify the keyspace for Promising service.
createDevInstance   object No Specify the resources and storage for Cassandra. For more information, see createDevInstance parameter.
Note:
  • This deploys Cassandra on the non-SSL mode.
  • cassandra.createDevInstance pulls the required image from public repository. Ensure that your cluster is connected to the internet before deploying IBM® Sterling Intelligent Promising.
contactPoints   string No Contact points for Cassandra. If createDevInstance is not enabled for Cassandra, then contactPoints is mandatory. You must create the following keyspaces:
  • <cassandra.iv_keyspace>
  • <cassandra.promising_keyspace>
  • <cassandra.cas_keyspace>
If Cassandra is external over SSL, then add the certificates to the truststore. For more information, see security parameter.
Note: Do not include http or https in your contactPoints instance.
datacenter   string No Specify the datacenter for Cassandra.

elasticsearch parameter

Property Default value Value type Required Description
createDevInstance   object No Specify the resources and storage for Elasticsearch.
For more information, see createDevInstance parameter.
Note:
  • This deploys Elasticsearch on the non-SSL mode only.
  • elasticsearch.createDevInstance pulls the required image from public repository. Ensure that your cluster is connected to the internet before deploying IBM Sterling Intelligent Promising.
contactPoints   string No Contact points for Elasticsearch. If createDevInstance is not enabled for Elasticsearch, then contactPoints is mandatory. If Elasticsearch is external over SSL, then add the certificates to the truststore. For more information, see security parameter.
Note: Do not include http or https in your contactPoints instance.
replicationEnabled false boolean No Specify this property to enable or disable Elasticsearch data replication for multicluster setup.

kafka parameter

Property Default value Value type Required Description
contactPoints   string No Contact points for Kafka. If createDevInstance is not enabled for Kafka, then contactPoints is mandatory. If Kafka is external over SSL, then add the certificates to the truststore. For more information, see security parameter.
Note: Do not include http or https in your contactPoints instance.
topicPrefix sip string No Define this prefix that you want to set for the Kafka topics. For more information about Kafka topics, see Kafka topic list for the services.
mirrorTopicPrefix   string No Define this prefix to identify mirrored topics by appending a specified prefix to their names during replication. This prefix is used in Kafka MirrorMaker to label replicated topics in destination clusters.
crossDCTopicPrefix   string No Define this prefix for Kafka topics in other data centers. If it is not specified, topicPrefix is used for mirrored topics.
createDevInstance   object No Specify the resources and storage for Kafka. Set this object only when you are deploying the development instance of Kafka. If createDevInstance is enabled for Kafka, then contactPoints is not required. For more information, see createDevInstance parameter.
Note:
  • This deploys Kafka on the non-SSL mode only.
  • kafka.createDevInstance pulls the required image from public repository. Hence, if you are deploying IBM Sterling Intelligent Promising in a cluster that has no internet access, it is recommended to use your own instance of Kafka.
  • Ensure to create the {topic_prefix}-iv-supply-sync topic before starting Sync Supply API. Run the following command to create the topic:
    ./kafka-topics.sh --bootstrap-server <hostname>:<port> --create --topic {topicPrefix}-inventory-supply-sync --partitions 1 --replication-factor 1
Deprecated featurezookeeperContactPoints   string No Contact points for Zookeeper.
Note: Do not include http or https in your contactPoints instance.
loggingContactPoints   string No If you are using a Log4j2 Kafka appender, for logging, specify loggingContactPoints. By default kafka.contactPoints is considered to push logs to a Kafka topic.

For more information about Log4j2 Kafka appender, see log parameter.

mongoDB parameter

Property Default value Value type Required Description
contactPoints   string No Contact points for MongoDB. If createDevInstance is not enabled for MongoDB, then contactPoints is mandatory. If MongoDB is external over SSL, then add the certificates to the truststore. For more information, see security parameter
Note: Do not include http or https in your contactPoints instance.
createDevInstance   object No Specify the resources and storage for MongoDB. For more information, see createDevInstance parameter.
Note:
  • This deploys MongoDB on the non-SSL mode.
  • mongoDB.createDevInstance pulls the required image from public repository. Ensure that your cluster is connected to the internet before deploying IBM Sterling Intelligent Promising.
optimizerDB   string Yes Specify the Optimizer database name in mongoDB.
optimizerMetadataDB   string Yes Specify the Optimizer metadata database name in mongoDB.
replicationEnabled false boolean No Specify this property to enable or disable MongoDB data replication for multicluster setup.

createDevInstance parameter

Property Default value Value type Required Description
affinityAndTolerations string No Use the name of the affinityAndTolerations that is defined in the SIPEnvironment.
resources   object No Specify the CPU and memory resource requests and limits. For more information, see Resource Management for Pods and Containers.
storage   object No Specify the persistent volume for storage. For more information, see storage parameter.

configuration parameter

Property Default value Value type Required Description
ssl_cassandra_disable "false" string No If you have specified contact points for a Cassandra instance that is on non-SSL, configure this property to "true".
ssl_kafka_disable "false" string No If you have specified contact points for a Kafka instance that is on non-SSL, configure this property to "true".
ssl_elasticsearch_disable "false" string No If you have specified contact points for a Elasticsearch instance that is on non-SSL, configure this property to "true".
ssl_Logging_kafka_disable "false" string No If you have specified loggingContactPoints for a logging Kafka instance that is on non-SSL, configure this property to "true".
ssl_mongodb_disable "false" string No If you have specified contact points for a MongoDB instance that is on non-SSL, configure this property to "true".

Annotations used to validate external service connections

By default the Operator does not check the connections of external services. Set the following annotations to validate or skip checking external instances connection before deployment.
Annotation Description
apps.sip.ibm.com/validate-external-services-connections Set this annotation to true to trigger a job. The Operator triggers the job to check the connections of the external instances for development and production environments. If any connection fails, the process stops, and error handling help ensure that the errors are logged in the pod logs, enabling accurate debugging.
apps.sip.ibm.com/skip-external-services-connection-validation Set this annotation to true to skip a connection that is failed.

Pass comma separated values for the external services that you want to skip the connectivity check of. Valid values are cassandra, kafka, elasticsearch, mongodb, kafka-logging.

If you choose to send the logs to a separate Kafka, then the annotation checks the connectivity of this Kafka.

Example: The following annotation skips the connection check for Cassandra and Kafka.

apps.sip.ibm.com/skip-external-services-connection-validation:`cassandra, kafka`

Pre-connectivity checks for Sterling Intelligent Promising and Optimizer deployment
After you deploy Sterling Intelligent Promising, the sip-pre-connectivity-check job runs, checking the connections for Cassandra, Elasticsearch, and Kafka. If the Optimizer is deployed, it checks the MongoDB connection. If you choose to deploy the Optimizer in independent mode and set it to trigger the sip-optimizer-pre-connectivity-check job, it checks the connections for MongoDB, Elasticsearch, and Kafka.