UtilityServiceGroup custom resource manifest

Use UtilityServiceGroup to manage number of deployments, replica counts, thread counts and more, for the utility service resources.
To create an UtilityServiceGroup, you can use any of the following methods:
  • Method 1: Specify the name property, which is the environment to which you want to deploy your service group. The service properties such as appServers, backendServers, logstashServers, and other properties, are automatically populated when the service group is created. You can customize it by configuring as needed. For more information, see Configuring UtilityServiceGroup custom resource (independent mode).
  • Method 2: Copy and paste an already tested UtilityServiceGroup schema from one environment to another. This method saves you time from creating a service group from scratch.
You can run the following YAML to populate the spec based on the kind and name of the environment. The value of <name> can be dev or production.
apiVersion: apps.sip.ibm.com/v1beta1
kind: UtilityServiceGroup
metadata:
  name: <name>
  namespace: <sip_installation_namespace>
spec: {}

The following examples illustrates schemas to create a UtilityServiceGroup in a development and production modes.

Figure 1. Development mode
apiVersion: apps.sip.ibm.com/v1beta1
kind: UtilityServiceGroup
metadata:
  name: dev
  namespace: <sip_installation_namespace>
spec:
  active: 
  image:
    repository: 
    search:
      tag: 
    rules:
      tag: 
    logstash:
      tag: 
    catalog:
      tag: 
    carrier:
      tag: 
    audit:
      tag:
auditService:
    active: true
    appServers:
      - active: true
        groupName: appserver
        names:
          - apisipaudit
        replicaCount: 1
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    jobs:
      - name: elasticsearch-onboarding
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
    logstashServers:
      - active: true
        groupName: logstash
        names:
          - logstash
        replicaCount: 1
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
carrierService:
    active: true
    appServers:
      - active: true
        groupName: appserver
        names:
          - cas-server
        replicaCount: 1
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    jobs:
      - name: cassandra-onboarding
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
catalogService:
    active: true
    appServers:
      - active: true
        groupName: appserver
        names:
          - apicatalog
        replicaCount: 1
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    backendServers:
      - active: true
        groupName: backend
        names:
          - 'UpdateCategory:1'
          - 'UpdateItem:1'
          - 'UpdateAttribute:1'
          - 'UpdateClassification:1'
          - 'FullSync:1'
          - 'IngestItem:1'
        replicaCount: 1
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    jobs:
      - name: elasticsearch-onboarding
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
rulesService:
    active: true
    appServers:
      - active: true
        groupName: appserver
        names:
          - apirules
        replicaCount: 1
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    backendServers:
      - active: true
        groupName: backend
        names:
          - shipNode
          - dataReplication
        replicaCount: 1
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    jobs:
      - name: elasticsearch-onboarding
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
searchService:
    maxAllowedNumberOfItemIds: 50
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    active: true
    appServers:
      - active: true
        groupName: appserver
        names:
          - apidemandssearch
          - apisuppliessearch
          - apireservationsearch
          - apiinventorytagsearch
        replicaCount: 1
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    maxAllowedNumberOfShipNodes: 200
    jobs:
      - name: elasticsearch-onboarding
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
    distributionShipNodesCacheDurationMinutes: 10
    logstashServers:
      - active: true
        groupName: logstash
        names:
          - logstash-supply
          - logstash-demand
          - logstash-reservation
          - logstash-inventorytag
        replicaCount: 1
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    removeSortingForSingleItemId: true
Figure 2. Production mode
apiVersion: apps.sip.ibm.com/v1beta1
kind: UtilityServiceGroup
metadata:
  name: production
  namespace: <sip_installation_namespace>
spec:
  active: 
  image:
    repository: 
    filex:
      tag: 
    search:
      tag: 
    rules:
      tag: 
    logstash:
      tag: 
    catalog:
      tag: 
    carrier:
      tag: 
    audit:
      tag:
  auditService:
    active: true
    appServers:
      - active: true
        names:
          - apisipaudit
        resources:
        topology:
          - 
        property:     
        pod:
          podAnnotations:
          podLabels:     
        logLevel: 
        horizontalPodAutoscaler: 
        affinityAndTolerations: 
        image:
          tag: 
    defaultReplicas: 1         
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    jobs:
      - name: onboarding-job
        resources:
        topology:
          - 
        property:     
        pod:
          podAnnotations:
          podLabels:     
        logLevel: 
        horizontalPodAutoscaler: 
        affinityAndTolerations: 
    logstashServers:
      - active: true
        names:
          - logstash
        replicaCount: 2
        resources:
        topology:
          - 
        property:     
        pod:
          podAnnotations:
          podLabels:     
        logLevel: 
        horizontalPodAutoscaler: 
        affinityAndTolerations: 
        image:
          tag:        
  carrierService:
    active: true
    appServers:
      - active: true
        names:
          - cas-server
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    jobs:
      - name: onboarding-job
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
  catalogService:
    active: true
    appServers:
      - active: true
        names:
          - apicatalog
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    backendServers:
      - active: true
        names:
          - 'UpdateClassification:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'FullSync:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'IngestItem:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'UpdateCategory:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'UpdateItem:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'UpdateAttribute:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    jobs:
      - name: onboarding-job
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
  filexService:
    active: false
    appServers:
      - active: true
        names:
          - api-server
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - ticker-server
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    backendServers:
      - active: true
        names:
          - 'e2f-publish-promise:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-publish-supply:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-publish-inventory-availability:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-process-catalog-item-ingest-failure-handler:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-publish-order:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-process-sourcing-plan:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-publish-sourcing-plan:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'f2e-job-server:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'f2e-exchange-server:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-process-catalog-upserted:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-process-supply:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-publish-inventory-availability-snapshot:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-publish-catalog-item-ingest-failure-handler:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-publish-failure-handler:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-publish-catalog-upserted:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-process-supply-snapshot:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-publish-supply-snapshot:5'
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - 'e2f-process-inventory-availability-snapshot:5'
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
        replicaCount: 2
      - active: true
        names:
          - 'e2f-process-order:5'
        replicaCount: 2
      - active: true
        names:
          - 'e2f-process-promise:5'
        replicaCount: 2
      - active: true
        names:
          - 'e2f-process-inventory-availability:5'
        replicaCount: 2
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    jobs:
      - name: onboarding-job
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
  rulesService:
    active: true
    appServers:
      - active: true
        names:
          - apirules
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    backendServers:
      - active: true
        names:
          - shipNode
        replicaCount: 2
      - active: true
        names:
          - dataReplication
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    jobs:
      - name: onboarding-job
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
  searchService:
    maxAllowedNumberOfItemIds: 50
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    active: true
    appServers:
      - active: true
        names:
          - apiinventorytagsearch
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - apidemandssearch
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - apisuppliessearch
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - apireservationsearch
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    maxAllowedNumberOfShipNodes: 200
    jobs:
      - name: onboarding-job
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
      - name: tenant-onboarding-job
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
    distributionShipNodesCacheDurationMinutes: 10
    logstashServers:
      - active: true
        names:
          - logstash-supply
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - logstash-demand
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - logstash-reservation
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
      - active: true
        names:
          - logstash-inventorytag
        replicaCount: 2
        resources:
        topology:
          -
        property:
        pod:
          podAnnotations:
          podLabels:
        logLevel:
        horizontalPodAutoscaler:
        affinityAndTolerations:
        image:
          tag:
    removeSortingForSingleItemId: true
status: {}