orderService parameter

Use the orderService parameter to configure cassandra, elasticsearch, and configuration parameters for Order Service custom resource.

When Order Service is created as part of OMEnvironment (integrated), the Sterling™ Order Management System Operator injects the following properties into the OMServer pods automatically:
yfs.osi.order.service.url=<orderserviceUrl>
elasticsearch.yfs.elasticsearch.client.type="SSIClient"
yfs.yfs.ssi.disabled.entities="Shipment"
yfs.yfs.ssi.entities.perform.custom.indexing=""
yfs.yfs.ssi.delete.from.index.on.entity.purge="false"
yfs.yfs.ssi.index.draft.orders="false"
yfs.yfs.ssi.transform.wrap.child.entities.in.list="false"

orderService properties

The orderService parameter is used for deployment of Order Service servers. For more information about deploying Order Service deployment, see Deploying Order Service.

The following YAML file is a sample schema of orderService:
  image:
    orderService:
      tag: ""
      # imageName: ""
      # pullPolicy: ""
      # repository: ""

  orderService:
    cassandra:
      keyspace: ""
      # contactPoints: ""
      # createDevInstance:
        # profile: ""
        # storage:
          # accessMode: ""
          # capacity: ""
          # name: ""
          # storageClassName: ""
    # elasticsearch:
      # contactPoints: ""
      # createDevInstance:
        # profile: ""
        # storage:
          # accessMode: ""
          # capacity: ""
          # name: ""
          # storageClassName: ""
   #  kafka:
      # contactPoints:
        - my.kafka.endpoint:9092
    configuration:
      jwt_ignore_expiration: ""
      # additionalConfig: ""
      # alias: <custom_name>
    # orderServiceVersion: ""
    # podLabels: {}
    # podAnnotations: {}
    # profile: ""
    # replicaCount: ""
    # horizontalPodAutoscaler: HPA1
    # topology: {}
    # ingress:
       # annotations: ""
       # labels: ""  
       # customDomains:
        # - host: ""
          # className: ""
          # annotations: ""
          # labels: ""
          # ssl:
            # enabled: ""
            # identitySecretName: ""
    indexer:
      envVars:
        - name: ORDERSERVICE_INDEX_ORDER_TOPIC_PHRASE
          value: index_order_topic

    fetcher:
      envVars:
        - name: ORDERSERVICE_FETCHED_ORDER_TOPIC_PHRASE
          value: index_order_topic
        - name: ORDERSERVICE_FETCH_ORDER_TOPIC_PHRASE
          value: fetch_order_topic
The following table explains the properties applicable for orderService parameter of OMEnvironment.
Table 1. Properties fororderService
Property Default value Value type Required Description
cassandra   object Yes Configure Cassandra for Order Service. For information about configuring Cassandra parameter, see cassandra properties. For information about configuring Cassandra on SSL, see Enabling Cassandra data encryption.
elasticsearch   object Yes Configure Elasticsearch for Order Service. For information about configuring Elasticsearch parameter, see elasticsearch properties.
kafka   object Yes Configure Kafka for Order Service. For information about configuring Kafka parameter, see kafka properties.
envVars   Array No Configure the required environment variables to be passed to both the Order Service and Backend deployments.
jvmArgs   Array No Configure the required JVM arguments to be passed to both the Order Service and Backend deployments
fetcher   Object No Configure the required fetcher properties. For more information, see fetcher properties.
indexer   Object No Configure the required indexer properties. For more information, see indexer properties.
configuration   object Yes Configure Order Service properties.
orderServiceVersion   string No Specify Order Service app version.
replicaCount 1 integer No Specify the number of server instances to be deployed.
profile balanced string No Name of serverProfile to be used for the instance. You can also use existing profiles (balanced/compute/memory). For more information, see serverProfiles parameter.
horizontalPodAutoscaler   string No Specify the name of the pre-defined Horizontal Pod Autoscaler that is to be used. For more information, see horizontalPodAutoscalers parameter.
topology   array No Specify the names of the Topology Spread Constraints that are to be used for the order service. For example, topology: [constraint1, constraint2].
podAnnotations   object No Specify annotations for pod as key-value pair.
podLabels object No Specify pod labels as key-value pair. These pod labels are also copied to deployments.
ingress.annotations   object No Specify any additional annotations for ingress or routes resource as key-value pair.
ingress.labels   object No Specify any additional labels for ingress or routes resource as key-value pair.
ingress.host   string No Specify the domain name to which the service is exposed to.
ingress.ssl   object No Specify the ingress SSL configurations.
ingress.ssl.enabled   boolean Yes, when ingress.ssl is specified. Specify whether SSL is enabled for ingress or not.
ingress.className nginx string No Specify the ingress class name.
ingress.customDomains   array No Specify a list of custom domains with one or more Fully Qualified Domain Names (FQDNs) over which your application is exposed. For more information, see Creating multiple ingress hosts by using customDomains.
ingress.ssl.identitySecretName   string No Specify the name of the secret holding TLS certificate to be used as identity for ingress or routes. The ingress or route URL will present this TLS certificate to the clients.
Note: If the key in the podLabels or podAnnotations is the same as defined in common.pod.podLabels/podAnnotations, then it overwrites the key defined in common.

cassandra properties

