OMEnvironment Custom Resource manifest

See the following examples to configure your OMEnvironment as required.

Example 1: OMEnvironment with sample values for quick setup

apiVersion: apps.oms.ibm.com/v1beta1
kind: OMEnvironment

metadata:

  # Name of the OMEnvironment deployment
  name: oms-sample

  # Annotations: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=cocr-annotations-used-in-sterling-order-management-software-operator
  annotations:
    apps.oms.ibm.com/dbvendor-auto-transform: "true"
    apps.oms.ibm.com/dbvendor-install-driver: "true"
    apps.oms.ibm.com/installed-fixpack: "2306.1"

spec:

  # Licenses: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-omenvironment-custom
  license:
    accept: true
    acceptCallCenterStore: true

  # Service account: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-omenvironment-custom
  serviceAccount: <service account>

  # Secret: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=operator-creating-secret
  secret: oms-secret

  # Database parameters: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-database-parameter
  database:
    db2|oracle|postgresql:
      url: <database url>
      host: <database host>
      name: <database name>
      port: <databse port>
      user: <database user>
      schema: <schema>
      secure: <true|false>

  # JMS parameters: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-jms-parameter
  jms:
    mq:
      bindingConfigName: oms-mq-bindings-configMap

  # Network policy: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-networkpolicy-parameter
  networkPolicy:
    ingress: []
    podSelector:
      matchLabels:
        release: oms
        role: appserver
    policyTypes:
      - Ingress

  # Storage configurations are used to configure the persistent volume for shared storage.
  # `storage.name` is the name of the persistent volume claim. 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-storage-parameter
  storage:
    name: oms-pvc-xvdc1

  # Additional mounts: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-additionalmounts-parameter
  additionalMounts:
    configMaps:
      - name: log4j2-custom
        mountPath: /opt/ssfs/runtime/properties/log4j2_extra.xml
        subPath: log4j2.custom.xml
      - name: log4j2-custom
        mountPath: /config/dropins/smcfs.ear/properties.jar/log4j2_extra.xml
        subPath: log4j2.custom.xml
    storages:
      - name: oms-pvc-xvdc1-extn
        mountPath: /opt/ssfs/runtime/extensions

  # Data Management parameters: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-datamanagement-parameter
  dataManagement:
    mode: <create|upgrade>
    property:
      customerOverrides: AgentProperties
      envVars: EnvironmentVariables

  # Image configurations: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-image-parameter
  # The tag used in the following image is a sample value and you must replace the tag with one that is supported at the current point in time.
  image: 
    pullPolicy: <Always|IfNotPresent|Never>
    repository: cp.icr.io/cp/ibm-oms-enterprise
    imagePullSecrets:
    - name: cp.icr.io
    - name: us.cp.icr.io
    oms:
      repository: us.cp.icr.io/cp/test
      tag: 10.0.2306.2-amd64
    orderService:
      repository: cp.icr.io/cp/ibm-oms-enterprise
      tag: 10.0.2306.2-amd64
    orderHub:
      base:
        repository: cp.icr.io/cp/ibm-oms-enterprise
        tag: 10.0.2306.2-amd64
      extn:
        repository: cp.icr.io/cp/ibm-oms-enterprise
        tag: 10.0.2306.2-amd64
    callCenter:
      base:
        repository: cp.icr.io/cp/ibm-oms-enterprise
        tag: 10.0.2306.2-amd64
      extn:
        repository: cp.icr.io/cp/ibm-oms-enterprise
        tag: 10.0.2306.2-amd64
           

  # Common parameters: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-common-parameter
  common:
    ingress:
      host: <cluster host name>

  # Server profiles
  # Using Server profiles you can define common configurations for CPU and memory requirements that can be applied to a set of workloads like appserver, agent or integration servers, and more.
  # The deployments can use the server profile group name to define the CPU and memory requirements for its workloads. 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-serverprofiles-parameter
  serverProfiles:
    - name: ProfileSmall
      resources:
        requests:
          cpu: 200m
          memory: 512Mi
        limits:
          cpu: 1000m
          memory: 1Gi
    - name: ProfileMedium
      resources:
        requests:
          cpu: 500m
          memory: 1Gi
        limits:
          cpu: 2000m
          memory: 2Gi
    - name: ProfileLarge
      resources:
        requests:
          cpu: 500m
          memory: 2Gi
        limits:
          cpu: 4000m
          memory: 4Gi
    - name: ProfileHuge
      resources:
        requests:
          cpu: 500m
          memory: 4Gi
        limits:
          cpu: 4000m
          memory: 8Gi
    - name: ProfileColossal
      resources:
        requests:
          cpu: 500m
          memory: 4Gi
        limits:
          cpu: 4000m
          memory: 16Gi

  # Server properties are used to define server property definitions, which includes customer overrides (customerOverrides), environment variables (envVars), and JVM arguments (jvmArgs).
  # The OMServer can use the server property group name to define the customer overrides, environment variables, and JVM arguments it wants to use. 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-serverproperties-parameter
  serverProperties:

    customerOverrides:
      - groupName: BaseProperties
        propertyList:
          yfs.yfs.logall: N
          yfs.yfs.searchIndex.rootDirectory: /shared
        derivatives:
          - groupName: AgentProperties
            propertyList:
              yfs.yfs.ItemProperties.cache.disable: Y
              yfs.yfs.YFS_AUDIT.batchsize: 100
              yfs.yfs.batchsize: 100
          - groupName: AppServerProperties
            propertyList:
              yfs.api.security.enabled: N
              yfs.interopservlet.security.enabled: false
              yfs.userauthfilter.enabled: false

    envVars:
      - groupName: EnvironmentVariables
        propertyList:
          JVM: ${OM_POD_NAME}
          LOG_DIR: /shared/logs/${OM_POD_NAME}
          LIBERTY_LOG_DIR: /shared/logs/${OM_POD_NAME}
          MESSAGE_FILE_NAME: ${LOG_DIR}/${OM_POD_NAME}_message.log
          TRACE_FILE_NAME: ${LOG_DIR}/${OM_POD_NAME}_trace.log
          TZ: America/New_York

    jvmArgs:
      - groupName: JVMArguments
        propertyList:
          - -DJVM=${OM_POD_NAME}
          - -DLOG_DIR=${LOG_DIR}
          - -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
          - -Dyfs.logall=N
          - -Dhttps.protocols=TLSv1.2
          - -Dcom.ibm.jsse2.overrideDefaultTLS=true

  # Health Monitor: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-healthmonitor-parameter
  healthMonitor:
    profile: ProfileLarge # Server profile group name. This `ProfileLarge` profile name is defined in the `serverProfiles[x].name` section.
    replicaCount: 1
    property:
      customerOverrides: AgentProperties
      envVars: EnvironmentVariables
      jvmArgs: JVMArguments

  # REST service: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-restservice-parameter
  restService:
    profile: ProfileLarge # Server profile group name. This `ProfileLarge` profile name is defined in the `serverProfiles[x].name` section
    replicaCount: 1
    image:
      variant: sbc-sma-smcfs
    property:
      customerOverrides: AppServerProperties
      envVars: EnvironmentVariables
      jvmArgs: JVMArguments
    appServer:
      dataSource:
        minPoolSize: 10
        maxPoolSize: 100
      threads:
        min: 20
        max: 200
      vendor: websphere

  # CallCenter: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-callcenter-parameter and https://www.ibm.com/docs/en/order-management-sw/10.0?topic=crd-call-center-callcenter-custom-resource
  callCenter:
    bindingAppServerName: icc
    base:
      replicaCount: 1
      profile: ProfileMedium
      envVars: EnvironmentVariables
    extn:
      replicaCount: 1
      profile: ProfileMedium
      envVars: EnvironmentVariables

  # OrderHub: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-orderhub-parameter 
  # and https://www.ibm.com/docs/en/order-management-sw/10.0?topic=crd-order-hub-orderhub-custom-resource
  orderHub:
    bindingAppServerName: smcfs
    base:
      replicaCount: 1
      profile: ProfileMedium
      envVars: EnvironmentVariables
    extn:
      replicaCount: 1
      profile: ProfileMedium
      envVars: EnvironmentVariables

  # OrderService: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-orderservice-parameter 
  # and https://www.ibm.com/docs/en/order-management-sw/10.0?topic=crd-order-service-orderservice-custom-resource
  orderService:
    cassandra:
      keyspace: orderservice
      createDevInstance:
        profile: ProfileColossal
    elasticsearch:
      createDevInstance:
        profile: ProfileMedium
    replicaCount: 1
    configuration:
      jwt_ignore_expiration: false

  # OMServer: 
  # For more information, see https://www.ibm.com/docs/en/order-management-sw/10.0?topic=resource-configuring-omserver-custom 
  # and https://www.ibm.com/docs/en/order-management-sw/10.0?topic=crd-order-management-server-omserver-custom-resource
  servers:

    - appServer:
        dataSource:
          maxPoolSize: 25
          minPoolSize: 10
        ingress:
          contextRoots: [smcfs, sbc, sma, isccs, wsc, isf, icc]
        threads:
          max: 25
          min: 10
        vendor: websphere
      name: smcfs
      podLabels:
        role: app
      profile: ProfileHuge # Server profile group name. This `ProfileHuge` profile name is defined in the `serverProfiles[x].name` section.
      property:
        customerOverrides: AppServerProperties # Customer overrides group name. This `AppServerProperties` group name is defined in the `serverProperties.customerOverrides[x].groupName` section.
        envVars: EnvironmentVariables # Environment variables group name. This `EnvironmentVariables` group name is defined in the `serverProperties.envVars[x].groupName` section.
        jvmArgs: BaseJVMArgs # JVM arguments group name. This `BaseJVMArgs` group name is defined in the `serverProperties.jvmArgs[x].groupName` section.
      replicaCount: 1
