Configuring OMServer Custom Resource

  • OMServer defines the specification to run applications or agent and integration servers.
  • Each server can refer its own profile, property, affinityAndTolerations, and more.
The following tables explain the attributes applicable to configure OMServer Custom Resource:

General Properties

Property Default value Value type Required Description
name   string Yes Specify the name of the OMServer. Ensure that the name is unique.
appServer
agentServer
integration
  object Yes Configure any one of the appServer, agentServer, integration for the OMServer custom resource. For more information, see Configuring Application server and Configuring Agent and Integration server.
replicaCount 1 integer Yes Specify the number of instances to be deployed for this server.
Note: Deployment resource is created with this replicaCount. However, deployment can be scaled independently once it is created by Sterling Order Management System Software Operator.
affinityAndTolerations   string No Use the name of the affinityAndTolerations from attribute affinityAndTolerations[].name to be used by the server.
image.name   string No Specify the name of the image to be used for the selected server.
image.variant   string No Image variation to be used as a suffix. For example, variant: "wsc". This will be combined with image name to form complete image name: <imageName>-wsc.
pod.podAnnotations   object No Specify any additional pod annotations as key-value pair. If the key specified in the OMServer pod.podAnnotations is same as the key specified in common.pod.podAnnotations, then this annotation is overridden.
podLabels   object No Specify additional pod labels as key-value pair.
Note: These pod labels are also copied to deployments.
horizontalPodAutoscaler   string No Specify the name of the pre-defined Horizontal Pod Autoscaler that is to be used. For more information, see Configuring horizontalPodAutoscalers parameter.
profile   string No Use the name of the profile from attribute serverProfiles[].name to be used by the server.
property.customerOverrides   string No
  • Use the name of customerOverrides from attribute serverProperties.customerOverrides[].groupName or serverProperties.customerOverrides[].derivatives[].groupName.
  • Set multischema.enabled to true, if you are setting up a multischema instance. If true, the installation looks for a customer-created multischema.xml file, which specifies database information for the Configuration, Metadata, Transaction, Master, and Statistics shards. Specify this property in lowercase only.
property.envVars   string No Use the name of envVars from attribute serverProperties.envVars[].groupName or serverProperties.envVars[].derivatives[].groupName.
property.jvmArgs   string No Use the name of jvmArgs from attribute serverProperties.jvmArgs[].groupName or serverProperties.jvmArgs[].derivatives[].groupName.
upgradeStrategy   string No Specify the deployment strategy to be used for upgrading the OMServer deployments. Available options are RollingUpdate and Recreate.

Configuring Application server

Property Default value Value type Required Description
appServer.dataSource.maxPoolSize 50 integer Yes Specify the dataSource maximum pool size.
appServer.dataSource.minPoolSize 10 integer Yes Specify the dataSource minimum pool size.
appServer.threads.max 100 integer Yes Specify the maximum number of threads for app server.
appServer.threads.min 20 integer Yes Specify the minimum number of threads for app server.
appServer.ingress.annotations   object No Specify any additional annotations for ingress or routes resource as key value pairs.
appServer.ingress.labels   object No Specify any additional labels for ingress or routes resource as key value pairs.
appServer.service.annotations   object No Specify the additional labels for service resource as key value pairs.
appServer.livenessFailRestartAfterMinutes 10 integer No Specify the approximate time period in minutes after which the server restarts, if liveness check keeps failing for this period.
appServer.serverName DefaultappServer string No Specify the name of the app server.
appServer.terminationGracePeriodSeconds 60 integer No Specify the time period in seconds allowed for the pod to terminate gracefully, after which the processes running in the pod will be forcibly terminated.
appServer.ingress.contextRoots [smcfs, sbc, sma, isccs, wsc, adminCenter] array No Specify the context roots that can be accessed through ingress.

If contextRoots are specified, the server startup is optimized such that the unused WAR files are automatically masked such that the application server does not load them. This saves valuable CPU and memory, and improves server startup time. By leveraging this feature, a single om-app image containing all the WAR files can be deployed with different contextRoots independently without affecting performance or resource utilization.

