OptimizerServiceGroup custom resource parameters
Set up your own OptimizerServiceGroup custom resource by
configuring the parameters in a YAML, as required. It is not mandatory to configure OptimizerServiceGroup to install Sterling Intelligent
Promising and the installation can proceed
without Optimization service.
OptimizerServiceGroup:image specifications that are defined under
OptimizerServiceGroup takes precedence over the global image specifications
that are defined in the SIPEnvironment. The image parameters appear by
default, hence, to override the default image parameters, update the parameters as
required.| Property | Default value | Value type | Required | Description |
|---|---|---|---|---|
name |
string | Yes | Specify the environment to which you want to deploy your service group. You can deploy
service groups in the following three modes:
|
|
namespace |
string | Yes | Specify the namespace where the OptimizerServiceGroup will be
created. |
| Property | Default value | Value type | Required | Description |
|---|---|---|---|---|
active |
false |
boolean | Yes | Specify the active property to true to activate the service
group for Optimization and create resources and deployments in the cluster.Important:
You can create multiple service groups but can activate only one at a time in the namespace.
Deactivate the active service group to activate a new service group. For more information, see Deactivating an active service group.
|
logLevel |
string | No | Specify the logging level for the Optimization service group. Available options are
OFF, FATAL, ERROR, WARN, INFO, DEBUG,TRACE, ALL. |
|
pod.podAnnotations |
object | No | Specify any additional annotations for pod or deployment as a key-value pair. | |
pod.podLabels |
object | No | Specify any additional labels for pod or deployment as a key-value pair. Remember: Do not override the following three labels, as they are internally used by the Operator.
|
|
defaultReplicas |
1 | integer | Yes | Specify the number of replicas for the OptimizerServiceGroup. |
defaultresources |
For dev: Limits: CPU= 1 Memory= 1536Mi Requests: CPU= 100m Memory= 1Gi Memory= 1Gi For production, specify limits and requests for CPU and memory, based on your cluster configuration. |
object | Yes | Specify the CPU and memory resource requests and limits for the OptimizerServiceGroup. |
image |
object | No | Specifying image properties are optional. For more information, see list of OptimizerServiceGroup image properties. |
|
image.imagePullSecrets |
array | No | References to secrets in the same namespace for pulling the images. It can be referred as
name-value pair. |
|
kpiProcessorService |
object | No | Specify the KPI processor service properties as explained in the Properties specific to Optimizaion service. | |
optimizationService |
object | No | Specify the order optimization service properties as explained in the Properties specific to Optimizaion service. | |
configurationService |
object | No | Specify the configuration service properties as explained in the Properties specific to Optimizaion service. | |
requestOrganizerService |
object | No | Specify the request organizer service properties as explained in the Properties specific to Optimizaion service. | |
dataCaptureService |
object | No | Specify the data capture service properties as explained in the Properties specific to Optimizaion service. | |
elasticSearchDataProcessor |
object | No | Specify the Elasticsearch data processor service properties as explained in the Properties specific to Optimizaion service. | |
errorProcessorService |
object | No | Specify the error processor service properties as explained in the Properties specific to Optimizaion service. | |
jobs |
<List of auto-populated jobs> | object | A list of jobs that gets populated in the service group custom resource. For Optimizer, the
jobs property is available only for elasticSearchDataProcessor.
For a list of common properties for jobs, see Properties specific to jobs. |
|
topology |
array | No | Specify the names of the Topology Spread Constraints that are to be used for
the server. For example, topology: [constraint1, constraint2]. The topology defined in the servers or in the jobs takes precedence over the one defined in the individual service groups. For more information, see Examples to call Topology Spread Constraints from servers. |
Properties specific to Optimizaion service
The value of <service_name> for the properties that are listed in the
following table depends on the service that you are using.
The application servers are automatically populated for select Optimization services. For
application servers, replicas, and resources, the value of <service_name> can be
either one from the values- optimizationService, and
configurationService.
The backend servers are automatically populated for select Optimization services and the value of
<service_name> can be either one from the values-
optimizationService, kpiProcessorService,
requestOrganizerService, dataCaptureService,
elasticSearchDataProcessor, and errorProcessorService.
| Type of server | Property | Default value | Value type | Required | Description |
|---|---|---|---|---|---|
| Application servers | <service_name>.appServers.active |
true | boolean | No | This flag is set to true by default to activate a server or a group of
servers. To deactivate, set it to false. |
<service_name>.appServers.affinityAndTolerations |
string | No | Use the name of the affinityAndTolerations that is defined in the SIPEnvironment. |
||
<service_name>.appServers.horizontalPodAutoscaler |
string | No | Specify the name of the pre-defined Horizontal Pod Autoscaler that is to be used. For more information, see horizontalPodAutoscalers parameter. | ||
<service_name>.appServers.groupName |
Group name is pre-defined for each application server. | string | It is the group name of the application servers that are automatically populated by the
service. You can modify the group name as required. In Kubernetes, the character limit of label values is 63, which often cause deployment errors with long resource names. To avoid errors, you can use group name to identify deployments, allowing flexible and organized deployment management. For more information, see Using group names to avoid errors with long resource names. |
||
<service_name>.appServers.pod.podAnnotations |
object | No | Specify any additional annotations for pod or deployment as a key-value pair. | ||
<service_name>.appServers.pod.podLabels |
object | No | Specify any additional labels for pod or deployment as a key-value
pair. Remember: Do not override the following three labels, as they are internally used
by the Operator.
|
||
<service_name>.appServers.names |
<List of pre-populated servers> | array | A list of app servers is automatically populated based on the environment (dev or production) that you have specified in your custom resource. | ||
<service_name>.appServers.replicaCount |
1 | integer | Yes | Specify the number of replicas for the service. | |
<service_name>.appServers.resources |
For dev: Limits: CPU= 1 Memory= 1536Mi Requests: CPU= 100m Memory= 1Gi Memory= 1Gi For production, specify limits and requests for CPU and memory, based on your cluster configuration. |
object | Yes | Specify the CPU and memory resource requests and limits for the service. | |
<service_name>.appServers.property.envVars |
string | No | Use the name of envVars from attribute serverProperties.envVars[].groupName
or serverProperties.envVars[].derivatives[].groupName. |
||
<service_name>.appServers.property.jvmArgs |
string | No | Use the name of jvmArgs from attribute serverProperties.jvmArgs[].groupName
or serverProperties.jvmArgs[].derivatives[].groupName. |
||
<service_name>.appServers.image.tag |
string | No | Specify this property to define the image tag for the individual server. If it is not set, the tag that is defined in the service group or global configuration in SIPEnvironment is used. This enables precise control over the image version that is used by each server instance. | ||
<service_name>.appServers.image.pullPolicy |
string | No | Specify this property to define the image pull policy for the individual server. If it is not set, the policy defined in the service group or global configuration in SIPEnvironment is used. This controls the image pull behavior for the server instance. | ||
<service_name>.appServers.topology |
array | No | |||
| Replicas and resources | <service_name>.defaultReplicas |
1 | integer | Yes | Specify the number of replicas for the service. |
<service_name>.affinityAndTolerations |
string | No | Use the name of the affinityAndTolerations that is defined in the SIPEnvironment. |
||
<service_name>.horizontalPodAutoscaler |
string | No | Specify the name of the pre-defined Horizontal Pod Autoscaler that is to be used. For more information, see horizontalPodAutoscalers parameter. | ||
<service_name>.defaultresources |
For dev: Limits: CPU= 1 Memory= 1536Mi Requests: CPU= 100m Memory= 1Gi |
object | Yes | Specify the CPU and memory resource requests and limits for the service. | |
<service_name>.property.envVars |
string | No | Use the name of envVars from attribute serverProperties.envVars[].groupName
or serverProperties.envVars[].derivatives[].groupName. |
||
<service_name>.property.jvmArgs |
string | No | Use the name of jvmArgs from attribute serverProperties.jvmArgs[].groupName
or serverProperties.jvmArgs[].derivatives[].groupName. |
||
| Backend servers | <service_name>.backendServers.active |
true | boolean | No | This flag is set to true by default to activate a server or a group of
servers. To deactivate, set it to false. |
<service_name>.backendServers.affinityAndTolerations |
string | No | Use the name of the affinityAndTolerations that is defined in the SIPEnvironment. |
||
<service_name>.backendServers.horizontalPodAutoscaler |
string | No | Specify the name of the pre-defined Horizontal Pod Autoscaler that is to be used. For more information, see horizontalPodAutoscalers parameter. | ||
|
Group name is pre-defined for each application server. | string | It is the group name of the backend servers that are automatically populated by the service.
You can modify the group name as required. In Kubernetes, the character limit of label values is 63, which often cause deployment errors with long resource names. To avoid errors, you can use group name to identify deployments, allowing flexible and organized deployment management. For more information, see Using group names to avoid errors with long resource names. |
||
|
1 | integer | Yes | Specify the number of replicas for the service. | |
<service_name>.backendServers.pod.podAnnotations |
object | No | Specify any additional annotations for pod or deployment as a key-value pair. | ||
<service_name>.backendServers.pod.podLabels |
object | No | Specify any additional labels for pod or deployment as a key-value
pair. Remember: Do not override the following three labels, as they are internally used
by the Operator.
|
||
<service_name>.backendServers.resources |
For dev: Limits: CPU= 1 Memory= 1536Mi Requests: CPU= 100m Memory= 1Gi Memory= 1Gi For production, specify limits and requests for CPU and memory, based on your cluster configuration. |
object | Yes | Specify the CPU and memory resource requests and limits for the service. | |
<service_name>.backendServers.property.envVars |
string | No | Use the name of envVars from attribute serverProperties.envVars[].groupName
or serverProperties.envVars[].derivatives[].groupName. |
||
<service_name>.backendServers.property.jvmArgs |
string | No | Use the name of jvmArgs from attribute serverProperties.jvmArgs[].groupName
or serverProperties.jvmArgs[].derivatives[].groupName. |
||
<service_name>.backendServers.image.tag |
string | No | Specify this property to define the image tag for the individual server. If it is not set, the tag that is defined in the service group or global configuration in SIPEnvironment is used. This enables precise control over the image version that is used by each server instance. | ||
<service_name>.backendServers.image.pullPolicy |
string | No | Specify this property to define the image pull policy for the individual server. If it is not set, the policy defined in the service group or global configuration in SIPEnvironment is used. This controls the image pull behavior for the server instance. | ||
<service_name>.appServers.topology |
array | No |
Properties specific to jobs
| Property | Default value | Value type | Required | Description |
|---|---|---|---|---|
name |
array | Yes | It is the list of names of the jobs that are included in the service. | |
affinityAndTolerations |
string | No | Use the name of the affinityAndTolerations that is defined in the SIPEnvironment. By default, the affinityAndTolerations defined in the server
takes precedence over the affinityAndTolerations that is defined in the individual
service group. |
|
horizontalPodAutoscaler |
string | No | Specify the name of the pre-defined Horizontal Pod Autoscaler that is to be used. For more information, see horizontalPodAutoscalers parameter. | |
logLevel |
INFO |
integer | No | Specify this property to override the log level at the individual server level. Available
options are OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL. If not set at the
individual server level, the log level that is defined at the service group level is used. If the
service group log level is also not defined, then the global configuration in SIPEnvironment is used. If none of these is set, the default log level is INFO.
This allows customized control of logging for each server instance. |
jobBackoffLimit |
4 | integer | No | Specify the number of retries before marking the job as failed after consecutive pod failures. |
pod.podAnnotations |
object | No | Specify any additional annotations for pod or deployment as a key-value pair. | |
pod.podLabels |
object | No | Specify any additional labels for pod or deployment as a key-value pair. Remember: Do not override the following three labels, as they are internally used by the Operator.
|
|
resources |
For dev: Limits: CPU= 1 Memory= 1536Mi Requests: CPU= 100m Memory= 1Gi For production, specify limits and requests for CPU and memory, based on your cluster configuration. |
No | Specify the CPU and memory resource requests and limits for servers. | |
topology |
array | No | Specify the names of the Topology Spread Constraints that are to be used for
the server. For example, topology: [constraint1, constraint2]. The topology defined in the servers or in the jobs takes precedence over the one defined in the individual service groups. For more information, see Examples to call Topology Spread Constraints from servers. |
Deactivating an active service group
- If a service group is created outside of
, you can only delete it from outside ofSIPEnvironment. In this case, set theSIPEnvironmentactiveproperty to false to deactivate the service group. - If a service group is created inside the
, you can only delete it from theSIPEnvironment. In this case, do any of the following actions:SIPEnvironment- Remove the service group from
.SIPEnvironment - Update the service group to a different mode (dev or production) as needed, to automatically deactivate the existing service group.
- Remove the service group from
Using group names to avoid errors with long resource names
Instead of directly using long deployment names in labels or selectors, for example,
metadata.labels, spec.selector.matchLabels, which may exceed the
63-character limit, assign a concise group name to represent the deployment. This approach enables
simpler label management and organizes specific deployment configurations within the group.
optimizerServiceGroup:
- active: true
groupName: <deployment-name>
names:
- "iv-supply-breakup-snapshot-source-stream-flatten:4"
replicaCount: 4Onboarding instructions for Optimizer users
Once you are onboarded to Optimizer, configure the following businessSettings
properties with values appropriate to your business use case. This configuration ensures that the
Optimizer operates with correct localization, unit measurement, and business rules. For more
information, see Onboarding instructions for Optimizer users.