​
    - name: defaultserver
      profile: ProfileLarge # Server profile group name. This `ProfileLarge` profile name is defined in the `serverProfiles[x].name` section.
      property:
        customerOverrides: AgentProperties # Customer overrides group name. This `AgentProperties` group name is defined in the `serverProperties.customerOverrides[x].groupName` section.
        envVars: EnvironmentVariables # Environment variables group name. This `Pacific` group name is defined in the `serverProperties.envVars[x].groupName` section.
        jvmArgs: BaseJVMArgs # JVM arguments group name. This `BaseJVMArgs` group name is defined in the `serverProperties.jvmArgs[x].groupName` section.
      replicaCount: 1
      agentServer:
        names: [DefaultServer]    
Example 2: OMEnvironment with all the supported parameters and default values
apiVersion: apps.oms.ibm.com/v1beta1
kind: OMEnvironment
metadata:
  name: ""
  annotations: ""
spec:
  license:
    accept: false
    acceptCallCenterStore: false
  secret: ""
  # serviceAccount: default
  # upgradeStrategy: RollingUpdate
​
  storage:
    name: ""
    # accessMode: ReadWriteMany
    # capacity: 10Gi
    # storageClassName: default
    # securityContext:
      # fsGroup: 
      # supplementalGroups: []
​
  image:
    # repository: ""
    # pullPolicy: IfNotPresent
    # imagePullSecrets:
    # - name: ""
    oms:
      tag: ""
      # repository: ""
      # pullPolicy: IfNotPresent
      # agentDefaultName: om-agent
      # appDefaultName: om-app
    # orderHub:
      # base:
        # tag: ""
        # repository: ""
        # pullPolicy: IfNotPresent
        # imageName: om-orderhub-base
      # extn:
        # tag: ""
        # repository: ""
        # pullPolicy: IfNotPresent
        # imageName: om-orderhub-ext
    # orderService:
      # tag: ""
      # repository: ""
      # pullPolicy: IfNotPresent
      # imageName: orderservice
