OMEnvironment Custom Resource sample manifest

The following .yaml file is a schema of OMEnvironment CR with sample values.
Important: The values in the following yaml are provided for demonstration purpose only and must me modified as required.
apiVersion: apps.oms.ibm.com/v1beta1
kind: OMEnvironment
metadata:
  name: oms
  annotations:
    # apps.oms.ibm.com/installed-fixpack: '29'
    apps.oms.ibm.com/installed-fixpack: '2206.0'
spec:
  license:
    accept: false
    acceptCallCenterStore: false
  secret: oms-secrets 
​
  storage:
    name: oms-pvc-name 

​# The tag used in the following image is a sample value.
# You must replace the tag with one that is supported at the current point in time.
  image:
    repository: cp.icr.io/cp/ibm-oms-<edition>
    imagePullSecrets:
    - name: ibm-entitlement-key
    - name: my-private-registry-key1 
    - name: my-private-registry-key2 
    oms:
      tag: 10.0.2209.0-amd64
    orderHub:
      base:
        tag: 10.0.2209.0-amd64
      extn:
        tag: 10.0.2209.0-amd64
    orderService:
      tag: 1.0.2209.0-amd64
​
  database:
    db2:
      host: dbhost.domain.com 
      port: 50000 
      name: omdb 
      schema: schema1 
      user: mydbuser 
      secure: true
      # dataSourceName: jdbc/OMDS
      # url: "" 
​
  common:
    ingress:
      host: public-domain.mycluster.com  
      className: ""
      ssl:
        enabled: true
​    jwt:
      alias: jwtName       
      algorithm: RS512
      audience: service
      issuer: oms

  # This networkPolicy is most open and hence least secure. You have been warned!
  networkPolicy:
    podSelector:
      matchLabels:
        none: none
    policyTypes:
      - Ingress
    ingress: []
​
  jms:
    mq:
      bindingConfigName: oms-mq-bindings-configmap
​
  security:
    ssl:
      trust:
        trustJavaCACerts: true
        trustedCertDir: /var/trustedCerts 
​
  # dataManagement:
  #   mode: upgrade
​  
  serverProfiles:
    - name: medium
      resources:
        requests:
          cpu: 500m
          memory: 1Gi
        limits:
          cpu: 2000m
          memory: 2Gi
    - name: large
      resources:
        requests:
          cpu: 500m
          memory: 2Gi
        limits:
          cpu: 4000m
          memory: 4Gi 
​
  serverProperties:
​    
    customerOverrides:
      - groupName: BaseProperties
        propertyList:
          yfs.yfs.searchIndex.rootDirectory: /shared
          yfs.colonymap.cache.maxsize: 310000
          yfs.yfs.unset.dbhk.fields.YFS_RESOURCE: false
          dbclassCache.YFS_ASSET.enabled: false
          dbclassCache.YFS_REGION.count.size: 31000
          yfs.oms_provider_url: file:/opt/ssfs
          yfs.oms_qcf: omsqcf
          yfs.yfs.hotsku.useHotSKUFeature: Y
          yfs.yfs.hotsku.assumeUnavailableOnLockTimeout: Y
        derivatives:
        - groupName: AppServerProperties
          propertyList:
            yfs.yfs.ItemProperties.cache.disable: N
            yfs.yfs.promotionrules.cache.maxsize.toload: 60000
          derivatives:
          - groupName: AppServerProperties-Custom1
            propertyList:
              yfs.yfs.ItemProperties.cache.disable: Y
              dbclassCache.YFS_ASSET.enabled: true
              yfs.yfs.YFS_ORDER_LINE_SCHEDULE.batchsize: 50
          - groupName: AppServerProperties-Debug
            propertyList:
              yfs.yfs.logall: Y
        - groupName: AgentProperties
          propertyList:
            yfs.yfs.batchsize: 100
            yfs.yfs.YFS_AUDIT.batchsize: 100
            yfs.yfs.pricelistheader.cache.disabled: Y
          propertyRef:
            name: yfs.api.security.token.enabled
            valueFrom:
              configMapKeyRef:
                name: global-security-configmap
                key: enabled
​    
    envVars:
    - groupName: CommonEnvVars
      propertyList:
        LOG_DIR: /shared/logs/${OM_POD_NAME}
        LIBERTY_LOG_DIR: /shared/logs/${OM_POD_NAME}
      derivatives:
      - groupName: LibertyTracing
        propertyList:
          MESSAGE_FILE_NAME: ${LOG_DIR}/${OM_POD_NAME}_message.log
          TRACE_FILE_NAME: ${LOG_DIR}/${OM_POD_NAME}_trace.log
        derivatives:
        - groupName: Liberty
          propertyList:
            WLP_OUTPUT_DIR: ${LOG_DIR}
        - groupName: Liberty-Debug
          propertyList:
            WLP_DEBUG_ADDRESS: 5555