The following table explains the properties applicable for the cassandra parameter for Order Service.
Table 2. Properties forcassandra
Property Default value Value type Required Description
cassandra.keyspace   string Yes keyspace for cassandra.
cassandra.contactPoints   string No Contact points for Cassandra. If createDevInstance is not enabled for Cassandra, then contactPoints is mandatory.
cassandra.createDevInstance   object No Set this object only when you are deploying the development instance of Cassandra. If createDevInstance is enabled for Cassandra, then contactPoints is not required. For more information, see createDevInstance parameter.
Note:
  • This deploys Cassandra on the non-SSL mode.
  • cassandra.createDevInstance pulls the required image from public repository. Hence, if you are deploying Order Service in a cluster that has no internet access, it is recommended to use your own instance of Cassandra.

elasticsearch properties

The following table explains the properties applicable for the elasticsearch parameter for Order Service.
Table 3. Properties forelasticsearch
Property Default value Value type Required Description
elasticsearch.contactPoints   string No Contact points for Elasticsearch. If createDevInstance is not enabled for Elasticsearch, then contactPoints is mandatory.
elasticsearch.createDevInstance   object No
Set this object only when you are deploying the development instance of Elasticsearch. If createDevInstance is enabled for Elasticsearch, then contactPoints is not required. For more information, see createDevInstance parameter.
Note:
  • This deploys Elasticsearch on the non-SSL mode.
  • elasticsearch.createDevInstance pulls the required image from public repository. Hence, if you are deploying Order Service in a cluster that has no internet access, it is recommended to use your own instance of Elasticsearch.

createDevInstance parameter

The following table explains the properties applicable for the cassandra and elasticsearch parameters for Order Service.
Table 4. Properties forcreateDevInstance
Property Default value Value type Required Description
createDevInstance.profile   string Yes Name of serverProfile to be used in cassandra and elasticsearch. For more information, see serverProfiles parameter.
createDevInstance.storage   object No Used to configure persistent volume for storage. For more information, see storage parameter.

configuration properties

The following table explains the properties applicable for the configuration parameter for Order Service.
Table 5. Properties forconfiguration
Property Default value Value type Required Description
configuration.jwt_audience service string Yes Specify to whom you intend to send the JWT token.
configuration.jwt_issuer oms string Yes Specify an issuer name when creating a JWT token for the current user.
configuration.jwt_algorithm RS256 string Yes Specify the algorithm that is used for signing the JWT token.
configuration.jwt_ignore_expiration   boolean Yes Specify whether you want to ignore the expired JWT token or not.
configuration.alias   string No Specify a custom name for the JWT when defining your own key-pair.
configuration.additionalConfig   object No Specify any additional properties that you might want to configure for Order Service. For more information about configuring additional properties, see Configuring specifications for Order Service property overrides.

kafka properties

The following table explains the properties applicable for the kafka parameter for Order Service.
Table 6. Properties forkafka
Property Default value Value type Required Description
kafka.contactPoints   string No Specify the Kafka endpoints as a comma-separated list.

fetcher properties

The following table explains the properties applicable for the fetcher parameter for Order Service.
Table 7. Properties for fetcher
Property Default value Value type Required Description
fetcher.envVars   array No Specify the environment variables to be passed to the fetcher backend. The environment variables configured in fetcher takes precedence over those defined in the Order Service.
fetcher.jvmArgs   array No Specify the JVM arguments to be passed to the fetcher backend. The JVM arguments configured in fetcher takes precedence over those defined in the Order Service.
fetcher.replicaCount 1 integer No Specify the number of instances to be deployed.

indexer properties

The following table explains the properties applicable for the indexer parameter for Order Service.
Table 8. Properties for indexer
Property Default value Value type Required Description
indexer.envVars   array No Specify the environment variables to be passed to the indexer backend. The environment variables configured in indexer takes precedence over those defined in the Order Service.
indexer.jvmArgs   array No Specify the JVM arguments to be passed to the indexer backend. The JVM arguments configured in indexer takes precedence over those defined in the Order Service.
indexer.threadCount 1 array No Specify the number of threads that the indexer should use during execution.
indexer.replicaCount 1 integer No Specify the number of instances to be deployed.

Default integration properties added by OMEnvironment

When Order Service is deployed in integrated mode through OMEnvironment, the Sterling Order Management System Software Operator automatically adds following properties into each of the application and agent servers.
yfs.osi.order.service.url=<orderservice-host-url>
elasticsearch.yfs.elasticsearch.client.type="SSIClient"
yfs.yfs.ssi.disabled.entities="Shipment"
yfs.yfs.ssi.entities.perform.custom.indexing=""
yfs.yfs.ssi.delete.from.index.on.entity.purge="false"
yfs.yfs.ssi.index.draft.orders="false"
yfs.yfs.ssi.transform.wrap.child.entities.in.list="false"
Additionally, the following JVM parameters are added into each of the app and agent JVMs.
Dycp.jwt.auth.keyStore=/shared/jwtauth/jwt.jks
Dycp.jwt.auth.keyStorePassword=<keyStorePassword>
Dycp.jwt.auth.trustStore=/shared/jwtauth/jwt.jks
Dycp.jwt.auth.trustStorePassword=<keyStorePassword>

Ensure that the keyStorePassword for the JWT store is provided under stringData.keyStorePassword attribute of the secret. For more information, see Creating a secret.

Note: Order Service does not support using custom Sterling Order Management System Software URLs. However, for app server, rest service, and Order Hub integrated and independent modes, you can use customDomains parameter to provide one or more Fully Qualified Domain Names (FQDNs) over which your application is exposed. For more information, see Creating multiple ingress hosts by using customDomains.