​
  database:
    # db2:
      # host: ""
      # port: 
      # url: ""
      # name: ""
      # schema: ""
      # user: ""
      # secure: false
      # dataSourceName: jdbc/OMDS
    # oracle:
      # host: ""
      # port: 
      # url: "" 
      # name: ""
      # schema: ""
      # user: ""
      # secure: false
      # dataSourceName: jdbc/OMDS
    # postgresql:
      # host: ""
      # port: 
      # url: ""
      # name: ""
      # schema: ""
      # user: ""
      # secure: false
      # dataSourceName: jdbc/OMDS
​
  common:
    ingress:
      host: ""
      # annotations: {}
      # labels: {}
      # className: ""
      # ssl:
        # enabled: false
        # identitySecretName: ""
     jwt:
       alias: custom_name     
       algorithm: RS512
       audience: service
       issuer: oms
    # service:
      # annotations: {}
      # labels: {}
    # appServer:
      # ports:
        # http: 9080
        # https: 9443
    # pod:
      # podLabels: {}
      # podAnnotations: {}


  networkPolicy:
    <kubernetes-network-policy-spec>
​
  # jms:
    # mq:
      # bindingConfigName: ""
      # bindingMountPath: /opt/ssfs/.bindings
​
  # security:
    # ssl:
      # trust:
        # storeLocation: ""
        # storeType: PKCS12
        # trustJavaCACerts: true
        # trustedCertDir: ""
