UtilityServiceGroup custom resource parameters

Set up your own UtilityServiceGroup custom resource by configuring the parameters in a YAML, as required.

The following tables explain the metadata, specifications for UtilityServiceGroup:
Note: By default, the image specifications that are defined under UtilityServiceGroup 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.
Table 1. UtilityServiceGroup metadata
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:
Development mode
In this mode, all services can be deployed into one deployment. To deploy a service group in a development environment, set value of name to dev.
Production mode
In this mode, each of the required service can be deployed into a single deployment. To deploy a service group in a production environment, set value of name to production.
Flexible mode
In this mode, you can regroup or delete any services that you do not wish to run. To deploy a service group in a flexible mode, specify name to any value other than dev or production. In this mode, production environment is populated by default.
namespace   string Yes Specify the namespace where the UtilityServiceGroup will be created.
Table 2. UtilityServiceGroup specifications
Property Default value Value type Required Description
active false boolean Yes Specify the active property to true to activate the service group for Utility service 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 INFO string No Specify the logging level for the Utility service group. Available options are OFF, FATAL, ERROR, WARN, INFO, DEBUG,TRACE, ALL.

If the logging level at the individual server level is not defined, the log level that is defined at Utility 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.

pod.podLabels   object No Specify any additional labels for pod.
pod.podAnnotations   object No Specify any additional annotations for pod or deployment as a key-value pair.
defaultReplicas 1 integer Yes Specify the number of replicas for the UtilityServiceGroup.
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 UtilityServiceGroup.
image   object No Specifying image properties are optional. For more information, see list of UtilityServiceGroup 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.
auditService   object No Specify the audit service properties as explained in the Properties specific to utility services.
carrierService   object No Specify the carrier service properties as explained in the Properties specific to utility services.
catalogService   object No Specify the catalog service properties as explained in the Properties specific to utility services.
rulesService   object No Specify the rules service properties as explained in the Properties specific to utility services.
searchService   object No Specify the search service properties as explained in the Properties specific to utility services.
logstash   object No Specify the logstash properties as explained in the Properties specific to utility services.

Properties specific to utility services

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 all the utility services. For application servers, replicas, and resources, the value of <service_name> can be either one from the values- auditService, catalogService, carrierService, rulesService, or searchService.

The Logstash servers are automatically populated for audit service and search service only. Hence, the value of <service_name> can be either auditService or searchService. For more information about dynamic Logstash management, see Logstash pipeline configuration management.

The backend servers are automatically populated for catalog service and rules service only. Hence, the value of <service_name> can be either catalogService or rulesService.

For search service properties, the value of <service_name> can be searchService only.

Table 3. Utility service properties
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 Configuring 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.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.logLevel INFO string 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.
<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.
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 Configuring 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.
Logstash servers <service_name>.logstashServers.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>.logstashServers.groupName Group name is pre-defined for each application server. string   It is the group name of the logstash 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>.logstashServers.names   array   A list of logstash servers is automatically populated based on the environment (dev or production) that you have specified in your custom resource.
<service_name>.logstashServers.replicaCount 1 integer Yes Specify the number of replicas for the service.
<service_name>.logstashServers.resources 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>.logstashServers.property.envVars string No Use the name of envVars from attribute serverProperties.envVars[].groupName or serverProperties.envVars[].derivatives[].groupName.
<service_name>.logstashServers.property.jvmArgs string No Use the name of jvmArgs from attribute serverProperties.jvmArgs[].groupName or serverProperties.jvmArgs[].derivatives[].groupName
<service_name>.logstashServers.logLevel INFO string 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.
<service_name>.logstashServers.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>.logstashServers.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.
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 Configuring horizontalPodAutoscalers parameter.
<service_name>.backendServers.groupName 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.

<service_name>.backendServers.replica 1 integer Yes Specify the number of replicas for the service.
<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.logLevel INFO string 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.
<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.
Search service properties <service_name>. distributionShipNodesCacheDurationMinutes 10 integer No Specify the time in minutes, after which distribution group cache shall expire.
<service_name>.maxAllowedNumberOfItemIds 10 integer No Specify the number of item IDs that are allowed when searching for item ids.
<service_name>.maxAllowedNumberOfShipNodes 200 integer No Specify the number of ship nodes that are allowed when searching for ship nodes.
<service_name>.removeSortingForSingleItemId false boolean No Specify this flag to enable or disable sorting by Item ID or UOM.

Logstash pipeline configuration management

You can dynamically manage Logstash pipeline configurations for search services across development, production, and flexible modes.

Development mode
Effective from 10.0.2409.1 release, a single StatefulSet is created for the three search pipelines—Supply, Demand, and Reservation. The init container merges these configurations dynamically.
Production mode
Separate StatefulSets are created for each of the three search pipelines, with no configuration merging required. Therefore, the init container is not used.
Flexible mode
StatefulSets and merged configurations are generated based on the selected pipelines. The init container merges the pipelines when necessary, providing flexible and customizable deployment options.

Deactivating an active service group

Deactivating an active service group means deleting it in the manner that it was created. For example,
  • If a service group is created outside of SIPEnvironment, you can only delete it from outside of SIPEnvironment. In this case, set the active property to false to deactivate the service group.
  • If a service group is created inside the SIPEnvironment, you can only delete it from the SIPEnvironment. In this case, do any of the following actions:
    • 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.

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.

Example:
utilityServiceGroup:
  - active: true
    groupName: <deployment-name>
    names:
      - "iv-supply-breakup-snapshot-source-stream-flatten:4"
    replicaCount: 4