v1

Review the v1 YAML example to configure your own OptimizerServiceGroup.
To create an OptimizerServiceGroup, 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, 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 OptimizerServiceGroup custom resource (independent mode).
  • Method 2: Copy and paste an already tested OptimizerServiceGroup 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, production, or any value for the flexible mode.
apiVersion: apps.sip.ibm.com/v1
kind: OptimizerServiceGroup
metadata:
  name: <name>
  namespace: <sip_installation_namespace>
spec: {}

The following examples illustrates schemas for OptimizerServiceGroup custom resource in a development and production modes.

Figure 1. Development mode
apiVersion: apps.sip.ibm.com/v1
kind: OptimizerServiceGroup
metadata:
  name: dev
  namespace: <sip_installation_namespace>
spec:
  active: false
  image:
    requestOrganizerImageName: sip-optimizer-request-organizer
    configurationDigest: 
    dataCaptureDigest: 
    elasticSearchDataProcessorDigest:
    errorProcessorDigest:
    kpiProcessorDigest: 
    optimizationDigest:
    requestOrganizerDigest: 
    dataCaptureImageName: sip-optimizer-data-capture
    repository: stg.icr.io/cp/ibm-oms-enterprise
    elasticSearchOnboardingImageName: sip-optimizer-onboarding
    configurationImageName: sip-optimizer-configuration
    pullPolicy: IfNotPresent
    kpiProcessorImageName: sip-optimizer-kpi-processor
    optimizationImageName: sip-optimizer-optimization
    tag: 10.0.2601.1-amd64
    elasticSearchOnboardingDigest: 
    elasticSearchDataProcessorImageName: sip-optimizer-elastic-search-data-processor
    errorProcessorImageName: sip-optimizer-error-processor
  configurationService:
    appServers:
      - active: true
        names:
          - configuration
        replicaCount: 1
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
  dataCaptureService:
    backendServers:
      - active: true
        names:
          - 'data-capture:1'
        replicaCount: 1
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
  elasticSearchDataProcessor:
    backendServers:
      - active: true
        names:
          - 'elastic-search-data-processor:1'
        replicaCount: 1
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    jobs:
      - name: elasticsearch-onboarding
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        jobBackoffLimit: ""
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
  errorProcessorService:
    backendServers:
      - active: true
        names:
          - 'error-processor:1'
        replicaCount: 1
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
  kpiProcessorService:
    backendServers:
      - active: true
        names:
          - 'kpi-processor:1'
        replicaCount: 1
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
  optimizationService:
    appServers:
      - active: true
        names:
          - order-optimization
        replicaCount: 1
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    backendServers:
      - active: true
        names:
          - 'shadow-order-optimization:1'
        replicaCount: 1
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
  requestOrganizerService:
    backendServers:
      - active: true
        names:
          - 'request-organizer:1'
        replicaCount: 1
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
Figure 2. Production mode:
apiVersion: apps.sip.ibm.com/v1
kind: OptimizerServiceGroup
metadata:
  name: production
  namespace: <sip_installation_namespace>
spec:
  active: false
  image:
    requestOrganizerImageName: sip-optimizer-request-organizer
    configurationDigest: 
    dataCaptureDigest: 
    elasticSearchDataProcessorDigest:
    errorProcessorDigest:
    kpiProcessorDigest: 
    optimizationDigest:
    requestOrganizerDigest: 
    dataCaptureImageName: sip-optimizer-data-capture
    repository: stg.icr.io/cp/ibm-oms-enterprise
    elasticSearchOnboardingImageName: sip-optimizer-onboarding
    configurationImageName: sip-optimizer-configuration
    pullPolicy: IfNotPresent
    kpiProcessorImageName: sip-optimizer-kpi-processor
    optimizationImageName: sip-optimizer-optimization
    tag: 10.0.2601.1-amd64
    elasticSearchOnboardingDigest: 
    elasticSearchDataProcessorImageName: sip-optimizer-elastic-search-data-processor
    errorProcessorImageName: sip-optimizer-error-processor
  configurationService:
    appServers:
      - active: true
        names:
          - configuration
        replicaCount: 2
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
  dataCaptureService:
    backendServers:
      - active: true
        names:
          - 'data-capture:5'
        replicaCount: 2
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
      - active: true
        names:
          - 'data-capture-transactional:5'
        replicaCount: 2
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
  elasticSearchDataProcessor:
    backendServers:
      - active: true
        names:
          - 'elastic-search-data-processor:5'
        replicaCount: 2
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
    jobs:
      - name: elasticsearch-onboarding
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        jobBackoffLimit: ""
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
  errorProcessorService:
    backendServers:
      - active: true
        names:
          - 'error-processor:5'
        replicaCount: 2
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
  kpiProcessorService:
    backendServers:
      - active: true
        names:
          - 'kpi-processor:5'
        replicaCount: 2
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
  optimizationService:
    appServers:
      - active: true
        names:
          - order-optimization
        replicaCount: 2
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    backendServers:
      - active: true
        names:
          - 'shadow-order-optimization:5'
        replicaCount: 2
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi
  requestOrganizerService:
    backendServers:
      - active: true
        names:
          - 'request-organizer:5'
        replicaCount: 2
        affinityAndTolerations: ""
        horizontalPodAutoscaler: ""
        topology: {}
        pod:
          podAnnotations:
          podLabels:
        logLevel: INFO
        image:
          tag: <release_tag>
          pullPolicy: IfNotPresent
        resources:
          limits:
            cpu: '1'
            memory: 1536Mi
          requests:
            cpu: 250m
            memory: 512Mi
    defaultresources:
      limits:
        cpu: '1'
        memory: 1536Mi
      requests:
        cpu: 100m
        memory: 1Gi