​
  # dataManagement:
    # mode: <create/upgrade>
    # podLabels: {}
    # profile: ""
    # property:
      # customerOverrides: ""
      # envVars: ""
​
  # serverProfiles:
  # - name: ""
    # resources:
      # limits:
        # cpu: 
        # memory: 
      # requests:
        # cpu: 
        # memory: 
​
  # serverProperties:
    # customerOverrides:
    # - groupName: ""
      # propertyList: ""
      # propertyRef:
      # - name: ""
        # valueFrom:
          # configMapKeyRef:
            # key: ""
            # name: ""
            # optional: 
          # fieldRef:
            # apiVersion: ""
            # fieldPath: ""
          # resourceFieldRef:
            # containerName: ""
            # divisor: "1"
            # resource: ""
          # secretKeyRef:
            # key: ""
            # name: ""
            # optional: 
      # derivatives: []
    # envVars:
    # - groupName: ""
      # propertyList: ""
      # propertyRef:
      # - name: ""
        # valueFrom:
          # configMapKeyRef:
            # key: ""
            # name: ""
            # optional: 
          # fieldRef:
            # apiVersion: ""
            # fieldPath: ""
          # resourceFieldRef:
            # containerName: ""
            # divisor: "1"
            # resource: ""
          # secretKeyRef:
            # key: ""
            # name: ""
            # optional: 
      # derivatives: []
    # jvmArgs:
    # - groupName: ""
      # propertyList: ""
      # propertyRef:
      # - name: ""
        # valueFrom:
          # configMapKeyRef:
            # key: ""
            # name: ""
            # optional: 
          # fieldRef:
            # apiVersion: ""
            # fieldPath: ""
          # resourceFieldRef:
            # containerName: ""
            # divisor: "1"
            # resource: ""
          # secretKeyRef:
            # key: ""
            # name: ""
            # optional: 
      # derivatives: []
​
  # servers:
  # - name: ""
    # servers[].upgradeStrategy
    # replicaCount: 1
    # podLabels: {}
    # profile: balanced
    # property:
      # customerOverrides: ""
      # envVars: ""
      # jvmArgs: ""
    # image:
      # name: ""
      # variant: ""
    # appServer:
      # serverName: DefaultAppServer
      # dataSource:
        # minPoolSize: 10
        # maxPoolSize: 50
      # threads:
        # min: 20
        # max: 100
      # libertyServerXml: default-server-xml
      # livenessCheckBeginAfterSeconds: 900
      # livenessFailRestartAfterMinutes: 10
      # terminationGracePeriodSeconds: 60
      # ingress:
        # contextRoots: [smcfs, sbc, sma, isccs, wsc, adminCenter]
        # customDomains:
        # - host: ""
          # className: ""
          # annotations: ""
          # labels: ""
          # ssl:
            # enabled: ""
            # identitySecretName: ""
        # annotations: {}
        # labels: {}
      # service:
        # annotations: {}
        # labels: {}
      # vendor: websphere
      # vendorFile: servers.properties
    # agentServer:
      # names: []
      # allowTermination
        # schedule
      # readinessFailRestartAfterMinutes: 10
      # terminationGracePeriodSeconds: 60
    # integration:
      # names: []
      # allowTermination
        # schedule
      # readinessFailRestartAfterMinutes: 10 
      # terminationGracePeriodSeconds: 60
    # affinityAndTolerations: ""