​   
    jvmArgs:
    - groupName: BaseJVMArgs
      propertyList:
      - -DJVM=${OM_POD_NAME}
      - -DLOG_DIR=${LOG_DIR}
      derivatives:
      - groupName: BaseJVMArgs-GC
        propertyList:
        - -XX:HeapDumpPath=${LOG_DIR}
        - -Xdump:heap+java:events=user
        - -Xgcpolicy:gencon
        - -Xverbosegclog:${LOG_DIR}/${OM_POD_NAME}_verbosegc_%Y%m%d.%H%M%S.%pid.txt
        derivatives:
        - groupName: BaseJVMArgs-Debug
          propertyList:
          - -Xgcpolicy:balanced
          - -Djavax.net.debug=ssl,handshake
​ 
  servers:
  - name: smcfs
    replicaCount: 1
    profile: medium
    property:
      customerOverrides: AppServerProperties
      envVars: Liberty
      jvmArgs: BaseJVMArgs
    appServer:
      ingress:
        contextRoots: [smcfs, sbc, sma]
        customDomains:
        - host: ""
          className: ""
          annotations: 
            ingress.kubernetes.io/affinity: "cookie"
          labels: {}
          ssl:
            enabled: ""
            identitySecretName: mydomain_secret
​
  - name: isccs
    replicaCount: 1
    upgradeStrategy: RollingUpdate
    image:
      variant: isccs
    profile: large
    property:
      customerOverrides: AppServerProperties-Custom1
      envVars: Liberty
      jvmArgs: BaseJVMArgs
    appServer:
      ingress:
        contextRoots: [isccs]

  - name: agents-orderservice
    profile: medium
    property:
      customerOverrides: AgentProperties
      envVars: CommonEnvVars
      jvmArgs: BaseJVMArgs
    replicaCount: 1
    agentServer:
      names: [OrderArchiveServer, SSIDelayedSyncOSServer, PurgeSalesOrderDefaultSmartServer]
​
  - name: agents-job
    profile: medium
    property:
      customerOverrides: AgentProperties
      envVars: CommonEnvVars
      jvmArgs: BaseJVMArgs
    replicaCount: 1
    agentServer:
      names: [JobResource]
      allowTermination:
        schedule: 'none'    # A Job will be created.
​
  - name: agents-cronjob
    profile: medium
    property:
      customerOverrides: AgentProperties
      envVars: CommonEnvVars
      jvmArgs: BaseJVMArgs
    replicaCount: 1
    agentServer:
      names: [OrderPurge, ShipmentPurge]
      allowTermination:
        schedule: '*/5 * * * *'  # A CronJob will be created.

  healthMonitor:
    profile: balanced
    replicaCount: 1
​
  restService:
    profile: medium
    replicaCount: 1
    property:
      customerOverrides: AppServerProperties
      envVars: CommonEnvVars
      jvmArgs: BaseJVMArgs
​
  orderHub:
    bindingAppServerName: smcfs
    base:
      replicaCount: 1
      profile: medium
      envVars: CommonEnvVars
    extn:
      replicaCount: 1
      profile: medium
      envVars: CommonEnvVars    
    ingress:
      annotations: 
        ingress.kubernetes.io/affinity: "cookie"
      labels: {}
      ssl:
        enabled: ""
        identitySecretName: mydomain_secret
​
  orderService:
    cassandra:
      createDevInstance:
        profile: large
        storage:
          name: oserv-services
          capacity: 40Gi
          storageClassName: dynamic-pv
      keyspace: oserv
    elasticsearch:
      createDevInstance:
        profile: balanced
        storage:
          name: oserv-services
          capacity: 40Gi
          storageClassName: dynamic-pv
    orderServiceVersion: "1.0"
    replicaCount: 1
    configuration:
      jwt_ignore_expiration: false
      additionalConfig:
        enable_graphql_introspection: "true"
        ssl_vertx_disable: "false"
    ingress:
      annotations: 
        ingress.kubernetes.io/affinity: "cookie"
      labels: {}
      ssl:
        enabled: ""
        identitySecretName: mydomain_secret
​
  additionalMounts:
    configMaps:
    - name: env-certificates 
      mountPath: /var/trustedCerts/db2.crt  
      subPath: db2.crt
    - name: env-certificates 
      mountPath: /var/trustedCerts/integ.crt 
      subPath: integ.crt
    storages:
      - name: oms-pvc-extn 
        mountPath: /opt/ssfs/runtime/extensions

  horizontalPodAutoscalers:
    - name: Hpa1
      maxReplicas: 1
      minReplicas: 1
      metrics:
        - resource:
            name: cpu
            target:
              averageUtilization: 1
              type: Utilization
          type: Resource
    - name: Hpa2
      maxReplicas: 5
      minReplicas: 2
      metrics:
        - resource:
            name: cpu
            target:
              averageUtilization: 5
              type: Utilization
          type: Resource

# You can also use additionalMounts to pass customer overrides through a configMap to the pods, as shown in the following example.
   # - name: om-props
     # matchLabels:
       # name: agentserver
     # mountPath: /opt/ssfs/runtime/properties/customer_overrides.properties
     # subPath: customer_overrides.properties
     # readOnly: false
   # - name: om-props
     # matchLabels:
       # name: appserver
     # mountPath: /config/dropins/smcfs.ear/properties.jar/customer_overrides.properties # mountPath for app server
     # subPath: customer_overrides.properties
     # readOnly: false