Note: If you are deploying IBM® Sterling Store Engagement (Next-generation), ensure to add isf to the list of contextRoots.
appServer.ingress.customDomains   array No Specify a list of customDomains 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.
appServer.libertyServerXml default-server-xml string No Provide the configMap containing server.xml for Liberty.

This parameter can be used to provide custom server.xml that contains customizations such as additional datasources for multischema and more.

Note: If you use Order Management System property encryption, use this property to define your own server.xml file and configure your database passwords and any necessary encryption that you need.
appServer.livenessCheckBeginAfterSeconds 900 integer No Specify the approximate wait time in seconds to begin the liveness check.
appServer.vendor websphere string No Specify the vendor type.
appServer.vendorFile servers.properties string No Specify the vendor file.
appServer.oidc.enabled false string No Enable or disable OIDC.
appServer.oidc.provider   string Yes Specify the OIDC provider name.
appServer.oidc.discoveryurl   string Yes Specify the OIDC discovery URL.
appServer.oidc.class   string No Specify the OIDC class.
appServer.oidc.uniqueClaim sub string No Specify the OIDC unique claim details.
appServer.oidc.secondaryid email string No Specify the secondary ID.
appServer.oidc.logouturl   string Yes Specify the OIDC logout URL.

Configuring Agent and Integration server

Generally, the agent or integration server is created as a deployment resource, so that the replicaCount is maintained. If the JVM running in the pod terminates for any reason, the deployment resource brings it back by creating another pod. Hence, the agent or integration servers remain active for servicing.

If an agent server is configured with Terminate on Idle, creating the agent server as a deployment resource causes conflict, as Kubernetes always keep matching the replicaCount. This conflict can be resolved by using the allowTermination.schedule property. If allowTermination.schedule is set to 'none', the Sterling Order Management System Software Operator creates a job resource, so that when the JVM terminates itself due to idle timeout, the pods are not brought back.

There can be scenarios when you want to start the agent servers such as purge agents, periodically. In such scenarios, a Kubernetes CronJob is an appropriate resource that can be created. To create a CronJob, specify a valid Cron string in the allowTermination.schedule property, as per your scheduling requirements.

For more information about the Cron scheduled pattern, see Cron schedule syntax.

Property Default value Value type Required Description
agentServer.names
integration.names
  array Yes Specify the list of agent or integration servers to run. For example, [searchCatalogIndex, scheduleAgent].
agentServer.readinessFailRestartAfterMinutes
integration.readinessFailRestartAfterMinutes
10 integer No Specify the approximate time period in minutes after which the agent or integration server restarts if readiness check keeps failing for this period.
agentServer.terminationGracePeriodSeconds
integration.terminationGracePeriodSeconds
60 integer No Specify the time period in seconds allowed for the pod to terminate gracefully, after which the processes running in the pod will be forcibly terminated.
allowTermination.schedule   string No
  • Specify 'none' to create the agent server as a Job resource. This ensures that when the JVM exits, the pod is not recreated.
  • Specify a valid Cron string to create the agent server as a CronJob resource with the required scheduling time.
Note:
  • The Job resources are removed automatically after 300 seconds (5 minutes).
  • When the agent server Job is complete, the replicaCount on the OMEnvironment and OMServer manifest is set to 0.

Deploying smcfsdocs

The Sterling Order Management System Software Operator deploys Sterling Order Management System Software javadocs and exposes relevant ingress or routes for javadocs, if the following conditions are met:

  • image.name ends with docs
    OR
  • image.variant equals to docs
Following routes are exposed for javadocs:
  • Core javadocs:
    https://<ingress_subdomain>/smcfsdocs/yfscommon/core_javadocs/
  • API javadocs:
    https://<ingress_subdomain>/smcfsdocs/yfscommon/api_javadocs/
  • Entity Relationship Diagram (ERD):
    https://<ingress_subdomain>/smcfsdocs/yfscommon/ERD/HTML/