​
  # healthMonitor:
    # podLabels: {}
    # podAnnotations: {}
    # profile: balanced
    # property:
      # customerOverrides: ""
      # envVars: ""
      # jvmArgs: ""
    # replicaCount: 1
    # upgradeStrategy: "" 
​
  # restService:
    # replicaCount: 
    # authstyle: 
    # userid: ""
    # podLabels: {}
    # profile: balanced
    # property:
      # customerOverrides: ""
      # envVars: ""
      # jvmArgs: ""
    # appServer:
      # serverName: DefaultAppServer
      # dataSource:
        # minPoolSize: 10
        # maxPoolSize: 50
      # threads:
        # min: 20
        # max: 100
      # libertyServerXml: default-server-xml
      # livenessCheckBeginAfterSeconds: 900
      # livenessFailRestartAfterMinutes: 10
      # terminationGracePeriodSeconds: 60
      # ingress:
        # contextRoots: [smcfs]
        # customDomains:
        # - host: ""
          # className: ""
          # annotations: ""
          # labels: ""
          # ssl:
            # enabled: ""
            # identitySecretName: ""
        # annotations: {}
        # labels: {}
      # service:
        # annotations: {}
        # labels: {}
      # vendor: websphere
      # vendorFile: servers.properties
      # upgradeStrategy: "" 
​
  # orderHub:
    # bindingAppServerName: ""
    # - host: ""
      # className: ""
      # annotations: ""
      # labels: ""
      # ssl:
        # enabled: ""
        # identitySecretName: ""
    # base:
      # replicaCount: 1
      # profile: balanced
      # envVars: ""
      # podLabels: {}
      # service:
        # annotations: {}
        # labels: {}
      # livenessCheckBeginAfterSeconds: 900
      # livenessFailRestartAfterMinutes: 10
      # terminationGracePeriodSeconds: 60
      # affinityAndTolerations: ""
    # extn:
      # replicaCount: 1
      # profile: balanced
      # envVars: ""
      # podLabels: {}
      # service:
        # annotations: {}
        # labels: {}
      # livenessCheckBeginAfterSeconds: 900
      # livenessFailRestartAfterMinutes: 10
      # terminationGracePeriodSeconds: 60
      # affinityAndTolerations: ""
    # ingress:
       # annotations: {}
       # labels: {}
   # horizontalPodAutoscalers: HPA1

​
  # orderService:
    # replicaCount: 1
    # profile: balanced
    # orderServiceVersion: ""
    # podLabels: {}
    # podAnnotations: {}
    # configuration:
      # jwt_ignore_expiration:
      # additionalConfig: {}
    # cassandra:
      # keyspace: ""
      # contactPoints: ""
      # createDevInstance:
        # profile: balanced
        # storage:
          # name: ""
          # accessMode: ""
          # capacity: 
          # storageClassName: ""
    # elasticsearch:
      # contactPoints: ""
      # createDevInstance:
        # profile: balanced
        # storage:
          # name: ""
          # accessMode: ""
          # capacity: 
          # storageClassName: ""
    # ingress:
       # annotations: {}
       # labels: {}
   # horizontalPodAutoscalers: HPA1
​
  # additionalMounts:
    # configMaps:
    # - name: ""
      # mountPath: ""
      # subPath: ""
      # subPathExpr: ""
      # readOnly: false
      # mountPropagation: ""
      # matchLabels: {}
    # secrets:
    # - name: ""
      # mountPath: ""
      # subPath: ""
      # subPathExpr: ""
      # readOnly: false
      # mountPropagation: ""
      # matchLabels: {}
    # storages:
    # - name: ""
      # mountPath: ""
      # storageClassName: ""
      # accessMode: ""
      # capacity: 
      # matchLabels: {}
​
  # affinityAndTolerations:
  # - name: ""
  #   affinity:
  #     <kubernetes-affinity-spec>
  #   tolerations:
  #   - <kubernetes-toleration-spec>

  # 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  
Note: The commented parameters are optional for creating OMEnvironment.